From c7bd63d1c192c9d8c6c6c3365528f6ae63adba8a Mon Sep 17 00:00:00 2001 From: petitminion Date: Tue, 25 Mar 2025 17:21:23 +0000 Subject: [PATCH] pipelines:check OpenApi schema generation match repo schema (#2388) --- .gitlab-ci.yml | 9 +- .pre-commit-config.yaml | 2 + api/funkwhale_api/common/schema.yml | 25924 ++++++++++++++++++++++++++ docs/developer/api/schema.md | 7 + 4 files changed, 25940 insertions(+), 2 deletions(-) create mode 100644 api/funkwhale_api/common/schema.yml create mode 100644 docs/developer/api/schema.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 28e815170..879237d76 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -175,7 +175,7 @@ lint_api: - if: $CI_COMMIT_BRANCH =~ /(stable|develop)/ - changes: [api/**/*] - image: $CI_REGISTRY/funkwhale/ci/python-funkwhale-api:3.11 + image: $CI_REGISTRY/funkwhale/ci/python-funkwhale-api:3.13 cache: *api_cache before_script: - cd api @@ -339,7 +339,7 @@ build_api_schema: # Add build_docs rules because it depends on the build_api_schema artifact - changes: [docs/**/*] - image: $CI_REGISTRY/funkwhale/ci/python-funkwhale-api:3.11 + image: $CI_REGISTRY/funkwhale/ci/python-funkwhale-api:3.13 services: - postgres:15-alpine - redis:7-alpine @@ -357,6 +357,11 @@ build_api_schema: - poetry run funkwhale-manage migrate script: - poetry run funkwhale-manage spectacular --file ../docs/schema.yml + - diff ../docs/schema.yml ./funkwhale_api/common/schema.yml || ( + echo "Schema files do not match! run sudo docker compose run --rm + api funkwhale-manage spectacular > ./api/funkwhale_api/common/schema.yml" && + exit 1 + ) artifacts: expire_in: 2 weeks paths: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ae2fc6994..57138f37d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,6 +6,7 @@ repos: rev: v4.4.0 hooks: - id: check-added-large-files + exclude: "api/funkwhale_api/common/schema.yml" - id: check-case-conflict - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable @@ -62,6 +63,7 @@ repos: hooks: - id: prettier files: \.(md|yml|yaml|json)$ + exclude: "api/funkwhale_api/common/schema.yml" - repo: https://github.com/codespell-project/codespell rev: v2.2.6 diff --git a/api/funkwhale_api/common/schema.yml b/api/funkwhale_api/common/schema.yml new file mode 100644 index 000000000..589a05aea --- /dev/null +++ b/api/funkwhale_api/common/schema.yml @@ -0,0 +1,25924 @@ +openapi: 3.0.3 +info: + title: Funkwhale API + version: 1.4.0 + description: | + # Funkwhale API + + This is the Funkwhale API. Check out our [API explorer](https://docs.funkwhale.audio/swagger/) for interactive documentation. + + ## OAuth Authentication + + Funkwhale uses the OAuth [authorization grant flow](https://tools.ietf.org/html/rfc6749#section-4.1) for external apps. This flow is a secure way to authenticate apps that requires a user's explicit consent to perform actions. You can use our demo server at for testing purposes. + + To authenticate with the Funkwhale API: + + 1. Create an application by sending a `POST` request to `api/v1/oauth/apps`. Include your scopes and redirect URI (use `urn:ietf:wg:oauth:2.0:oob` + to get an authorization code you can copy) + 2. Send an [authorization request](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2) to the `/authorize` endpoint to receive an authorization code + 3. [Request an access token](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3) from `/api/v1/oauth/token` + 4. Use your access token to authenticate your calls with the following format: `Authorization: Bearer ` + 5. Refresh your access token by sending a refresh request to `/api/v1/oauth/token` + + For more detailed instructions, see [our API authentication documentation](https://docs.funkwhale.audio/developers/authentication.html). + + ## Application token authentication + + If you have an account on your target pod, you can create an application at `/settings/applications/new`. Once you authorize the application you can retrieve an access token. Use your access token to authenticate your calls with the following format: `Authorization: Bearer ` + + ## Rate limiting + + Funkwhale supports rate-limiting as of version 0.2.0. Pod admins can choose to rate limit specific endpoints to prevent abuse and improve the stability of the service. If the server drops a request due to rate-limiting, it returns a `429` status code. + + Each API call returns HTTP headers to pass the following information: + + - What was the scope of the request (`X-RateLimit-Scope`) + - What is the rate-limit associated with the request scope (`X-RateLimit-Limit`) + - How many more requests in the scope can be made within the rate-limit timeframe (`X-RateLimit-Remaining`) + - How much time does the client need to wait to send another request (`Retry-After`) + + For more information, check our [rate limit documentation](https://docs.funkwhale.audio/developer/api/rate-limit.html) + + ## Resources + + For more information about API usage, refer to [our API documentation](https://docs.funkwhale.audio/api.html). +paths: + /api/v1/activity/: + get: + operationId: get_activity + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - activity + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v1/albums/: + get: + operationId: get_albums + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAlbumList' + description: '' + post: + operationId: create_album + tags: + - albums + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumCreate' + description: '' + /api/v1/albums/{id}/: + get: + operationId: get_album + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Album' + description: '' + delete: + operationId: delete_album + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/albums/{id}/fetches/: + get: + operationId: get_album_fetches + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFetchList' + description: '' + post: + operationId: create_album_fetch + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AlbumRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AlbumRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v1/albums/{id}/libraries/: + get: + operationId: get_album_libraries + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryList' + description: '' + /api/v1/albums/{id}/mutations/: + get: + operationId: get_album_mutations + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + post: + operationId: create_album_mutation + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AlbumRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AlbumRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v1/artists/: + get: + operationId: get_artists + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedArtistWithAlbumsList' + description: '' + /api/v1/artists/{id}/: + get: + operationId: get_artist + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtistWithAlbums' + description: '' + /api/v1/artists/{id}/fetches/: + get: + operationId: get_artist_fetches + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFetchList' + description: '' + post: + operationId: create_artist_fetch + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - artists + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v1/artists/{id}/libraries/: + get: + operationId: get_artist_libraries + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryList' + description: '' + /api/v1/artists/{id}/mutations/: + get: + operationId: get_artist_mutations + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + post: + operationId: create_artist_mutation + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - artists + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v1/attachments/: + post: + operationId: create_attachment + tags: + - attachments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AttachmentRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AttachmentRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AttachmentRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AttachmentRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + /api/v1/attachments/{uuid}/: + get: + operationId: get_attachment + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - attachments + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + delete: + operationId: delete_attachment + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - attachments + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/attachments/{uuid}/proxy/: + get: + operationId: get_attachment_proxy + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - attachments + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + /api/v1/auth/password/change/: + post: + operationId: change_password + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChange' + description: '' + /api/v1/auth/password/reset/: + post: + operationId: reset_password + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordReset' + description: '' + /api/v1/auth/password/reset/confirm/: + post: + operationId: confirm_password_reset + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetConfirm' + description: '' + /api/v1/auth/registration/: + post: + operationId: register + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RegisterRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RegisterRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RegisterRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Register' + description: '' + /api/v1/auth/registration/change-password/: + post: + operationId: change_password_2 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChange' + description: '' + /api/v1/auth/registration/verify-email/: + post: + operationId: verify_email + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + - {} + responses: + '200': + description: No response body + /api/v1/auth/user/: + get: + operationId: get_auth_user + description: |- + Reads and updates UserModel fields + Accepts GET, PUT, PATCH methods. + + Default accepted fields: username, first_name, last_name + Default display fields: pk, username, email, first_name, last_name + Read-only fields: pk, email + + Returns UserModel fields. + tags: + - auth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + description: '' + put: + operationId: update_auth_user + description: |- + Reads and updates UserModel fields + Accepts GET, PUT, PATCH methods. + + Default accepted fields: username, first_name, last_name + Default display fields: pk, username, email, first_name, last_name + Read-only fields: pk, email + + Returns UserModel fields. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + description: '' + patch: + operationId: partial_update_auth_user + description: |- + Reads and updates UserModel fields + Accepts GET, PUT, PATCH methods. + + Default accepted fields: username, first_name, last_name + Default display fields: pk, username, email, first_name, last_name + Read-only fields: pk, email + + Returns UserModel fields. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + description: '' + /api/v1/channels/: + get: + operationId: get_channels + parameters: + - in: query + name: external + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -modification_date + - -random + - creation_date + - modification_date + - random + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: subscribed + schema: + type: boolean + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedChannelList' + description: '' + post: + operationId: create_channel + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelCreate' + description: '' + /api/v1/channels/{composite}/: + get: + operationId: get_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + put: + operationId: update_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelUpdate' + description: '' + patch: + operationId: partial_update_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelUpdate' + description: '' + delete: + operationId: delete_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/channels/{composite}/rss/: + get: + operationId: get_channel_rss + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v1/channels/{composite}/subscribe/: + post: + operationId: subscribe_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v1/channels/{composite}/unsubscribe/: + post: + operationId: unsubscribe_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + delete: + operationId: unsubscribe_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/channels/metadata-choices/: + get: + operationId: get_channel_metadata_choices + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v1/channels/rss-subscribe/: + post: + operationId: subscribe_channel_rss + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v1/favorites/tracks/: + get: + operationId: get_favorite_tracks + parameters: + - in: query + name: hidden + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserTrackFavoriteList' + description: '' + post: + operationId: favorite_track + tags: + - favorites + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWrite' + description: '' + /api/v1/favorites/tracks/{id}/: + delete: + operationId: delete_favorite_track + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track favorite. + required: true + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/favorites/tracks/all/: + get: + operationId: get_all_favorite_tracks + description: |- + Return all the favorites of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + favorites status in the UI + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AllFavorite' + description: '' + /api/v1/favorites/tracks/remove/: + post: + operationId: unfavorite_track_2 + tags: + - favorites + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWrite' + description: '' + delete: + operationId: unfavorite_track + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/federation/actors/{full_username}/: + get: + operationId: get_federation_actor + parameters: + - in: path + name: full_username + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FullActor' + description: '' + /api/v1/federation/actors/{full_username}/libraries/: + get: + operationId: get_federation_actor_library + parameters: + - in: path + name: full_username + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryForOwner' + description: '' + /api/v1/federation/domains/: + get: + operationId: get_federation_domains + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDomainList' + description: '' + /api/v1/federation/domains/{name}/: + get: + operationId: get_federation_domain + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + description: '' + /api/v1/federation/fetches/: + post: + operationId: create_federation_fetch + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FetchRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FetchRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FetchRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FetchRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v1/federation/fetches/{id}/: + get: + operationId: get_federation_fetch + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this fetch. + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v1/federation/follows/library/: + get: + operationId: get_federation_library_follows + parameters: + - in: query + name: approved + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryFollowList' + description: '' + post: + operationId: create_federation_library_follow + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + /api/v1/federation/follows/library/{uuid}/: + get: + operationId: get_federation_library_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + delete: + operationId: delete_federation_library_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/federation/follows/library/{uuid}/accept/: + post: + operationId: accept_federation_library_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '404': + description: No response body + '204': + description: No response body + /api/v1/federation/follows/library/{uuid}/reject/: + post: + operationId: reject_federation_library_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + /api/v1/federation/follows/library/all/: + get: + operationId: get_all_federation_library_follows + description: |- + Return all the subscriptions of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + subscription status in the UI + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + /api/v1/federation/follows/user/: + get: + operationId: get_federation_received_follows + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFollowList' + description: '' + post: + operationId: create_federation_user_follow + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + /api/v1/federation/follows/user/{uuid}/: + get: + operationId: get_federation_user_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + delete: + operationId: delete_federation_user_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/federation/follows/user/{uuid}/accept/: + post: + operationId: accept_federation_user_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '404': + description: No response body + '204': + description: No response body + /api/v1/federation/follows/user/{uuid}/reject/: + post: + operationId: reject_federation_user_follow + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + /api/v1/federation/follows/user/all/: + get: + operationId: get_all_federation_library_follows_2 + description: |- + Return all the subscriptions of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + subscription status in the UI + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + /api/v1/federation/inbox/: + get: + operationId: get_federation_inboxes + parameters: + - in: query + name: activity__actor + schema: + type: integer + - in: query + name: activity__type + schema: + type: string + - in: query + name: before + schema: + type: number + - in: query + name: is_read + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedInboxItemList' + description: '' + /api/v1/federation/inbox/{id}/: + get: + operationId: get_federation_inbox + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this inbox item. + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + put: + operationId: update_federation_inbox + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this inbox item. + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InboxItemRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + patch: + operationId: partial_update_federation_inbox + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this inbox item. + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + /api/v1/federation/inbox/action/: + post: + operationId: create_federation_inbox_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InboxItemRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + /api/v1/federation/libraries/{uuid}/: + get: + operationId: get_federation_library + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Library' + description: '' + /api/v1/federation/libraries/{uuid}/scan/: + post: + operationId: create_federation_library_scan + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Library' + description: '' + /api/v1/federation/libraries/fetch/: + post: + operationId: create_federation_library_fetch + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Library' + description: '' + /api/v1/history/listenings/: + get: + operationId: get_history_listenings + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: hidden + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: scope + schema: + type: string + - in: query + name: username + schema: + type: string + tags: + - history + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListeningList' + description: '' + post: + operationId: create_history_listening + tags: + - history + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ListeningWrite' + description: '' + /api/v1/history/listenings/{id}/: + get: + operationId: get_history_listening + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this listening. + required: true + tags: + - history + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Listening' + description: '' + /api/v1/instance/admin/settings/: + get: + operationId: get_instance_admin_settings + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + tags: + - instance + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v1/instance/admin/settings/{id}/: + get: + operationId: get_instance_admin_setting + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Global preference. + required: true + tags: + - instance + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + put: + operationId: update_instance_admin_setting + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Global preference. + required: true + tags: + - instance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + patch: + operationId: partial_update_instance_admin_setting + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Global preference. + required: true + tags: + - instance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v1/instance/admin/settings/bulk/: + post: + operationId: create_instance_admin_setting_bulk + description: |- + Update multiple preferences at once + + this is a long method because we ensure everything is valid + before actually persisting the changes + tags: + - instance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v1/instance/nodeinfo/2.0/: + get: + operationId: getNodeInfo20 + tags: + - instance + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NodeInfo20' + description: '' + /api/v1/instance/settings/: + get: + operationId: get_instance_settings + tags: + - instance + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v1/instance/spa-manifest.json: + get: + operationId: get_spa_manifest + tags: + - instance + responses: + '200': + content: + application/activity+json: + schema: + $ref: '#/components/schemas/SpaManifest' + description: '' + /api/v1/libraries/: + get: + operationId: get_libraries + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: privacy_level + schema: + type: string + enum: + - everyone + - instance + - me + description: |- + * `me` - Only me + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryForOwnerList' + description: '' + /api/v1/libraries/{uuid}/: + get: + operationId: get_library + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryForOwner' + description: '' + /api/v1/libraries/fs-import/: + get: + operationId: get_library_fs_import + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + post: + operationId: create_library_fs_import + tags: + - libraries + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + delete: + operationId: delete_library_fs_import + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/licenses/: + get: + operationId: get_licenses + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - licenses + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLicenseList' + description: '' + /api/v1/licenses/{code}/: + get: + operationId: get_license + parameters: + - in: path + name: code + schema: + type: string + description: A unique value identifying this license. + required: true + tags: + - licenses + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/License' + description: '' + /api/v1/listen/{uuid}/: + get: + operationId: get_listen + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - listen + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + audio/*: + schema: + type: string + format: binary + description: '' + /api/v1/manage/accounts/: + get: + operationId: admin_get_accounts + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: local + schema: + type: boolean + - in: query + name: manually_approves_followers + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: type + schema: + type: string + enum: + - Application + - Group + - Organization + - Person + - Service + - Tombstone + description: |- + * `Person` - Person + * `Tombstone` - Tombstone + * `Application` - Application + * `Group` - Group + * `Organization` - Organization + * `Service` - Service + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageActorList' + description: '' + /api/v1/manage/accounts/{id}/: + get: + operationId: admin_get_account + parameters: + - in: path + name: id + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActor' + description: '' + /api/v1/manage/accounts/{id}/stats/: + get: + operationId: admin_get_account_stats + parameters: + - in: path + name: id + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActor' + description: '' + /api/v1/manage/accounts/action/: + post: + operationId: admin_create_account_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActorRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageActorRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageActorRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageActorRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActor' + description: '' + /api/v1/manage/channels/: + get: + operationId: admin_get_channels + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageChannelList' + description: '' + /api/v1/manage/channels/{composite}/: + get: + operationId: admin_get_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageChannel' + description: '' + delete: + operationId: admin_delete_channel + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/channels/{composite}/stats/: + get: + operationId: admin_get_channel_stats + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageChannel' + description: '' + /api/v1/manage/federation/domains/: + get: + operationId: admin_get_federation_domains + parameters: + - in: query + name: allowed + schema: + type: boolean + - in: query + name: name + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageDomainList' + description: '' + post: + operationId: admin_create_federation_domain + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v1/manage/federation/domains/{name}/: + get: + operationId: admin_get_federation_domain + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + put: + operationId: admin_update_federation_domain + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainUpdate' + description: '' + patch: + operationId: admin_partial_update_federation_domain + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainUpdate' + description: '' + /api/v1/manage/federation/domains/{name}/nodeinfo/: + get: + operationId: admin_get_federation_domain_nodeinfo + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v1/manage/federation/domains/{name}/stats/: + get: + operationId: admin_get_federation_domain_stats + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v1/manage/federation/domains/action/: + post: + operationId: admin_create_federation_domain_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v1/manage/library/albums/: + get: + operationId: admin_get_albums + parameters: + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: fid + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: title + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageAlbumList' + description: '' + /api/v1/manage/library/albums/{id}/: + get: + operationId: admin_get_album + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbum' + description: '' + delete: + operationId: admin_delete_album + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/library/albums/{id}/stats/: + get: + operationId: admin_get_library_album_stats + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbum' + description: '' + /api/v1/manage/library/albums/action/: + post: + operationId: admin_create_album_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbum' + description: '' + /api/v1/manage/library/artists/: + get: + operationId: admin_get_artists + parameters: + - in: query + name: content_category + schema: + type: string + enum: + - music + - other + - podcast + description: |- + * `music` - music + * `podcast` - podcast + * `other` - other + - in: query + name: fid + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageArtistList' + description: '' + /api/v1/manage/library/artists/{id}/: + get: + operationId: admin_get_artist + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtist' + description: '' + delete: + operationId: admin_delete_artist + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/library/artists/{id}/stats/: + get: + operationId: admin_get_library_artist_stats + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtist' + description: '' + /api/v1/manage/library/artists/action/: + post: + operationId: admin_create_artist_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtist' + description: '' + /api/v1/manage/library/libraries/: + get: + operationId: admin_get_libraries + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: fid + schema: + type: string + - in: query + name: name + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -followers_count + - -uploads_count + - creation_date + - followers_count + - uploads_count + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `uploads_count` - Uploads count + * `-uploads_count` - Uploads count (descending) + * `followers_count` - Followers count + * `-followers_count` - Followers count (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: privacy_level + schema: + type: string + enum: + - everyone + - instance + - me + description: |- + * `me` - Only me + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageLibraryList' + description: '' + /api/v1/manage/library/libraries/{uuid}/: + get: + operationId: admin_get_library + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + put: + operationId: admin_update_library + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + patch: + operationId: admin_partial_update_library + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + delete: + operationId: admin_delete_library + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/library/libraries/{uuid}/stats/: + get: + operationId: admin_get_library_stats + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + /api/v1/manage/library/libraries/action/: + post: + operationId: admin_create_library_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + /api/v1/manage/library/tracks/: + get: + operationId: admin_get_tracks + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: fid + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: title + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageTrackList' + description: '' + /api/v1/manage/library/tracks/{id}/: + get: + operationId: admin_get_track + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrack' + description: '' + delete: + operationId: admin_delete_track + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/library/tracks/{id}/stats/: + get: + operationId: admin_get_track_stats + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrack' + description: '' + /api/v1/manage/library/tracks/action/: + post: + operationId: admin_create_track_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrack' + description: '' + /api/v1/manage/library/uploads/: + get: + operationId: admin_get_uploads + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: fid + schema: + type: string + - in: query + name: import_reference + schema: + type: string + - in: query + name: import_status + schema: + type: string + enum: + - draft + - errored + - finished + - pending + - skipped + description: |- + * `draft` - Draft + * `pending` - Pending + * `finished` - Finished + * `errored` - Errored + * `skipped` - Skipped + - in: query + name: mimetype + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -accessed_date + - -bitrate + - -creation_date + - -duration + - -modification_date + - -size + - accessed_date + - bitrate + - creation_date + - duration + - modification_date + - size + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `accessed_date` - Accessed date + * `-accessed_date` - Accessed date (descending) + * `size` - Size + * `-size` - Size (descending) + * `bitrate` - Bitrate + * `-bitrate` - Bitrate (descending) + * `duration` - Duration + * `-duration` - Duration (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: privacy_level + schema: + type: string + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageUploadList' + description: '' + /api/v1/manage/library/uploads/{uuid}/: + get: + operationId: admin_get_upload + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUpload' + description: '' + delete: + operationId: admin_delete_upload + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/library/uploads/action/: + post: + operationId: admin_create_upload_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUpload' + description: '' + /api/v1/manage/moderation/instance-policies/: + get: + operationId: moderation_get_instance_policies + parameters: + - in: query + name: block_all + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: reject_media + schema: + type: boolean + - in: query + name: silence_activity + schema: + type: boolean + - in: query + name: silence_notifications + schema: + type: boolean + - in: query + name: target_account_domain + schema: + type: string + - in: query + name: target_account_username + schema: + type: string + - in: query + name: target_domain + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageInstancePolicyList' + description: '' + post: + operationId: moderation_create_instance_policy + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + /api/v1/manage/moderation/instance-policies/{id}/: + get: + operationId: moderation_get_instance_policy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + put: + operationId: moderation_update_instance_policy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + patch: + operationId: moderation_partial_update_instance_policy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + delete: + operationId: moderation_delete_instance_policy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/moderation/notes/: + get: + operationId: moderation_get_notes + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageNoteList' + description: '' + post: + operationId: moderation_create_note + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageNote' + description: '' + /api/v1/manage/moderation/notes/{uuid}/: + get: + operationId: moderation_get_note + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageNote' + description: '' + delete: + operationId: moderation_delete_note + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/moderation/reports/: + get: + operationId: moderation_get_reports + parameters: + - in: query + name: is_handled + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: submitter_email + schema: + type: string + - in: query + name: type + schema: + type: string + enum: + - illegal_content + - invalid_metadata + - offensive_content + - other + - takedown_request + description: |- + * `takedown_request` - Takedown request + * `invalid_metadata` - Invalid metadata + * `illegal_content` - Illegal content + * `offensive_content` - Offensive content + * `other` - Other + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageReportList' + description: '' + /api/v1/manage/moderation/reports/{uuid}/: + get: + operationId: moderation_get_report + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReport' + description: '' + put: + operationId: moderation_update_report + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageReportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageReportRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageReportRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReport' + description: '' + patch: + operationId: moderation_partial_update_report + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReport' + description: '' + /api/v1/manage/moderation/requests/: + get: + operationId: moderation_get_requests + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: status + schema: + type: string + enum: + - approved + - pending + - refused + description: |- + * `pending` - Pending + * `refused` - Refused + * `approved` - Approved + - in: query + name: type + schema: + type: string + enum: + - signup + description: '* `signup` - Sign-up' + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageUserRequestList' + description: '' + /api/v1/manage/moderation/requests/{uuid}/: + get: + operationId: moderation_get_request + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + description: '' + put: + operationId: moderation_update_request + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + description: '' + patch: + operationId: moderation_partial_update_request + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + description: '' + /api/v1/manage/tags/: + get: + operationId: admin_get_tags + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageTagList' + description: '' + post: + operationId: admin_create_tag + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageTagRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTag' + description: '' + /api/v1/manage/tags/{name}/: + get: + operationId: admin_get_tag + parameters: + - in: path + name: name + schema: + type: string + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTag' + description: '' + delete: + operationId: admin_delete_tag + parameters: + - in: path + name: name + schema: + type: string + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/manage/tags/action/: + post: + operationId: admin_create_tag_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageTagRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTag' + description: '' + /api/v1/manage/users/invitations/: + get: + operationId: admin_get_invitations + parameters: + - in: query + name: is_open + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageInvitationList' + description: '' + post: + operationId: admin_create_invitation + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + /api/v1/manage/users/invitations/{id}/: + get: + operationId: admin_get_invitation + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this invitation. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + put: + operationId: admin_update_invitation + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this invitation. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + patch: + operationId: admin_partial_update_invitation + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this invitation. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + /api/v1/manage/users/invitations/action/: + post: + operationId: admin_create_invitation_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + /api/v1/manage/users/users/: + get: + operationId: admin_get_users + parameters: + - in: query + name: is_active + schema: + type: boolean + - in: query + name: is_staff + schema: + type: boolean + - in: query + name: is_superuser + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: permission_library + schema: + type: boolean + - in: query + name: permission_moderation + schema: + type: boolean + - in: query + name: permission_settings + schema: + type: boolean + - in: query + name: privacy_level + schema: + type: string + enum: + - everyone + - followers + - instance + - me + description: |- + * `me` - Only me + * `followers` - Me and my followers + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageUserList' + description: '' + /api/v1/manage/users/users/{id}/: + get: + operationId: admin_get_user + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUser' + description: '' + put: + operationId: admin_update_user + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageUserRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageUserRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUser' + description: '' + patch: + operationId: admin_partial_update_user + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUser' + description: '' + /api/v1/moderation/content-filters/: + get: + operationId: get_moderation_content_filters + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - moderation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserFilterList' + description: '' + post: + operationId: create_moderation_content_filter + tags: + - moderation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserFilterRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserFilterRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserFilterRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserFilterRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserFilter' + description: '' + /api/v1/moderation/content-filters/{uuid}/: + get: + operationId: get_moderation_content_filter + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - moderation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserFilter' + description: '' + delete: + operationId: delete_moderation_content_filter + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - moderation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/moderation/reports/: + post: + operationId: create_moderation_report + tags: + - moderation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ReportRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Report' + description: '' + /api/v1/mutations/: + get: + operationId: get_mutations + parameters: + - in: query + name: is_applied + schema: + type: boolean + - in: query + name: is_approved + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: type + schema: + type: string + tags: + - mutations + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + /api/v1/mutations/{uuid}/: + get: + operationId: get_mutation + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + delete: + operationId: delete_mutation + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/mutations/{uuid}/approve/: + post: + operationId: approve_mutation + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/APIMutationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v1/mutations/{uuid}/reject/: + post: + operationId: reject_mutation + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/APIMutationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v1/oauth/apps/: + get: + operationId: get_oauth_apps + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedApplicationList' + description: '' + post: + operationId: create_oauth_app + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplication' + description: '' + /api/v1/oauth/apps/{client_id}/: + get: + operationId: get_oauth_app + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + put: + operationId: update_oauth_app + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ApplicationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + patch: + operationId: partial_update_oauth_app + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + delete: + operationId: delete_oauth_app + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/oauth/apps/{client_id}/refresh-token/: + post: + operationId: refresh_oauth_token + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplication' + description: '' + /api/v1/oauth/grants/: + get: + operationId: get_oauth_grants + description: |- + This is a viewset that list applications that have access to the request user + account, to allow revoking tokens easily. + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Application' + description: '' + /api/v1/oauth/grants/{client_id}/: + get: + operationId: get_oauth_grant + description: |- + This is a viewset that list applications that have access to the request user + account, to allow revoking tokens easily. + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + delete: + operationId: delete_oauth_grant + description: |- + This is a viewset that list applications that have access to the request user + account, to allow revoking tokens easily. + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/oembed/: + get: + operationId: get_oembed + tags: + - oembed + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Oembed' + description: '' + /api/v1/playlists/: + get: + operationId: get_playlists + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: integer + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: track + schema: + type: integer + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPlaylistList' + application/octet-stream: + schema: + $ref: '#/components/schemas/PaginatedPlaylistList' + description: '' + post: + operationId: create_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v1/playlists/{id}/: + get: + operationId: get_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + put: + operationId: update_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + patch: + operationId: partial_update_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + delete: + operationId: delete_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/playlists/{id}/add/: + post: + operationId: add_to_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v1/playlists/{id}/albums/: + get: + operationId: get_playlist_albums + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v1/playlists/{id}/artists/: + get: + operationId: get_playlist_artits + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v1/playlists/{id}/clear/: + delete: + operationId: clear_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/playlists/{id}/move/: + post: + operationId: reorder_track_in_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v1/playlists/{id}/remove/: + post: + operationId: remove_from_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + delete: + operationId: remove_from_playlist + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/playlists/{id}/tracks/: + get: + operationId: get_playlist_tracks + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: integer + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: track + schema: + type: integer + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPlaylistTrackList' + application/octet-stream: + schema: + $ref: '#/components/schemas/PaginatedPlaylistTrackList' + description: '' + /api/v1/plugins/: + get: + operationId: get_plugins + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + post: + operationId: create_plugin + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + description: No response body + /api/v1/plugins/{id}/: + get: + operationId: get_plugin + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v1/plugins/{id}/disable/: + post: + operationId: disable_plugin + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v1/plugins/{id}/enable/: + post: + operationId: enable_plugin + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v1/plugins/{id}/scan/: + post: + operationId: create_plugin_scan + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v1/radios/radios/: + get: + operationId: get_radios + parameters: + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRadioList' + description: '' + post: + operationId: create_radio + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + /api/v1/radios/radios/{id}/: + get: + operationId: get_radio + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + put: + operationId: update_radio + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + patch: + operationId: partial_update_radio + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + delete: + operationId: delete_radio + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/radios/radios/{id}/tracks/: + get: + operationId: get_radio_track + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + /api/v1/radios/radios/filters/: + get: + operationId: get_radio_filter + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Filter' + description: '' + /api/v1/radios/radios/validate/: + post: + operationId: validate_radio + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + /api/v1/radios/sessions/: + post: + operationId: create_radio_session + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSession' + description: '' + /api/v1/radios/sessions/{id}/: + get: + operationId: get_radio_session + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio session. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSession' + description: '' + /api/v1/radios/tracks/: + post: + operationId: get_next_radio_track + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' + description: '' + /api/v1/rate-limit/: + get: + operationId: get_rate_limit + tags: + - rate-limit + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RateLimit' + description: '' + /api/v1/search: + get: + operationId: get_search_results + tags: + - search + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SearchResult' + description: '' + /api/v1/stream/{uuid}/: + get: + operationId: get_track_stream + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - stream + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + audio/mpeg: + schema: + type: string + format: binary + description: '' + /api/v1/subscriptions/: + get: + operationId: get_subscriptions + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - subscriptions + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSubscriptionList' + description: '' + /api/v1/subscriptions/{uuid}/: + get: + operationId: get_subscription + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - subscriptions + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + description: '' + /api/v1/subscriptions/all/: + get: + operationId: get_all_subscriptions + description: |- + Return all the subscriptions of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + subscription status in the UI + tags: + - subscriptions + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AllSubscriptions' + description: '' + /api/v1/tags/: + get: + operationId: get_tags + parameters: + - in: query + name: name + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -length + - -name + - creation_date + - length + - name + description: |- + Ordering + + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `length` - Length + * `-length` - Length (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - tags + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTagList' + description: '' + /api/v1/tags/{name}/: + get: + operationId: get_tag + parameters: + - in: path + name: name + schema: + type: string + required: true + tags: + - tags + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + /api/v1/text-preview/: + post: + operationId: preview_text + tags: + - text-preview + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TextPreview' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDetail' + description: '' + /api/v1/tracks/: + get: + operationId: get_tracks + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: id + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTrackList' + description: '' + /api/v1/tracks/{id}/: + get: + operationId: get_track + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + delete: + operationId: delete_track + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/tracks/{id}/fetches/: + get: + operationId: get_track_fetches + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFetchList' + description: '' + post: + operationId: create_track_fetch + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TrackRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TrackRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v1/tracks/{id}/libraries/: + get: + operationId: get_track_libraries + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryList' + description: '' + /api/v1/tracks/{id}/mutations/: + get: + operationId: get_track_mutations + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + post: + operationId: create_track_mutation + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TrackRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TrackRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v1/uploads/: + get: + operationId: get_uploads + parameters: + - in: query + name: album_artist + schema: + type: string + format: uuid + - in: query + name: channel + schema: + type: string + - in: query + name: import_reference + schema: + type: string + - in: query + name: import_status + schema: + type: array + items: + type: string + enum: + - draft + - errored + - finished + - pending + - skipped + description: |- + * `draft` - Draft + * `pending` - Pending + * `finished` - Finished + * `errored` - Errored + * `skipped` - Skipped + explode: true + style: form + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + format: uuid + - in: query + name: mimetype + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: track + schema: + type: string + format: uuid + - in: query + name: track_artist + schema: + type: string + format: uuid + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUploadForOwnerList' + description: '' + post: + operationId: create_upload + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + /api/v1/uploads/{uuid}/: + get: + operationId: get_upload + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + put: + operationId: update_upload + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + patch: + operationId: partial_update_upload + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + delete: + operationId: delete_upload + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/uploads/{uuid}/audio-file-metadata/: + get: + operationId: get_upload_metadata + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TrackMetadata' + description: '' + /api/v1/uploads/action/: + post: + operationId: create_upload_action + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + /api/v1/uploads/bulk_update/: + patch: + operationId: partial_update_upload_bulk_update + description: Used to move an upload from one library to another. Receive a upload + uuid and a privacy_level + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + /api/v1/users/{username}/: + put: + operationId: update_user + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + patch: + operationId: partial_update_user + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + /api/v1/users/{username}/subsonic-token/: + get: + operationId: get_user_subsonic_token + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + post: + operationId: create_user_subsonic_token + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + delete: + operationId: delete_user_subsonic_token + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/users/change-email/: + post: + operationId: change_email + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + '403': + description: No response body + /api/v1/users/me/: + get: + operationId: get_authenticated_user + description: Return information about the current user or delete it + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + delete: + operationId: delete_authenticated_user + description: Return information about the current user or delete it + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v1/users/settings/: + post: + operationId: update_settings + description: Return information about the current user or delete it + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + /api/v2/activity/: + get: + operationId: get_activity_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - activity + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/albums/: + get: + operationId: get_albums_2 + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAlbumList' + description: '' + post: + operationId: create_album_2 + tags: + - albums + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AlbumCreateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumCreate' + description: '' + /api/v2/albums/{id}/: + get: + operationId: get_album_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Album' + description: '' + delete: + operationId: delete_album_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/albums/{id}/fetches/: + get: + operationId: get_album_fetches_2 + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFetchList' + description: '' + post: + operationId: create_album_fetch_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AlbumRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AlbumRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v2/albums/{id}/libraries/: + get: + operationId: get_album_libraries_2 + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryList' + description: '' + /api/v2/albums/{id}/mutations/: + get: + operationId: get_album_mutations_2 + parameters: + - in: query + name: artist + schema: + type: string + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: channel + schema: + type: string + - in: query + name: content_category + schema: + type: string + - in: query + name: has_cover + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: has_release_date + schema: + type: boolean + - in: query + name: has_tags + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -artist_credit__artist__modification_date + - -creation_date + - -random + - -related + - -release_date + - -title + - artist_credit__artist__modification_date + - creation_date + - random + - related + - release_date + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `release_date` - Release date + * `-release_date` - Release date (descending) + * `title` - Title + * `-title` - Title (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - albums + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + post: + operationId: create_album_mutation_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - albums + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AlbumRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AlbumRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AlbumRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v2/artists/: + get: + operationId: get_artists_2 + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedArtistWithAlbumsList' + description: '' + /api/v2/artists/{id}/: + get: + operationId: get_artist_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtistWithAlbums' + description: '' + /api/v2/artists/{id}/fetches/: + get: + operationId: get_artist_fetches_2 + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFetchList' + description: '' + post: + operationId: create_artist_fetch_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - artists + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v2/artists/{id}/libraries/: + get: + operationId: get_artist_libraries_2 + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryList' + description: '' + /api/v2/artists/{id}/mutations/: + get: + operationId: get_artist_mutations_2 + parameters: + - in: query + name: content_category + schema: + type: string + - in: query + name: has_albums + schema: + type: boolean + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -id + - -modification_date + - -name + - -random + - -related + - creation_date + - id + - modification_date + - name + - random + - related + description: |- + Ordering + + * `id` - Id + * `-id` - Id (descending) + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - artists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + post: + operationId: create_artist_mutation_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - artists + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ArtistWithAlbumsRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v2/attachments/: + post: + operationId: create_attachment_2 + tags: + - attachments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AttachmentRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AttachmentRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AttachmentRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/AttachmentRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + /api/v2/attachments/{uuid}/: + get: + operationId: get_attachment_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - attachments + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + delete: + operationId: delete_attachment_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - attachments + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/attachments/{uuid}/proxy/: + get: + operationId: get_attachment_proxy_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - attachments + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + /api/v2/auth/password/change/: + post: + operationId: change_password_3 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChange' + description: '' + /api/v2/auth/password/reset/: + post: + operationId: reset_password_2 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordResetRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordReset' + description: '' + /api/v2/auth/password/reset/confirm/: + post: + operationId: confirm_password_reset_2 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordResetConfirmRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetConfirm' + description: '' + /api/v2/auth/registration/: + post: + operationId: register_2 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RegisterRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RegisterRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RegisterRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Register' + description: '' + /api/v2/auth/registration/change-password/: + post: + operationId: change_password_4 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PasswordChangeRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordChange' + description: '' + /api/v2/auth/registration/verify-email/: + post: + operationId: verify_email_2 + description: The type of the None singleton. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/VerifyEmailRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + - {} + responses: + '200': + description: No response body + /api/v2/auth/user/: + get: + operationId: get_auth_user_2 + description: |- + Reads and updates UserModel fields + Accepts GET, PUT, PATCH methods. + + Default accepted fields: username, first_name, last_name + Default display fields: pk, username, email, first_name, last_name + Read-only fields: pk, email + + Returns UserModel fields. + tags: + - auth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + description: '' + put: + operationId: update_auth_user_2 + description: |- + Reads and updates UserModel fields + Accepts GET, PUT, PATCH methods. + + Default accepted fields: username, first_name, last_name + Default display fields: pk, username, email, first_name, last_name + Read-only fields: pk, email + + Returns UserModel fields. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserDetailsRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + description: '' + patch: + operationId: partial_update_auth_user_2 + description: |- + Reads and updates UserModel fields + Accepts GET, PUT, PATCH methods. + + Default accepted fields: username, first_name, last_name + Default display fields: pk, username, email, first_name, last_name + Read-only fields: pk, email + + Returns UserModel fields. + tags: + - auth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUserDetailsRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + description: '' + /api/v2/channels/: + get: + operationId: get_channels_2 + parameters: + - in: query + name: external + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -modification_date + - -random + - creation_date + - modification_date + - random + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `random` - Random + * `-random` - Random (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: subscribed + schema: + type: boolean + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedChannelList' + description: '' + post: + operationId: create_channel_2 + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelCreateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelCreate' + description: '' + /api/v2/channels/{composite}/: + get: + operationId: get_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + put: + operationId: update_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelUpdateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelUpdate' + description: '' + patch: + operationId: partial_update_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedChannelUpdateRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelUpdate' + description: '' + delete: + operationId: delete_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/channels/{composite}/rss/: + get: + operationId: get_channel_rss_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v2/channels/{composite}/subscribe/: + post: + operationId: subscribe_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v2/channels/{composite}/unsubscribe/: + post: + operationId: unsubscribe_channel_4 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + delete: + operationId: unsubscribe_channel_3 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/channels/metadata-choices/: + get: + operationId: get_channel_metadata_choices_2 + tags: + - channels + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v2/channels/rss-subscribe/: + post: + operationId: subscribe_channel_rss_2 + tags: + - channels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChannelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ChannelRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ChannelRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Channel' + description: '' + /api/v2/favorites/tracks/: + get: + operationId: get_favorite_tracks_2 + parameters: + - in: query + name: hidden + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserTrackFavoriteList' + description: '' + post: + operationId: favorite_track_2 + tags: + - favorites + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWrite' + description: '' + /api/v2/favorites/tracks/{id}/: + delete: + operationId: delete_favorite_track_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track favorite. + required: true + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/favorites/tracks/all/: + get: + operationId: get_all_favorite_tracks_2 + description: |- + Return all the favorites of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + favorites status in the UI + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AllFavorite' + description: '' + /api/v2/favorites/tracks/remove/: + post: + operationId: unfavorite_track_4 + tags: + - favorites + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTrackFavoriteWrite' + description: '' + delete: + operationId: unfavorite_track_3 + tags: + - favorites + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/federation/actors/{full_username}/: + get: + operationId: get_federation_actor_2 + parameters: + - in: path + name: full_username + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FullActor' + description: '' + /api/v2/federation/actors/{full_username}/libraries/: + get: + operationId: get_federation_actor_library_2 + parameters: + - in: path + name: full_username + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryForOwner' + description: '' + /api/v2/federation/domains/: + get: + operationId: get_federation_domains_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDomainList' + description: '' + /api/v2/federation/domains/{name}/: + get: + operationId: get_federation_domain_2 + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + description: '' + /api/v2/federation/fetches/: + post: + operationId: create_federation_fetch_2 + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FetchRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FetchRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FetchRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FetchRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v2/federation/fetches/{id}/: + get: + operationId: get_federation_fetch_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this fetch. + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v2/federation/follows/library/: + get: + operationId: get_federation_library_follows_2 + parameters: + - in: query + name: approved + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryFollowList' + description: '' + post: + operationId: create_federation_library_follow_2 + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + /api/v2/federation/follows/library/{uuid}/: + get: + operationId: get_federation_library_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + delete: + operationId: delete_federation_library_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/federation/follows/library/{uuid}/accept/: + post: + operationId: accept_federation_library_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '404': + description: No response body + '204': + description: No response body + /api/v2/federation/follows/library/{uuid}/reject/: + post: + operationId: reject_federation_library_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryFollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + /api/v2/federation/follows/library/all/: + get: + operationId: get_all_federation_library_follows_3 + description: |- + Return all the subscriptions of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + subscription status in the UI + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryFollow' + description: '' + /api/v2/federation/follows/user/: + get: + operationId: get_federation_received_follows_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFollowList' + description: '' + post: + operationId: create_federation_user_follow_2 + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + /api/v2/federation/follows/user/{uuid}/: + get: + operationId: get_federation_user_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + delete: + operationId: delete_federation_user_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/federation/follows/user/{uuid}/accept/: + post: + operationId: accept_federation_user_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '404': + description: No response body + '204': + description: No response body + /api/v2/federation/follows/user/{uuid}/reject/: + post: + operationId: reject_federation_user_follow_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FollowRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FollowRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/FollowRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + /api/v2/federation/follows/user/all/: + get: + operationId: get_all_federation_library_follows_4 + description: |- + Return all the subscriptions of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + subscription status in the UI + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Follow' + description: '' + /api/v2/federation/inbox/: + get: + operationId: get_federation_inboxes_2 + parameters: + - in: query + name: activity__actor + schema: + type: integer + - in: query + name: activity__type + schema: + type: string + - in: query + name: before + schema: + type: number + - in: query + name: is_read + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedInboxItemList' + description: '' + /api/v2/federation/inbox/{id}/: + get: + operationId: get_federation_inbox_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this inbox item. + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + put: + operationId: update_federation_inbox_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this inbox item. + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InboxItemRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + patch: + operationId: partial_update_federation_inbox_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this inbox item. + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedInboxItemRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + /api/v2/federation/inbox/action/: + post: + operationId: create_federation_inbox_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InboxItemRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/InboxItemRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/InboxItemRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InboxItem' + description: '' + /api/v2/federation/libraries/{uuid}/: + get: + operationId: get_federation_library_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Library' + description: '' + /api/v2/federation/libraries/{uuid}/scan/: + post: + operationId: create_federation_library_scan_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Library' + description: '' + /api/v2/federation/libraries/fetch/: + post: + operationId: create_federation_library_fetch_2 + tags: + - federation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Library' + description: '' + /api/v2/history/listenings/: + get: + operationId: get_history_listenings_2 + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: hidden + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: scope + schema: + type: string + - in: query + name: username + schema: + type: string + tags: + - history + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListeningList' + description: '' + post: + operationId: create_history_listening_2 + tags: + - history + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ListeningWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ListeningWrite' + description: '' + /api/v2/history/listenings/{id}/: + get: + operationId: get_history_listening_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this listening. + required: true + tags: + - history + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Listening' + description: '' + /api/v2/instance/admin/settings/: + get: + operationId: get_instance_admin_settings_2 + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + tags: + - instance + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v2/instance/admin/settings/{id}/: + get: + operationId: get_instance_admin_setting_2 + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Global preference. + required: true + tags: + - instance + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + put: + operationId: update_instance_admin_setting_2 + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Global preference. + required: true + tags: + - instance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + patch: + operationId: partial_update_instance_admin_setting_2 + description: |- + - list preferences + - detail given preference + - batch update preferences + - update a single preference + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this Global preference. + required: true + tags: + - instance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedGlobalPreferenceRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v2/instance/admin/settings/bulk/: + post: + operationId: create_instance_admin_setting_bulk_2 + description: |- + Update multiple preferences at once + + this is a long method because we ensure everything is valid + before actually persisting the changes + tags: + - instance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/GlobalPreferenceRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v2/instance/nodeinfo/2.1/: + get: + operationId: getNodeInfo20_2 + tags: + - instance + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/NodeInfo20' + description: '' + /api/v2/instance/settings/: + get: + operationId: get_instance_settings_2 + tags: + - instance + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalPreference' + description: '' + /api/v2/instance/spa-manifest.json: + get: + operationId: get_spa_manifest_2 + tags: + - instance + responses: + '200': + content: + application/activity+json: + schema: + $ref: '#/components/schemas/SpaManifest' + description: '' + /api/v2/libraries/: + get: + operationId: get_libraries_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: privacy_level + schema: + type: string + enum: + - everyone + - instance + - me + description: |- + * `me` - Only me + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryForOwnerList' + description: '' + /api/v2/libraries/{uuid}/: + get: + operationId: get_library_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryForOwner' + description: '' + /api/v2/libraries/fs-import/: + get: + operationId: get_library_fs_import_2 + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + post: + operationId: create_library_fs_import_2 + tags: + - libraries + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/LibraryForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + delete: + operationId: delete_library_fs_import_2 + tags: + - libraries + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/licenses/: + get: + operationId: get_licenses_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - licenses + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLicenseList' + description: '' + /api/v2/licenses/{code}/: + get: + operationId: get_license_2 + parameters: + - in: path + name: code + schema: + type: string + description: A unique value identifying this license. + required: true + tags: + - licenses + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/License' + description: '' + /api/v2/listen/{uuid}/: + get: + operationId: get_listen_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - listen + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + audio/*: + schema: + type: string + format: binary + description: '' + /api/v2/manage/accounts/: + get: + operationId: admin_get_accounts_2 + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: local + schema: + type: boolean + - in: query + name: manually_approves_followers + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: type + schema: + type: string + enum: + - Application + - Group + - Organization + - Person + - Service + - Tombstone + description: |- + * `Person` - Person + * `Tombstone` - Tombstone + * `Application` - Application + * `Group` - Group + * `Organization` - Organization + * `Service` - Service + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageActorList' + description: '' + /api/v2/manage/accounts/{id}/: + get: + operationId: admin_get_account_2 + parameters: + - in: path + name: id + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActor' + description: '' + /api/v2/manage/accounts/{id}/stats/: + get: + operationId: admin_get_account_stats_2 + parameters: + - in: path + name: id + schema: + type: string + pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActor' + description: '' + /api/v2/manage/accounts/action/: + post: + operationId: admin_create_account_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActorRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageActorRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageActorRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageActorRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageActor' + description: '' + /api/v2/manage/channels/: + get: + operationId: admin_get_channels_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageChannelList' + description: '' + /api/v2/manage/channels/{composite}/: + get: + operationId: admin_get_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageChannel' + description: '' + delete: + operationId: admin_delete_channel_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/channels/{composite}/stats/: + get: + operationId: admin_get_channel_stats_2 + parameters: + - in: path + name: composite + schema: + type: string + pattern: ^[^/]+$ + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageChannel' + description: '' + /api/v2/manage/federation/domains/: + get: + operationId: admin_get_federation_domains_2 + parameters: + - in: query + name: allowed + schema: + type: boolean + - in: query + name: name + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageDomainList' + description: '' + post: + operationId: admin_create_federation_domain_2 + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v2/manage/federation/domains/{name}/: + get: + operationId: admin_get_federation_domain_2 + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + put: + operationId: admin_update_federation_domain_2 + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageDomainUpdateRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainUpdate' + description: '' + patch: + operationId: admin_partial_update_federation_domain_2 + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageDomainUpdateRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainUpdate' + description: '' + /api/v2/manage/federation/domains/{name}/nodeinfo/: + get: + operationId: admin_get_federation_domain_nodeinfo_2 + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v2/manage/federation/domains/{name}/stats/: + get: + operationId: admin_get_federation_domain_stats_2 + parameters: + - in: path + name: name + schema: + type: string + description: A unique value identifying this domain. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v2/manage/federation/domains/action/: + post: + operationId: admin_create_federation_domain_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageDomainRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageDomain' + description: '' + /api/v2/manage/library/albums/: + get: + operationId: admin_get_albums_2 + parameters: + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: fid + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: title + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageAlbumList' + description: '' + /api/v2/manage/library/albums/{id}/: + get: + operationId: admin_get_album_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbum' + description: '' + delete: + operationId: admin_delete_album_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/library/albums/{id}/stats/: + get: + operationId: admin_get_library_album_stats_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this album. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbum' + description: '' + /api/v2/manage/library/albums/action/: + post: + operationId: admin_create_album_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageAlbumRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageAlbum' + description: '' + /api/v2/manage/library/artists/: + get: + operationId: admin_get_artists_2 + parameters: + - in: query + name: content_category + schema: + type: string + enum: + - music + - other + - podcast + description: |- + * `music` - music + * `podcast` - podcast + * `other` - other + - in: query + name: fid + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: name + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageArtistList' + description: '' + /api/v2/manage/library/artists/{id}/: + get: + operationId: admin_get_artist_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtist' + description: '' + delete: + operationId: admin_delete_artist_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/library/artists/{id}/stats/: + get: + operationId: admin_get_library_artist_stats_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this artist. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtist' + description: '' + /api/v2/manage/library/artists/action/: + post: + operationId: admin_create_artist_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageArtistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageArtist' + description: '' + /api/v2/manage/library/libraries/: + get: + operationId: admin_get_libraries_2 + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: fid + schema: + type: string + - in: query + name: name + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -followers_count + - -uploads_count + - creation_date + - followers_count + - uploads_count + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `uploads_count` - Uploads count + * `-uploads_count` - Uploads count (descending) + * `followers_count` - Followers count + * `-followers_count` - Followers count (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: privacy_level + schema: + type: string + enum: + - everyone + - instance + - me + description: |- + * `me` - Only me + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageLibraryList' + description: '' + /api/v2/manage/library/libraries/{uuid}/: + get: + operationId: admin_get_library_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + put: + operationId: admin_update_library_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + patch: + operationId: admin_partial_update_library_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageLibraryRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + delete: + operationId: admin_delete_library_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/library/libraries/{uuid}/stats/: + get: + operationId: admin_get_library_stats_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + /api/v2/manage/library/libraries/action/: + post: + operationId: admin_create_library_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageLibraryRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageLibrary' + description: '' + /api/v2/manage/library/tracks/: + get: + operationId: admin_get_tracks_2 + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist_credit + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: fid + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: title + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageTrackList' + description: '' + /api/v2/manage/library/tracks/{id}/: + get: + operationId: admin_get_track_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrack' + description: '' + delete: + operationId: admin_delete_track_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/library/tracks/{id}/stats/: + get: + operationId: admin_get_track_stats_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrack' + description: '' + /api/v2/manage/library/tracks/action/: + post: + operationId: admin_create_track_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageTrackRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTrack' + description: '' + /api/v2/manage/library/uploads/: + get: + operationId: admin_get_uploads_2 + parameters: + - in: query + name: domain + schema: + type: string + - in: query + name: fid + schema: + type: string + - in: query + name: import_reference + schema: + type: string + - in: query + name: import_status + schema: + type: string + enum: + - draft + - errored + - finished + - pending + - skipped + description: |- + * `draft` - Draft + * `pending` - Pending + * `finished` - Finished + * `errored` - Errored + * `skipped` - Skipped + - in: query + name: mimetype + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -accessed_date + - -bitrate + - -creation_date + - -duration + - -modification_date + - -size + - accessed_date + - bitrate + - creation_date + - duration + - modification_date + - size + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `modification_date` - Modification date + * `-modification_date` - Modification date (descending) + * `accessed_date` - Accessed date + * `-accessed_date` - Accessed date (descending) + * `size` - Size + * `-size` - Size (descending) + * `bitrate` - Bitrate + * `-bitrate` - Bitrate (descending) + * `duration` - Duration + * `-duration` - Duration (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: privacy_level + schema: + type: string + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageUploadList' + description: '' + /api/v2/manage/library/uploads/{uuid}/: + get: + operationId: admin_get_upload_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUpload' + description: '' + delete: + operationId: admin_delete_upload_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/library/uploads/action/: + post: + operationId: admin_create_upload_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageUploadRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUpload' + description: '' + /api/v2/manage/moderation/instance-policies/: + get: + operationId: moderation_get_instance_policies_2 + parameters: + - in: query + name: block_all + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: reject_media + schema: + type: boolean + - in: query + name: silence_activity + schema: + type: boolean + - in: query + name: silence_notifications + schema: + type: boolean + - in: query + name: target_account_domain + schema: + type: string + - in: query + name: target_account_username + schema: + type: string + - in: query + name: target_domain + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageInstancePolicyList' + description: '' + post: + operationId: moderation_create_instance_policy_2 + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + /api/v2/manage/moderation/instance-policies/{id}/: + get: + operationId: moderation_get_instance_policy_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + put: + operationId: moderation_update_instance_policy_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInstancePolicyRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + patch: + operationId: moderation_partial_update_instance_policy_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageInstancePolicyRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInstancePolicy' + description: '' + delete: + operationId: moderation_delete_instance_policy_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this instance policy. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/moderation/notes/: + get: + operationId: moderation_get_notes_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageNoteList' + description: '' + post: + operationId: moderation_create_note_2 + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageNoteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageNote' + description: '' + /api/v2/manage/moderation/notes/{uuid}/: + get: + operationId: moderation_get_note_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageNote' + description: '' + delete: + operationId: moderation_delete_note_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/moderation/reports/: + get: + operationId: moderation_get_reports_2 + parameters: + - in: query + name: is_handled + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: submitter_email + schema: + type: string + - in: query + name: type + schema: + type: string + enum: + - illegal_content + - invalid_metadata + - offensive_content + - other + - takedown_request + description: |- + * `takedown_request` - Takedown request + * `invalid_metadata` - Invalid metadata + * `illegal_content` - Illegal content + * `offensive_content` - Offensive content + * `other` - Other + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageReportList' + description: '' + /api/v2/manage/moderation/reports/{uuid}/: + get: + operationId: moderation_get_report_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReport' + description: '' + put: + operationId: moderation_update_report_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageReportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageReportRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageReportRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReport' + description: '' + patch: + operationId: moderation_partial_update_report_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageReportRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageReport' + description: '' + /api/v2/manage/moderation/requests/: + get: + operationId: moderation_get_requests_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: status + schema: + type: string + enum: + - approved + - pending + - refused + description: |- + * `pending` - Pending + * `refused` - Refused + * `approved` - Approved + - in: query + name: type + schema: + type: string + enum: + - signup + description: '* `signup` - Sign-up' + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageUserRequestList' + description: '' + /api/v2/manage/moderation/requests/{uuid}/: + get: + operationId: moderation_get_request_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + description: '' + put: + operationId: moderation_update_request_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageUserRequestRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + description: '' + patch: + operationId: moderation_partial_update_request_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequestRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + description: '' + /api/v2/manage/tags/: + get: + operationId: admin_get_tags_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageTagList' + description: '' + post: + operationId: admin_create_tag_2 + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageTagRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTag' + description: '' + /api/v2/manage/tags/{name}/: + get: + operationId: admin_get_tag_2 + parameters: + - in: path + name: name + schema: + type: string + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTag' + description: '' + delete: + operationId: admin_delete_tag_2 + parameters: + - in: path + name: name + schema: + type: string + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/manage/tags/action/: + post: + operationId: admin_create_tag_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageTagRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageTagRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageTagRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageTag' + description: '' + /api/v2/manage/users/invitations/: + get: + operationId: admin_get_invitations_2 + parameters: + - in: query + name: is_open + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageInvitationList' + description: '' + post: + operationId: admin_create_invitation_2 + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + /api/v2/manage/users/invitations/{id}/: + get: + operationId: admin_get_invitation_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this invitation. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + put: + operationId: admin_update_invitation_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this invitation. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + patch: + operationId: admin_partial_update_invitation_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this invitation. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + /api/v2/manage/users/invitations/action/: + post: + operationId: admin_create_invitation_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageInvitationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageInvitation' + description: '' + /api/v2/manage/users/users/: + get: + operationId: admin_get_users_2 + parameters: + - in: query + name: is_active + schema: + type: boolean + - in: query + name: is_staff + schema: + type: boolean + - in: query + name: is_superuser + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: permission_library + schema: + type: boolean + - in: query + name: permission_moderation + schema: + type: boolean + - in: query + name: permission_settings + schema: + type: boolean + - in: query + name: privacy_level + schema: + type: string + enum: + - everyone + - followers + - instance + - me + description: |- + * `me` - Only me + * `followers` - Me and my followers + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + - in: query + name: q + schema: + type: string + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedManageUserList' + description: '' + /api/v2/manage/users/users/{id}/: + get: + operationId: admin_get_user_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - manage + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUser' + description: '' + put: + operationId: admin_update_user_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ManageUserRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ManageUserRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ManageUserRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUser' + description: '' + patch: + operationId: admin_partial_update_user_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - manage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedManageUserRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManageUser' + description: '' + /api/v2/moderation/content-filters/: + get: + operationId: get_moderation_content_filters_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - moderation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserFilterList' + description: '' + post: + operationId: create_moderation_content_filter_2 + tags: + - moderation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserFilterRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserFilterRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserFilterRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserFilterRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserFilter' + description: '' + /api/v2/moderation/content-filters/{uuid}/: + get: + operationId: get_moderation_content_filter_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - moderation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserFilter' + description: '' + delete: + operationId: delete_moderation_content_filter_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - moderation + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/moderation/reports/: + post: + operationId: create_moderation_report_2 + tags: + - moderation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReportRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ReportRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ReportRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ReportRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Report' + description: '' + /api/v2/mutations/: + get: + operationId: get_mutations_2 + parameters: + - in: query + name: is_applied + schema: + type: boolean + - in: query + name: is_approved + schema: + type: boolean + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: type + schema: + type: string + tags: + - mutations + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + /api/v2/mutations/{uuid}/: + get: + operationId: get_mutation_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + delete: + operationId: delete_mutation_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/mutations/{uuid}/approve/: + post: + operationId: approve_mutation_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/APIMutationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v2/mutations/{uuid}/reject/: + post: + operationId: reject_mutation_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - mutations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/APIMutationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/APIMutationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/APIMutationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v2/oauth/apps/: + get: + operationId: get_oauth_apps_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedApplicationList' + description: '' + post: + operationId: create_oauth_app_2 + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplication' + description: '' + /api/v2/oauth/apps/{client_id}/: + get: + operationId: get_oauth_app_2 + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + put: + operationId: update_oauth_app_2 + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/ApplicationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + patch: + operationId: partial_update_oauth_app_2 + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedApplicationRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + delete: + operationId: delete_oauth_app_2 + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/oauth/apps/{client_id}/refresh-token/: + post: + operationId: refresh_oauth_token_2 + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/CreateApplicationRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApplication' + description: '' + /api/v2/oauth/authorize/: + get: + operationId: get_oauth_authorize + description: 'Handle GET requests: instantiate a blank version of the form.' + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + post: + operationId: create_oauth_authorize + description: |- + Handle POST requests: instantiate a form instance with the passed + POST variables and then check if it's valid. + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + put: + operationId: update_oauth_authorize + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/oauth/grants/: + get: + operationId: get_oauth_grants_2 + description: |- + This is a viewset that list applications that have access to the request user + account, to allow revoking tokens easily. + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Application' + description: '' + /api/v2/oauth/grants/{client_id}/: + get: + operationId: get_oauth_grant_2 + description: |- + This is a viewset that list applications that have access to the request user + account, to allow revoking tokens easily. + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + delete: + operationId: delete_oauth_grant_2 + description: |- + This is a viewset that list applications that have access to the request user + account, to allow revoking tokens easily. + parameters: + - in: path + name: client_id + schema: + type: string + required: true + tags: + - oauth + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/oembed/: + get: + operationId: get_oembed_2 + tags: + - oembed + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Oembed' + description: '' + /api/v2/playlists/: + get: + operationId: get_playlists_2 + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: integer + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: track + schema: + type: integer + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPlaylistList' + application/octet-stream: + schema: + $ref: '#/components/schemas/PaginatedPlaylistList' + description: '' + post: + operationId: create_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v2/playlists/{id}/: + get: + operationId: get_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + put: + operationId: update_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + patch: + operationId: partial_update_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPlaylistRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + delete: + operationId: delete_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/playlists/{id}/add/: + post: + operationId: add_to_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistAddManyRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v2/playlists/{id}/albums/: + get: + operationId: get_playlist_albums_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v2/playlists/{id}/artists/: + get: + operationId: get_playlist_artits_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v2/playlists/{id}/clear/: + delete: + operationId: clear_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/playlists/{id}/move/: + post: + operationId: reorder_track_in_playlist_2 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + /api/v2/playlists/{id}/remove/: + post: + operationId: remove_from_playlist_4 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/json: + schema: + $ref: '#/components/schemas/PlaylistRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlaylistRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PlaylistRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Playlist' + application/octet-stream: + schema: + $ref: '#/components/schemas/Playlist' + description: '' + delete: + operationId: remove_from_playlist_3 + parameters: + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/playlists/{id}/tracks/: + get: + operationId: get_playlist_tracks_2 + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: integer + - in: query + name: format + schema: + type: string + enum: + - json + - xspf + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this playlist. + required: true + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: track + schema: + type: integer + tags: + - playlists + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPlaylistTrackList' + application/octet-stream: + schema: + $ref: '#/components/schemas/PaginatedPlaylistTrackList' + description: '' + /api/v2/plugins/: + get: + operationId: get_plugins_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + post: + operationId: create_plugin_2 + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + description: No response body + /api/v2/plugins/{id}/: + get: + operationId: get_plugin_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/plugins/{id}/disable/: + post: + operationId: disable_plugin_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/plugins/{id}/enable/: + post: + operationId: enable_plugin_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/plugins/{id}/scan/: + post: + operationId: create_plugin_scan_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this plugin configuration. + required: true + tags: + - plugins + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/artists/{uuid}/: + get: + operationId: get_provider_musicbrainz_artist + parameters: + - in: path + name: uuid + schema: + type: string + pattern: ^[0-9a-z-]+$ + required: true + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/release-groups/browse/{artist_uuid}/: + get: + operationId: get_provider_musicbrainz_release_group_browse + parameters: + - in: path + name: artist_uuid + schema: + type: string + pattern: ^[0-9a-z-]+$ + required: true + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/releases/{uuid}/: + get: + operationId: get_provider_musicbrainz_release + parameters: + - in: path + name: uuid + schema: + type: string + pattern: ^[0-9a-z-]+$ + required: true + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/releases/browse/{release_group_uuid}/: + get: + operationId: get_provider_musicbrainz_release_browse + parameters: + - in: path + name: release_group_uuid + schema: + type: string + pattern: ^[0-9a-z-]+$ + required: true + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/search/artists/: + get: + operationId: get_provider_musicbrainz_search_artist + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/search/recordings/: + get: + operationId: get_provider_musicbrainz_search_recording + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/providers/musicbrainz/search/releases/: + get: + operationId: get_provider_musicbrainz_search_release + tags: + - providers + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + /api/v2/radios/radios/: + get: + operationId: get_radios_2 + parameters: + - in: query + name: name + schema: + type: string + - in: query + name: name__icontains + schema: + type: string + - in: query + name: name__iexact + schema: + type: string + - in: query + name: name__startswith + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRadioList' + description: '' + post: + operationId: create_radio_2 + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + /api/v2/radios/radios/{id}/: + get: + operationId: get_radio_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + put: + operationId: update_radio_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + patch: + operationId: partial_update_radio_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedRadioRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + delete: + operationId: delete_radio_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/radios/radios/{id}/tracks/: + get: + operationId: get_radio_track_2 + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + /api/v2/radios/radios/filters/: + get: + operationId: get_radio_filter_2 + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Filter' + description: '' + /api/v2/radios/radios/validate/: + post: + operationId: validate_radio_2 + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Radio' + description: '' + /api/v2/radios/sessions/: + post: + operationId: create_radio_session_2 + description: Returns a list of RadioSessions + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioSessionRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSession' + description: '' + /api/v2/radios/sessions/{id}/: + get: + operationId: get_radio_session_2 + description: Returns a list of RadioSessions + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio session. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSession' + description: '' + /api/v2/radios/sessions/{id}/tracks/: + get: + operationId: get_radio_session_track + description: Returns a list of RadioSessions + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this radio session. + required: true + tags: + - radios + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' + description: '' + /api/v2/radios/tracks/: + post: + operationId: get_next_radio_track_2 + tags: + - radios + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' + description: '' + /api/v2/rate-limit/: + get: + operationId: get_rate_limit_2 + tags: + - rate-limit + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RateLimit' + description: '' + /api/v2/search: + get: + operationId: get_search_results_2 + tags: + - search + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SearchResult' + description: '' + /api/v2/stream/{uuid}/: + get: + operationId: get_track_stream_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - stream + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + audio/mpeg: + schema: + type: string + format: binary + description: '' + /api/v2/subscriptions/: + get: + operationId: get_subscriptions_2 + parameters: + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - subscriptions + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSubscriptionList' + description: '' + /api/v2/subscriptions/{uuid}/: + get: + operationId: get_subscription_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - subscriptions + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + description: '' + /api/v2/subscriptions/all/: + get: + operationId: get_all_subscriptions_2 + description: |- + Return all the subscriptions of the current user, with only limited data + to have a performant endpoint and avoid lots of queries just to display + subscription status in the UI + tags: + - subscriptions + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AllSubscriptions' + description: '' + /api/v2/tags/: + get: + operationId: get_tags_2 + parameters: + - in: query + name: name + schema: + type: string + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -creation_date + - -length + - -name + - creation_date + - length + - name + description: |- + Ordering + + * `name` - Name + * `-name` - Name (descending) + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `length` - Length + * `-length` - Length (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: q + schema: + type: string + tags: + - tags + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTagList' + description: '' + /api/v2/tags/{name}/: + get: + operationId: get_tag_2 + parameters: + - in: path + name: name + schema: + type: string + required: true + tags: + - tags + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + /api/v2/text-preview/: + post: + operationId: preview_text_2 + tags: + - text-preview + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/TextPreviewRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TextPreview' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDetail' + description: '' + /api/v2/tracks/: + get: + operationId: get_tracks_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: query + name: id + schema: + type: array + items: + type: integer + explode: true + style: form + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTrackList' + description: '' + /api/v2/tracks/{id}/: + get: + operationId: get_track_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Track' + description: '' + delete: + operationId: delete_track_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/tracks/{id}/fetches/: + get: + operationId: get_track_fetches_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFetchList' + description: '' + post: + operationId: create_track_fetch_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TrackRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TrackRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Fetch' + description: '' + /api/v2/tracks/{id}/libraries/: + get: + operationId: get_track_libraries_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLibraryList' + description: '' + /api/v2/tracks/{id}/mutations/: + get: + operationId: get_track_mutations_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: query + name: album + schema: + type: integer + - in: query + name: artist + schema: + type: string + - in: query + name: channel + schema: + type: string + - in: query + name: format + schema: + type: string + - in: query + name: has_mbid + schema: + type: boolean + - in: query + name: hidden + schema: + type: boolean + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + - in: query + name: license + schema: + type: string + - in: query + name: mbid + schema: + type: string + format: uuid + - in: query + name: ordering + schema: + type: array + items: + type: string + enum: + - -album__release_date + - -album__title + - -artist_credit__artist__modification_date + - -artist_credit__artist__name + - -creation_date + - -disc_number + - -position + - -random + - -related + - -size + - -title + - album__release_date + - album__title + - artist_credit__artist__modification_date + - artist_credit__artist__name + - creation_date + - disc_number + - position + - random + - related + - size + - title + description: |- + Ordering + + * `creation_date` - Creation date + * `-creation_date` - Creation date (descending) + * `title` - Title + * `-title` - Title (descending) + * `album__title` - Album title + * `-album__title` - Album title (descending) + * `album__release_date` - Album release date + * `-album__release_date` - Album release date (descending) + * `size` - Size + * `-size` - Size (descending) + * `position` - Position + * `-position` - Position (descending) + * `disc_number` - Disc number + * `-disc_number` - Disc number (descending) + * `artist_credit__artist__name` - Artist credit artist name + * `-artist_credit__artist__name` - Artist credit artist name (descending) + * `artist_credit__artist__modification_date` - Artist credit artist modification date + * `-artist_credit__artist__modification_date` - Artist credit artist modification date (descending) + * `random` - Random + * `-random` - Random (descending) + * `related` - Related + * `-related` - Related (descending) + explode: false + style: form + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: quality + schema: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + description: |- + * `0` - low + * `1` - medium + * `2` - high + * `3` - very_high + - in: query + name: related + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: tag + schema: + type: array + items: + type: string + explode: true + style: form + - in: query + name: title + schema: + type: string + - in: query + name: title__icontains + schema: + type: string + - in: query + name: title__iexact + schema: + type: string + - in: query + name: title__startswith + schema: + type: string + tags: + - tracks + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAPIMutationList' + description: '' + post: + operationId: create_track_mutation_2 + description: A simple ViewSet for viewing and editing accounts. + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this track. + required: true + tags: + - tracks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrackRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TrackRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TrackRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/TrackRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/APIMutation' + description: '' + /api/v2/uploads/: + get: + operationId: get_uploads_2 + parameters: + - in: query + name: album_artist + schema: + type: string + format: uuid + - in: query + name: channel + schema: + type: string + - in: query + name: import_reference + schema: + type: string + - in: query + name: import_status + schema: + type: array + items: + type: string + enum: + - draft + - errored + - finished + - pending + - skipped + description: |- + * `draft` - Draft + * `pending` - Pending + * `finished` - Finished + * `errored` - Errored + * `skipped` - Skipped + explode: true + style: form + - in: query + name: include_channels + schema: + type: boolean + - in: query + name: library + schema: + type: string + format: uuid + - in: query + name: mimetype + schema: + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: playable + schema: + type: boolean + - in: query + name: q + schema: + type: string + - in: query + name: scope + schema: + type: string + - in: query + name: track + schema: + type: string + format: uuid + - in: query + name: track_artist + schema: + type: string + format: uuid + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUploadForOwnerList' + description: '' + post: + operationId: create_upload_2 + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + /api/v2/uploads/{uuid}/: + get: + operationId: get_upload_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + put: + operationId: update_upload_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + patch: + operationId: partial_update_upload_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + delete: + operationId: delete_upload_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/uploads/{uuid}/audio-file-metadata/: + get: + operationId: get_upload_metadata_2 + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + tags: + - uploads + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TrackMetadata' + description: '' + /api/v2/uploads/action/: + post: + operationId: create_upload_action_2 + description: |- + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to 'utf-8'. + errors defaults to 'strict'. + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UploadForOwnerRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + /api/v2/uploads/bulk_update/: + patch: + operationId: partial_update_upload_bulk_update_2 + description: Used to move an upload from one library to another. Receive a upload + uuid and a privacy_level + tags: + - uploads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUploadForOwnerRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UploadForOwner' + description: '' + /api/v2/users/{username}/: + put: + operationId: update_user_3 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + patch: + operationId: partial_update_user_3 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + /api/v2/users/{username}/subsonic-token/: + get: + operationId: get_user_subsonic_token_3 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + post: + operationId: create_user_subsonic_token_3 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + delete: + operationId: delete_user_subsonic_token_3 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/users/change-email/: + post: + operationId: change_email_2 + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + '403': + description: No response body + /api/v2/users/me/: + get: + operationId: get_authenticated_user_2 + description: Return information about the current user or delete it + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + delete: + operationId: delete_authenticated_user_2 + description: Return information about the current user or delete it + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/users/settings/: + post: + operationId: update_settings_2 + description: Return information about the current user or delete it + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + /api/v2/users/users/{username}/: + put: + operationId: update_user_2 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + patch: + operationId: partial_update_user_2 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/PatchedUserWriteRequest' + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + /api/v2/users/users/{username}/subsonic-token/: + get: + operationId: get_user_subsonic_token_2 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + post: + operationId: create_user_subsonic_token_2 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + delete: + operationId: delete_user_subsonic_token_2 + parameters: + - in: path + name: username + schema: + type: string + pattern: ^[a-zA-Z0-9-_.]+$ + required: true + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/users/users/change-email/: + post: + operationId: change_email_3 + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + description: No response body + '403': + description: No response body + /api/v2/users/users/me/: + get: + operationId: get_authenticated_user_3 + description: Return information about the current user or delete it + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' + delete: + operationId: delete_authenticated_user_3 + description: Return information about the current user or delete it + tags: + - users + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '204': + description: No response body + /api/v2/users/users/settings/: + post: + operationId: update_settings_3 + description: Return information about the current user or delete it + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserWriteRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserWriteRequest' + application/activity+json: + schema: + $ref: '#/components/schemas/UserWriteRequest' + required: true + security: + - oauth2: [] + - ApplicationToken: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserWrite' + description: '' +components: + schemas: + APIActor: + type: object + properties: + fid: + type: string + format: uri + maxLength: 500 + url: + type: string + format: uri + nullable: true + maxLength: 500 + creation_date: + type: string + format: date-time + summary: + type: string + nullable: true + maxLength: 500 + preferred_username: + type: string + nullable: true + maxLength: 200 + name: + type: string + nullable: true + maxLength: 200 + last_fetch_date: + type: string + format: date-time + domain: + type: string + type: + $ref: '#/components/schemas/FederationChoiceEnum' + manually_approves_followers: + type: boolean + nullable: true + full_username: + type: string + readOnly: true + is_local: + type: boolean + readOnly: true + required: + - domain + - fid + - full_username + - is_local + - preferred_username + APIActorRequest: + type: object + properties: + fid: + type: string + format: uri + minLength: 1 + maxLength: 500 + url: + type: string + format: uri + nullable: true + maxLength: 500 + creation_date: + type: string + format: date-time + summary: + type: string + nullable: true + maxLength: 500 + preferred_username: + type: string + nullable: true + maxLength: 200 + name: + type: string + nullable: true + maxLength: 200 + last_fetch_date: + type: string + format: date-time + domain: + type: string + minLength: 1 + type: + $ref: '#/components/schemas/FederationChoiceEnum' + manually_approves_followers: + type: boolean + nullable: true + required: + - domain + - fid + - preferred_username + APIMutation: + type: object + properties: + fid: + type: string + format: uri + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + type: + type: string + maxLength: 100 + creation_date: + type: string + format: date-time + readOnly: true + applied_date: + type: string + format: date-time + nullable: true + is_approved: + type: boolean + nullable: true + is_applied: + type: boolean + readOnly: true + nullable: true + created_by: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + approved_by: + type: integer + readOnly: true + nullable: true + summary: + type: string + nullable: true + maxLength: 2000 + payload: {} + previous_state: + readOnly: true + nullable: true + target: + type: object + additionalProperties: {} + readOnly: true + required: + - approved_by + - created_by + - creation_date + - fid + - is_applied + - payload + - previous_state + - target + - type + - uuid + APIMutationRequest: + type: object + properties: + type: + type: string + minLength: 1 + maxLength: 100 + applied_date: + type: string + format: date-time + nullable: true + is_approved: + type: boolean + nullable: true + summary: + type: string + nullable: true + maxLength: 2000 + payload: {} + required: + - payload + - type + Activity: + type: object + properties: + uuid: + type: string + format: uuid + fid: + type: string + format: uri + nullable: true + maxLength: 500 + actor: + $ref: '#/components/schemas/APIActor' + payload: {} + object: + type: object + additionalProperties: {} + readOnly: true + nullable: true + target: + type: object + additionalProperties: {} + readOnly: true + nullable: true + related_object: + type: object + additionalProperties: {} + readOnly: true + creation_date: + type: string + format: date-time + type: + type: string + nullable: true + maxLength: 100 + required: + - actor + - object + - related_object + - target + ActivityRequest: + type: object + properties: + uuid: + type: string + format: uuid + fid: + type: string + format: uri + nullable: true + maxLength: 500 + actor: + $ref: '#/components/schemas/APIActorRequest' + payload: {} + creation_date: + type: string + format: date-time + type: + type: string + nullable: true + minLength: 1 + maxLength: 100 + required: + - actor + Album: + type: object + properties: + artist_credit: + type: array + items: + $ref: '#/components/schemas/ArtistCredit' + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + is_playable: + type: boolean + readOnly: true + tags: + type: array + items: + type: string + readOnly: true + tracks_count: + type: integer + readOnly: true + attributed_to: + $ref: '#/components/schemas/APIActor' + id: + type: integer + fid: + type: string + format: uri + mbid: + type: string + format: uuid + title: + type: string + release_date: + type: string + format: date + creation_date: + type: string + format: date-time + is_local: + type: boolean + duration: + type: integer + readOnly: true + tracks: + type: array + items: + $ref: '#/components/schemas/Track' + nullable: true + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + required: + - artist_credit + - attributed_to + - cover + - creation_date + - duration + - fid + - id + - is_local + - is_playable + - mbid + - release_date + - tags + - title + - tracks + - tracks_count + AlbumCreate: + type: object + properties: + title: + type: string + maxLength: 255 + release_date: + type: string + format: date + nullable: true + tags: + type: array + items: + type: string + minItems: 0 + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + artist_credit: + type: array + items: + type: string + required: + - artist_credit + - title + AlbumCreateRequest: + type: object + properties: + cover: + type: string + writeOnly: true + nullable: true + title: + type: string + minLength: 1 + maxLength: 255 + release_date: + type: string + format: date + nullable: true + tags: + type: array + items: + type: string + minLength: 1 + minItems: 0 + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + artist_credit: + type: array + items: + type: string + required: + - artist_credit + - title + AlbumRequest: + type: object + properties: + artist_credit: + type: array + items: + $ref: '#/components/schemas/ArtistCreditRequest' + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + attributed_to: + $ref: '#/components/schemas/APIActorRequest' + id: + type: integer + fid: + type: string + format: uri + minLength: 1 + mbid: + type: string + format: uuid + title: + type: string + minLength: 1 + release_date: + type: string + format: date + creation_date: + type: string + format: date-time + is_local: + type: boolean + tracks: + type: array + items: + $ref: '#/components/schemas/TrackRequest' + nullable: true + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + required: + - artist_credit + - attributed_to + - cover + - creation_date + - fid + - id + - is_local + - mbid + - release_date + - title + - tracks + AllFavorite: + type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/SimpleFavorite' + count: + type: integer + readOnly: true + required: + - count + - results + AllSubscriptions: + type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/InlineSubscription' + count: + type: integer + readOnly: true + required: + - count + - results + AllowListStat: + type: object + properties: + enabled: + type: boolean + domains: + type: array + items: + type: string + required: + - domains + - enabled + Application: + type: object + properties: + client_id: + type: string + maxLength: 100 + name: + type: string + maxLength: 255 + scopes: + type: string + created: + type: string + format: date-time + readOnly: true + updated: + type: string + format: date-time + readOnly: true + required: + - created + - scopes + - updated + ApplicationRequest: + type: object + properties: + client_id: + type: string + minLength: 1 + maxLength: 100 + name: + type: string + maxLength: 255 + scopes: + type: string + minLength: 1 + required: + - scopes + Artist: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + name: + type: string + creation_date: + type: string + format: date-time + modification_date: + type: string + format: date-time + is_local: + type: boolean + readOnly: true + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + channel: + type: string + format: uuid + nullable: true + attributed_to: + type: integer + nullable: true + tags: + type: array + items: + type: string + readOnly: true + required: + - id + - is_local + - name + - tags + ArtistCredit: + type: object + properties: + artist: + $ref: '#/components/schemas/Artist' + credit: + type: string + nullable: true + maxLength: 500 + joinphrase: + type: string + nullable: true + maxLength: 250 + index: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + required: + - artist + ArtistCreditRequest: + type: object + properties: + artist: + $ref: '#/components/schemas/ArtistRequest' + credit: + type: string + nullable: true + maxLength: 500 + joinphrase: + type: string + nullable: true + maxLength: 250 + index: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + required: + - artist + ArtistRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + name: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + modification_date: + type: string + format: date-time + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + channel: + type: string + format: uuid + nullable: true + attributed_to: + type: integer + nullable: true + required: + - name + ArtistWithAlbums: + type: object + properties: + albums: + type: string + readOnly: true + tags: + type: array + items: + type: string + readOnly: true + attributed_to: + allOf: + - $ref: '#/components/schemas/APIActor' + nullable: true + channel: + allOf: + - $ref: '#/components/schemas/ArtistWithAlbumsInlineChannel' + nullable: true + tracks_count: + type: integer + readOnly: true + id: + type: integer + fid: + type: string + format: uri + mbid: + type: string + format: uuid + name: + type: string + content_category: + type: string + creation_date: + type: string + format: date-time + is_local: + type: boolean + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + required: + - albums + - attributed_to + - channel + - content_category + - cover + - creation_date + - fid + - id + - is_local + - mbid + - name + - tags + - tracks_count + ArtistWithAlbumsInlineChannel: + type: object + properties: + uuid: + type: string + actor: + $ref: '#/components/schemas/InlineActor' + required: + - actor + - uuid + ArtistWithAlbumsInlineChannelRequest: + type: object + properties: + uuid: + type: string + minLength: 1 + actor: + $ref: '#/components/schemas/InlineActorRequest' + required: + - actor + - uuid + ArtistWithAlbumsRequest: + type: object + properties: + attributed_to: + allOf: + - $ref: '#/components/schemas/APIActorRequest' + nullable: true + channel: + allOf: + - $ref: '#/components/schemas/ArtistWithAlbumsInlineChannelRequest' + nullable: true + id: + type: integer + fid: + type: string + format: uri + minLength: 1 + mbid: + type: string + format: uuid + name: + type: string + minLength: 1 + content_category: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + is_local: + type: boolean + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + required: + - attributed_to + - channel + - content_category + - cover + - creation_date + - fid + - id + - is_local + - mbid + - name + Attachment: + type: object + properties: + uuid: + type: string + format: uuid + readOnly: true + size: + type: integer + readOnly: true + mimetype: + type: string + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + urls: + type: object + properties: + original: + type: string + small_square_crop: + type: string + medium_square_crop: + type: string + large_square_crop: + type: string + readOnly: true + required: + - creation_date + - mimetype + - size + - urls + - uuid + AttachmentRequest: + type: object + properties: + file: + type: string + format: binary + writeOnly: true + required: + - file + Channel: + type: object + properties: + uuid: + type: string + format: uuid + artist: + $ref: '#/components/schemas/SimpleChannelArtist' + attributed_to: + $ref: '#/components/schemas/APIActor' + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + creation_date: + type: string + format: date-time + metadata: {} + rss_url: + type: string + url: + type: string + format: uri + readOnly: true + downloads_count: + type: integer + readOnly: true + required: + - actor + - artist + - attributed_to + - downloads_count + - rss_url + - url + ChannelCreate: + type: object + properties: + name: + type: string + maxLength: 200 + username: + type: string + pattern: ^[\w]+$ + maxLength: 200 + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + tags: + type: array + items: + type: string + minItems: 0 + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + metadata: + type: object + additionalProperties: {} + required: + - content_category + - description + - name + - tags + - username + ChannelCreateRequest: + type: object + properties: + cover: + type: string + writeOnly: true + nullable: true + name: + type: string + minLength: 1 + maxLength: 200 + username: + type: string + minLength: 1 + pattern: ^[\w]+$ + maxLength: 200 + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + tags: + type: array + items: + type: string + minLength: 1 + minItems: 0 + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + metadata: + type: object + additionalProperties: {} + required: + - content_category + - description + - name + - tags + - username + ChannelRequest: + type: object + properties: + uuid: + type: string + format: uuid + artist: + $ref: '#/components/schemas/SimpleChannelArtistRequest' + attributed_to: + $ref: '#/components/schemas/APIActorRequest' + creation_date: + type: string + format: date-time + metadata: {} + rss_url: + type: string + minLength: 1 + required: + - artist + - attributed_to + - rss_url + ChannelUpdate: + type: object + properties: + name: + type: string + maxLength: 200 + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + tags: + type: array + items: + type: string + minItems: 0 + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + metadata: + type: object + additionalProperties: {} + required: + - content_category + - description + - name + - tags + ChannelUpdateRequest: + type: object + properties: + cover: + type: string + writeOnly: true + nullable: true + name: + type: string + minLength: 1 + maxLength: 200 + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + tags: + type: array + items: + type: string + minLength: 1 + minItems: 0 + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + metadata: + type: object + additionalProperties: {} + required: + - content_category + - description + - name + - tags + Content: + type: object + properties: + text: + type: string + nullable: true + maxLength: 5000 + content_type: + $ref: '#/components/schemas/ContentTypeEnum' + html: + type: string + readOnly: true + required: + - content_type + - html + - text + ContentCategoryEnum: + enum: + - music + - podcast + - other + type: string + description: |- + * `music` - music + * `podcast` - podcast + * `other` - other + ContentRequest: + type: object + properties: + text: + type: string + nullable: true + minLength: 1 + maxLength: 5000 + content_type: + $ref: '#/components/schemas/ContentTypeEnum' + required: + - content_type + - text + ContentTypeEnum: + enum: + - text/html + - text/markdown + - text/plain + type: string + description: |- + * `text/html` - text/html + * `text/markdown` - text/markdown + * `text/plain` - text/plain + CoverField: + type: object + properties: + uuid: + type: string + format: uuid + readOnly: true + size: + type: integer + readOnly: true + mimetype: + type: string + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + urls: + type: object + properties: + original: + type: string + small_square_crop: + type: string + medium_square_crop: + type: string + large_square_crop: + type: string + readOnly: true + required: + - creation_date + - mimetype + - size + - urls + - uuid + CoverFieldRequest: + type: object + properties: + file: + type: string + format: binary + writeOnly: true + required: + - file + CreateApplication: + type: object + properties: + client_id: + type: string + readOnly: true + name: + type: string + maxLength: 255 + scopes: + type: string + default: read + client_secret: + type: string + description: Hashed on Save. Copy it now if this is a new secret. + maxLength: 255 + created: + type: string + format: date-time + readOnly: true + updated: + type: string + format: date-time + readOnly: true + redirect_uris: + type: string + description: Allowed URIs list, space separated + required: + - client_id + - created + - name + - updated + CreateApplicationRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 255 + scopes: + type: string + minLength: 1 + default: read + client_secret: + type: string + description: Hashed on Save. Copy it now if this is a new secret. + maxLength: 255 + redirect_uris: + type: string + description: Allowed URIs list, space separated + required: + - name + Domain: + type: object + properties: + name: + type: string + required: + - name + Endpoints: + type: object + properties: + knownNodes: + type: string + format: uri + channels: + type: string + format: uri + libraries: + type: string + format: uri + ErrorDetail: + type: object + properties: + detail: + type: string + required: + - detail + FederationChoiceEnum: + enum: + - Person + - Tombstone + - Application + - Group + - Organization + - Service + type: string + description: |- + * `Person` - Person + * `Tombstone` - Tombstone + * `Application` - Application + * `Group` - Group + * `Organization` - Organization + * `Service` - Service + Fetch: + type: object + properties: + id: + type: integer + readOnly: true + url: + type: string + format: uri + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/FetchStatusEnum' + readOnly: true + detail: + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + fetch_date: + type: string + format: date-time + readOnly: true + nullable: true + required: + - actor + - creation_date + - detail + - fetch_date + - id + - status + - url + FetchRequest: + type: object + properties: + object: + type: string + writeOnly: true + minLength: 1 + force: + type: boolean + writeOnly: true + default: false + required: + - object + FetchStatusEnum: + enum: + - pending + - errored + - finished + - skipped + type: string + description: |- + * `pending` - Pending + * `errored` - Errored + * `finished` - Finished + * `skipped` - Skipped + Filter: + type: object + properties: + type: + type: string + label: + type: string + help_text: + type: string + fields: + type: string + readOnly: true + required: + - fields + - help_text + - label + - type + Follow: + type: object + properties: + creation_date: + type: string + format: date-time + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + target: + type: string + approved: + type: boolean + readOnly: true + nullable: true + required: + - actor + - approved + - creation_date + - target + - uuid + FollowRequest: + type: object + properties: + target: + type: string + required: + - target + FormatEnum: + enum: + - json + type: string + description: '* `json` - json' + FullActor: + type: object + properties: + fid: + type: string + format: uri + url: + type: string + format: uri + domain: + type: string + creation_date: + type: string + format: date-time + last_fetch_date: + type: string + format: date-time + name: + type: string + preferred_username: + type: string + full_username: + type: string + type: + type: string + is_local: + type: boolean + is_channel: + type: boolean + readOnly: true + manually_approves_followers: + type: boolean + user: + $ref: '#/components/schemas/UserBasic' + summary: + $ref: '#/components/schemas/Content' + icon: + $ref: '#/components/schemas/Attachment' + required: + - creation_date + - domain + - fid + - full_username + - icon + - is_channel + - is_local + - last_fetch_date + - manually_approves_followers + - name + - preferred_username + - summary + - type + - url + - user + GlobalPreference: + type: object + properties: + section: + type: string + readOnly: true + name: + type: string + readOnly: true + identifier: + type: string + readOnly: true + default: + type: string + readOnly: true + value: + type: string + verbose_name: + type: string + readOnly: true + help_text: + type: string + readOnly: true + additional_data: + type: string + readOnly: true + field: + type: string + readOnly: true + required: + - additional_data + - default + - field + - help_text + - identifier + - name + - section + - value + - verbose_name + GlobalPreferenceRequest: + type: object + properties: + value: + type: string + required: + - value + Ident: + type: object + properties: + type: + type: string + id: + type: string + required: + - id + - type + ImportStatusEnum: + enum: + - draft + - pending + - finished + - errored + - skipped + type: string + description: |- + * `draft` - Draft + * `pending` - Pending + * `finished` - Finished + * `errored` - Errored + * `skipped` - Skipped + InboxItem: + type: object + properties: + id: + type: integer + readOnly: true + type: + allOf: + - $ref: '#/components/schemas/InboxItemTypeEnum' + readOnly: true + activity: + $ref: '#/components/schemas/Activity' + is_read: + type: boolean + required: + - activity + - id + - type + InboxItemRequest: + type: object + properties: + activity: + $ref: '#/components/schemas/ActivityRequest' + is_read: + type: boolean + required: + - activity + InboxItemTypeEnum: + enum: + - to + - cc + type: string + description: |- + * `to` - to + * `cc` - cc + InlineActor: + type: object + properties: + full_username: + type: string + preferred_username: + type: string + domain: + type: string + required: + - domain + - full_username + - preferred_username + InlineActorRequest: + type: object + properties: + full_username: + type: string + minLength: 1 + preferred_username: + type: string + minLength: 1 + domain: + type: string + minLength: 1 + required: + - domain + - full_username + - preferred_username + InlineSubscription: + type: object + properties: + uuid: + type: string + format: uuid + channel: + type: string + format: uuid + required: + - channel + - uuid + Library: + type: object + properties: + fid: + type: string + format: uri + maxLength: 500 + uuid: + type: string + format: uuid + actor: + $ref: '#/components/schemas/APIActor' + name: + type: string + maxLength: 100 + creation_date: + type: string + format: date-time + uploads_count: + type: integer + readOnly: true + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + follow: + allOf: + - $ref: '#/components/schemas/NestedLibraryFollow' + nullable: true + latest_scan: + allOf: + - $ref: '#/components/schemas/LibraryScan' + nullable: true + required: + - actor + - fid + - name + - uploads_count + LibraryFollow: + type: object + properties: + creation_date: + type: string + format: date-time + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + target: + type: string + approved: + type: boolean + readOnly: true + nullable: true + required: + - actor + - approved + - creation_date + - target + - uuid + LibraryFollowRequest: + type: object + properties: + target: + type: string + required: + - target + LibraryForOwner: + type: object + properties: + uuid: + type: string + format: uuid + readOnly: true + fid: + type: string + format: uri + readOnly: true + name: + type: string + maxLength: 100 + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + uploads_count: + type: integer + readOnly: true + size: + type: integer + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + required: + - actor + - creation_date + - fid + - name + - size + - uploads_count + - uuid + LibraryForOwnerRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 100 + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + required: + - name + LibraryPrivacyLevelEnum: + enum: + - me + - instance + - everyone + type: string + description: |- + * `me` - Only me + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + LibraryRequest: + type: object + properties: + fid: + type: string + format: uri + minLength: 1 + maxLength: 500 + uuid: + type: string + format: uuid + actor: + $ref: '#/components/schemas/APIActorRequest' + name: + type: string + minLength: 1 + maxLength: 100 + creation_date: + type: string + format: date-time + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + follow: + allOf: + - $ref: '#/components/schemas/NestedLibraryFollowRequest' + nullable: true + latest_scan: + allOf: + - $ref: '#/components/schemas/LibraryScanRequest' + nullable: true + required: + - actor + - fid + - name + LibraryScan: + type: object + properties: + total_files: + type: integer + maximum: 2147483647 + minimum: 0 + processed_files: + type: integer + maximum: 2147483647 + minimum: 0 + errored_files: + type: integer + maximum: 2147483647 + minimum: 0 + status: + type: string + maxLength: 25 + creation_date: + type: string + format: date-time + modification_date: + type: string + format: date-time + nullable: true + LibraryScanRequest: + type: object + properties: + total_files: + type: integer + maximum: 2147483647 + minimum: 0 + processed_files: + type: integer + maximum: 2147483647 + minimum: 0 + errored_files: + type: integer + maximum: 2147483647 + minimum: 0 + status: + type: string + minLength: 1 + maxLength: 25 + creation_date: + type: string + format: date-time + modification_date: + type: string + format: date-time + nullable: true + License: + type: object + properties: + id: + type: string + readOnly: true + url: + type: string + format: uri + code: + type: string + name: + type: string + redistribute: + type: boolean + derivative: + type: boolean + commercial: + type: boolean + attribution: + type: boolean + copyleft: + type: boolean + required: + - attribution + - code + - commercial + - copyleft + - derivative + - id + - name + - redistribute + - url + Listening: + type: object + properties: + id: + type: integer + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + track: + allOf: + - $ref: '#/components/schemas/Track' + readOnly: true + creation_date: + type: string + format: date-time + nullable: true + required: + - actor + - id + - track + ListeningWrite: + type: object + properties: + id: + type: integer + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + track: + type: integer + creation_date: + type: string + format: date-time + nullable: true + required: + - actor + - id + - track + ListeningWriteRequest: + type: object + properties: + track: + type: integer + creation_date: + type: string + format: date-time + nullable: true + required: + - track + ManageActor: + type: object + properties: + id: + type: integer + readOnly: true + url: + type: string + format: uri + nullable: true + maxLength: 500 + fid: + type: string + format: uri + maxLength: 500 + preferred_username: + type: string + nullable: true + maxLength: 200 + full_username: + type: string + readOnly: true + domain: + type: string + name: + type: string + nullable: true + maxLength: 200 + summary: + type: string + nullable: true + maxLength: 500 + type: + $ref: '#/components/schemas/FederationChoiceEnum' + creation_date: + type: string + format: date-time + readOnly: true + last_fetch_date: + type: string + format: date-time + inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + outbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + shared_inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + manually_approves_followers: + type: boolean + nullable: true + is_local: + type: boolean + readOnly: true + uploads_count: + type: integer + readOnly: true + user: + allOf: + - $ref: '#/components/schemas/ManageUser' + nullable: true + instance_policy: + type: integer + readOnly: true + required: + - creation_date + - domain + - fid + - full_username + - id + - instance_policy + - is_local + - preferred_username + - uploads_count + - user + ManageActorRequest: + type: object + properties: + url: + type: string + format: uri + nullable: true + maxLength: 500 + fid: + type: string + format: uri + minLength: 1 + maxLength: 500 + preferred_username: + type: string + nullable: true + maxLength: 200 + domain: + type: string + minLength: 1 + name: + type: string + nullable: true + maxLength: 200 + summary: + type: string + nullable: true + maxLength: 500 + type: + $ref: '#/components/schemas/FederationChoiceEnum' + last_fetch_date: + type: string + format: date-time + inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + outbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + shared_inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + manually_approves_followers: + type: boolean + nullable: true + user: + allOf: + - $ref: '#/components/schemas/ManageUserRequest' + nullable: true + required: + - domain + - fid + - preferred_username + - user + ManageAlbum: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + creation_date: + type: string + format: date-time + release_date: + type: string + format: date + nullable: true + cover: + $ref: '#/components/schemas/CoverField' + domain: + type: string + is_local: + type: boolean + readOnly: true + tracks_count: + type: integer + readOnly: true + artist_credit: + type: array + items: + $ref: '#/components/schemas/ManageNestedArtistCredit' + attributed_to: + $ref: '#/components/schemas/ManageBaseActor' + tags: + type: array + items: + type: string + readOnly: true + required: + - artist_credit + - attributed_to + - cover + - domain + - id + - is_local + - tags + - title + - tracks_count + ManageAlbumRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + release_date: + type: string + format: date + nullable: true + cover: + $ref: '#/components/schemas/CoverFieldRequest' + domain: + type: string + minLength: 1 + artist_credit: + type: array + items: + $ref: '#/components/schemas/ManageNestedArtistCreditRequest' + attributed_to: + $ref: '#/components/schemas/ManageBaseActorRequest' + required: + - artist_credit + - attributed_to + - cover + - domain + - title + ManageArtist: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + name: + type: string + creation_date: + type: string + format: date-time + domain: + type: string + is_local: + type: boolean + readOnly: true + tracks_count: + type: integer + readOnly: true + albums_count: + type: integer + readOnly: true + attributed_to: + $ref: '#/components/schemas/ManageBaseActor' + tags: + type: array + items: + type: string + readOnly: true + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + channel: + type: string + readOnly: true + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + required: + - albums_count + - attributed_to + - channel + - cover + - domain + - id + - is_local + - name + - tags + - tracks_count + ManageArtistRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + name: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + domain: + type: string + minLength: 1 + attributed_to: + $ref: '#/components/schemas/ManageBaseActorRequest' + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + required: + - attributed_to + - cover + - domain + - name + ManageBaseActor: + type: object + properties: + id: + type: integer + readOnly: true + url: + type: string + format: uri + nullable: true + maxLength: 500 + fid: + type: string + format: uri + maxLength: 500 + preferred_username: + type: string + nullable: true + maxLength: 200 + full_username: + type: string + readOnly: true + domain: + type: string + name: + type: string + nullable: true + maxLength: 200 + summary: + type: string + nullable: true + maxLength: 500 + type: + $ref: '#/components/schemas/FederationChoiceEnum' + creation_date: + type: string + format: date-time + readOnly: true + last_fetch_date: + type: string + format: date-time + inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + outbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + shared_inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + manually_approves_followers: + type: boolean + nullable: true + is_local: + type: boolean + readOnly: true + required: + - creation_date + - domain + - fid + - full_username + - id + - is_local + - preferred_username + ManageBaseActorRequest: + type: object + properties: + url: + type: string + format: uri + nullable: true + maxLength: 500 + fid: + type: string + format: uri + minLength: 1 + maxLength: 500 + preferred_username: + type: string + nullable: true + maxLength: 200 + domain: + type: string + minLength: 1 + name: + type: string + nullable: true + maxLength: 200 + summary: + type: string + nullable: true + maxLength: 500 + type: + $ref: '#/components/schemas/FederationChoiceEnum' + last_fetch_date: + type: string + format: date-time + inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + outbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + shared_inbox_url: + type: string + format: uri + nullable: true + maxLength: 500 + manually_approves_followers: + type: boolean + nullable: true + required: + - domain + - fid + - preferred_username + ManageBaseNote: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + summary: + type: string + maxLength: 50000 + author: + allOf: + - $ref: '#/components/schemas/ManageBaseActor' + readOnly: true + required: + - author + - creation_date + - id + - summary + - uuid + ManageBaseNoteRequest: + type: object + properties: + summary: + type: string + minLength: 1 + maxLength: 50000 + required: + - summary + ManageChannel: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + artist: + $ref: '#/components/schemas/ManageArtist' + attributed_to: + $ref: '#/components/schemas/ManageBaseActor' + actor: + $ref: '#/components/schemas/ManageBaseActor' + rss_url: + type: string + format: uri + readOnly: true + nullable: true + metadata: + readOnly: true + required: + - actor + - artist + - attributed_to + - creation_date + - id + - metadata + - rss_url + - uuid + ManageDomain: + type: object + properties: + name: + type: string + format: uri + maxLength: 255 + creation_date: + type: string + format: date-time + readOnly: true + actors_count: + type: integer + readOnly: true + outbox_activities_count: + type: integer + readOnly: true + nodeinfo: + readOnly: true + nodeinfo_fetch_date: + type: string + format: date-time + readOnly: true + nullable: true + instance_policy: + type: integer + readOnly: true + allowed: + type: boolean + nullable: true + required: + - actors_count + - creation_date + - instance_policy + - name + - nodeinfo + - nodeinfo_fetch_date + - outbox_activities_count + ManageDomainRequest: + type: object + properties: + name: + type: string + minLength: 1 + format: uri + maxLength: 255 + allowed: + type: boolean + nullable: true + required: + - name + ManageDomainUpdate: + type: object + properties: + name: + type: string + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + actors_count: + type: integer + readOnly: true + outbox_activities_count: + type: integer + readOnly: true + nodeinfo: + readOnly: true + nodeinfo_fetch_date: + type: string + format: date-time + readOnly: true + nullable: true + instance_policy: + type: integer + readOnly: true + allowed: + type: boolean + nullable: true + required: + - actors_count + - creation_date + - instance_policy + - name + - nodeinfo + - nodeinfo_fetch_date + - outbox_activities_count + ManageDomainUpdateRequest: + type: object + properties: + allowed: + type: boolean + nullable: true + ManageInstancePolicy: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + target: + $ref: '#/components/schemas/ManageTarget' + creation_date: + type: string + format: date-time + readOnly: true + actor: + type: string + format: email + readOnly: true + summary: + type: string + nullable: true + maxLength: 10000 + is_active: + type: boolean + block_all: + type: boolean + silence_activity: + type: boolean + silence_notifications: + type: boolean + reject_media: + type: boolean + required: + - actor + - creation_date + - id + - target + - uuid + ManageInstancePolicyRequest: + type: object + properties: + target: + $ref: '#/components/schemas/ManageTargetRequest' + summary: + type: string + nullable: true + maxLength: 10000 + is_active: + type: boolean + block_all: + type: boolean + silence_activity: + type: boolean + silence_notifications: + type: boolean + reject_media: + type: boolean + required: + - target + ManageInvitation: + type: object + properties: + id: + type: integer + readOnly: true + owner: + $ref: '#/components/schemas/ManageUserSimple' + invited_user: + $ref: '#/components/schemas/ManageUserSimple' + code: + type: string + nullable: true + expiration_date: + type: string + format: date-time + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + users: + type: array + items: + $ref: '#/components/schemas/ManageUserSimple' + required: + - creation_date + - expiration_date + - id + ManageInvitationRequest: + type: object + properties: + owner: + $ref: '#/components/schemas/ManageUserSimpleRequest' + invited_user: + $ref: '#/components/schemas/ManageUserSimpleRequest' + code: + type: string + nullable: true + minLength: 1 + users: + type: array + items: + $ref: '#/components/schemas/ManageUserSimpleRequest' + ManageLibrary: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + fid: + type: string + format: uri + readOnly: true + url: + type: string + format: uri + readOnly: true + nullable: true + name: + type: string + maxLength: 100 + domain: + type: string + is_local: + type: boolean + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + uploads_count: + type: integer + readOnly: true + actor: + $ref: '#/components/schemas/ManageBaseActor' + required: + - actor + - creation_date + - domain + - fid + - id + - is_local + - name + - uploads_count + - url + - uuid + ManageLibraryRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 100 + domain: + type: string + minLength: 1 + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + actor: + $ref: '#/components/schemas/ManageBaseActorRequest' + required: + - actor + - domain + - name + ManageNestedArtist: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + name: + type: string + creation_date: + type: string + format: date-time + domain: + type: string + is_local: + type: boolean + readOnly: true + required: + - domain + - id + - is_local + - name + ManageNestedArtistCredit: + type: object + properties: + artist: + $ref: '#/components/schemas/ManageNestedArtist' + required: + - artist + ManageNestedArtistCreditRequest: + type: object + properties: + artist: + $ref: '#/components/schemas/ManageNestedArtistRequest' + required: + - artist + ManageNestedArtistRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + name: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + domain: + type: string + minLength: 1 + required: + - domain + - name + ManageNestedLibrary: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + fid: + type: string + format: uri + maxLength: 500 + url: + type: string + format: uri + nullable: true + maxLength: 500 + name: + type: string + maxLength: 100 + domain: + type: string + is_local: + type: boolean + readOnly: true + creation_date: + type: string + format: date-time + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + actor: + $ref: '#/components/schemas/ManageBaseActor' + required: + - actor + - domain + - fid + - id + - is_local + - name + ManageNestedLibraryRequest: + type: object + properties: + uuid: + type: string + format: uuid + fid: + type: string + format: uri + minLength: 1 + maxLength: 500 + url: + type: string + format: uri + nullable: true + maxLength: 500 + name: + type: string + minLength: 1 + maxLength: 100 + domain: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + actor: + $ref: '#/components/schemas/ManageBaseActorRequest' + required: + - actor + - domain + - fid + - name + ManageNestedTrack: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + creation_date: + type: string + format: date-time + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + disc_number: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + domain: + type: string + is_local: + type: boolean + readOnly: true + copyright: + type: string + nullable: true + license: + type: string + nullable: true + required: + - domain + - id + - is_local + - title + ManageNestedTrackRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + disc_number: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + domain: + type: string + minLength: 1 + copyright: + type: string + nullable: true + license: + type: string + minLength: 1 + nullable: true + required: + - domain + - title + ManageNote: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + summary: + type: string + maxLength: 50000 + author: + allOf: + - $ref: '#/components/schemas/ManageBaseActor' + readOnly: true + target: {} + required: + - author + - creation_date + - id + - summary + - target + - uuid + ManageNoteRequest: + type: object + properties: + summary: + type: string + minLength: 1 + maxLength: 50000 + target: {} + required: + - summary + - target + ManageReport: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + fid: + type: string + format: uri + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + handled_date: + type: string + format: date-time + readOnly: true + nullable: true + summary: + type: string + readOnly: true + nullable: true + type: + $ref: '#/components/schemas/ReportTypeEnum' + target: {} + target_state: + readOnly: true + nullable: true + is_handled: + type: boolean + assigned_to: + allOf: + - $ref: '#/components/schemas/ManageBaseActor' + nullable: true + target_owner: + $ref: '#/components/schemas/ManageBaseActor' + submitter: + $ref: '#/components/schemas/ManageBaseActor' + submitter_email: + type: string + format: email + readOnly: true + nullable: true + notes: + type: array + items: + $ref: '#/components/schemas/ManageBaseNote' + nullable: true + default: [] + required: + - creation_date + - fid + - handled_date + - id + - submitter_email + - summary + - target + - target_state + - type + - uuid + ManageReportRequest: + type: object + properties: + type: + $ref: '#/components/schemas/ReportTypeEnum' + target: {} + is_handled: + type: boolean + assigned_to: + allOf: + - $ref: '#/components/schemas/ManageBaseActorRequest' + nullable: true + target_owner: + $ref: '#/components/schemas/ManageBaseActorRequest' + submitter: + $ref: '#/components/schemas/ManageBaseActorRequest' + notes: + type: array + items: + $ref: '#/components/schemas/ManageBaseNoteRequest' + nullable: true + default: [] + required: + - target + - type + ManageTag: + type: object + properties: + id: + type: integer + readOnly: true + name: + type: string + maxLength: 100 + creation_date: + type: string + format: date-time + tracks_count: + type: integer + readOnly: true + albums_count: + type: integer + readOnly: true + artists_count: + type: integer + readOnly: true + required: + - albums_count + - artists_count + - id + - name + - tracks_count + ManageTagRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 100 + creation_date: + type: string + format: date-time + required: + - name + ManageTarget: + type: object + properties: + type: + $ref: '#/components/schemas/ManageTargetTypeEnum' + id: + type: string + required: + - id + - type + ManageTargetRequest: + type: object + properties: + type: + $ref: '#/components/schemas/ManageTargetTypeEnum' + id: + type: string + minLength: 1 + required: + - id + - type + ManageTargetTypeEnum: + enum: + - domain + - actor + type: string + description: |- + * `domain` - domain + * `actor` - actor + ManageTrack: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + creation_date: + type: string + format: date-time + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + disc_number: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + domain: + type: string + is_local: + type: boolean + readOnly: true + copyright: + type: string + nullable: true + license: + type: string + nullable: true + artist_credit: + type: array + items: + $ref: '#/components/schemas/ManageNestedArtistCredit' + album: + allOf: + - $ref: '#/components/schemas/ManageTrackAlbum' + nullable: true + attributed_to: + allOf: + - $ref: '#/components/schemas/ManageBaseActor' + nullable: true + uploads_count: + type: integer + readOnly: true + tags: + type: array + items: + type: string + readOnly: true + cover: + $ref: '#/components/schemas/CoverField' + required: + - album + - artist_credit + - attributed_to + - cover + - domain + - id + - is_local + - tags + - title + - uploads_count + ManageTrackAlbum: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + creation_date: + type: string + format: date-time + release_date: + type: string + format: date + nullable: true + cover: + $ref: '#/components/schemas/CoverField' + domain: + type: string + is_local: + type: boolean + readOnly: true + tracks_count: + type: integer + readOnly: true + artist_credit: + type: array + items: + $ref: '#/components/schemas/ManageNestedArtistCredit' + required: + - artist_credit + - cover + - domain + - id + - is_local + - title + - tracks_count + ManageTrackAlbumRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + release_date: + type: string + format: date + nullable: true + cover: + $ref: '#/components/schemas/CoverFieldRequest' + domain: + type: string + minLength: 1 + artist_credit: + type: array + items: + $ref: '#/components/schemas/ManageNestedArtistCreditRequest' + required: + - artist_credit + - cover + - domain + - title + ManageTrackRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + position: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + disc_number: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + domain: + type: string + minLength: 1 + copyright: + type: string + nullable: true + license: + type: string + minLength: 1 + nullable: true + artist_credit: + type: array + items: + $ref: '#/components/schemas/ManageNestedArtistCreditRequest' + album: + allOf: + - $ref: '#/components/schemas/ManageTrackAlbumRequest' + nullable: true + attributed_to: + allOf: + - $ref: '#/components/schemas/ManageBaseActorRequest' + nullable: true + cover: + $ref: '#/components/schemas/CoverFieldRequest' + required: + - album + - artist_credit + - attributed_to + - cover + - domain + - title + ManageUpload: + type: object + properties: + id: + type: integer + readOnly: true + uuid: + type: string + format: uuid + fid: + type: string + format: uri + nullable: true + maxLength: 500 + domain: + type: string + is_local: + type: boolean + readOnly: true + audio_file: + type: string + format: uri + listen_url: + type: string + readOnly: true + source: + type: string + nullable: true + maxLength: 500 + filename: + type: string + readOnly: true + mimetype: + type: string + nullable: true + maxLength: 200 + duration: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + bitrate: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + size: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + creation_date: + type: string + format: date-time + accessed_date: + type: string + format: date-time + nullable: true + modification_date: + type: string + format: date-time + nullable: true + metadata: {} + import_date: + type: string + format: date-time + nullable: true + import_details: {} + import_status: + $ref: '#/components/schemas/ImportStatusEnum' + import_metadata: {} + import_reference: + type: string + maxLength: 50 + track: + $ref: '#/components/schemas/ManageNestedTrack' + library: + $ref: '#/components/schemas/ManageNestedLibrary' + required: + - audio_file + - domain + - filename + - id + - is_local + - library + - listen_url + - track + ManageUploadRequest: + type: object + properties: + uuid: + type: string + format: uuid + fid: + type: string + format: uri + nullable: true + maxLength: 500 + domain: + type: string + minLength: 1 + audio_file: + type: string + format: binary + source: + type: string + nullable: true + maxLength: 500 + mimetype: + type: string + nullable: true + maxLength: 200 + duration: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + bitrate: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + size: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + creation_date: + type: string + format: date-time + accessed_date: + type: string + format: date-time + nullable: true + modification_date: + type: string + format: date-time + nullable: true + metadata: {} + import_date: + type: string + format: date-time + nullable: true + import_details: {} + import_status: + $ref: '#/components/schemas/ImportStatusEnum' + import_metadata: {} + import_reference: + type: string + minLength: 1 + maxLength: 50 + track: + $ref: '#/components/schemas/ManageNestedTrackRequest' + library: + $ref: '#/components/schemas/ManageNestedLibraryRequest' + required: + - audio_file + - domain + - library + - track + ManageUser: + type: object + properties: + id: + type: integer + readOnly: true + username: + type: string + readOnly: true + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + actor: + type: object + additionalProperties: {} + readOnly: true + email: + type: string + format: email + readOnly: true + title: Email address + name: + type: string + title: Name of User + maxLength: 255 + is_active: + type: boolean + title: Active + description: Designates whether this user should be treated as active. Unselect + this instead of deleting accounts. + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + date_joined: + type: string + format: date-time + readOnly: true + last_activity: + type: string + format: date-time + readOnly: true + nullable: true + upload_quota: + type: integer + nullable: true + privacy_level: + allOf: + - $ref: '#/components/schemas/PrivacyLevelEnum' + readOnly: true + full_username: + type: string + readOnly: true + required: + - actor + - date_joined + - email + - full_username + - id + - last_activity + - privacy_level + - username + ManageUserRequest: + type: object + properties: + name: + type: string + title: Name of User + maxLength: 255 + is_active: + type: boolean + title: Active + description: Designates whether this user should be treated as active. Unselect + this instead of deleting accounts. + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + upload_quota: + type: integer + nullable: true + ManageUserRequestRequest: + type: object + properties: + type: + $ref: '#/components/schemas/ManageUserRequestTypeEnum' + status: + $ref: '#/components/schemas/ManageUserRequestStatusEnum' + assigned_to: + $ref: '#/components/schemas/ManageBaseActorRequest' + submitter: + $ref: '#/components/schemas/ManageBaseActorRequest' + required: + - assigned_to + - submitter + - type + ManageUserRequestStatusEnum: + enum: + - pending + - refused + - approved + type: string + description: |- + * `pending` - Pending + * `refused` - Refused + * `approved` - Approved + ManageUserRequestTypeEnum: + enum: + - signup + type: string + description: '* `signup` - Sign-up' + ManageUserSimple: + type: object + properties: + id: + type: integer + readOnly: true + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + email: + type: string + format: email + title: Email address + maxLength: 254 + name: + type: string + title: Name of User + maxLength: 255 + is_active: + type: boolean + title: Active + description: Designates whether this user should be treated as active. Unselect + this instead of deleting accounts. + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + date_joined: + type: string + format: date-time + last_activity: + type: string + format: date-time + nullable: true + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + upload_quota: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + required: + - id + - username + ManageUserSimpleRequest: + type: object + properties: + username: + type: string + minLength: 1 + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + email: + type: string + format: email + title: Email address + maxLength: 254 + name: + type: string + title: Name of User + maxLength: 255 + is_active: + type: boolean + title: Active + description: Designates whether this user should be treated as active. Unselect + this instead of deleting accounts. + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + date_joined: + type: string + format: date-time + last_activity: + type: string + format: date-time + nullable: true + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + upload_quota: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + required: + - username + Metadata20: + type: object + properties: + actorId: + type: string + private: + type: boolean + readOnly: true + shortDescription: + type: string + readOnly: true + longDescription: + type: string + readOnly: true + contactEmail: + type: string + readOnly: true + nodeName: + type: string + readOnly: true + banner: + type: string + readOnly: true + defaultUploadQuota: + type: integer + readOnly: true + supportedUploadExtensions: + type: array + items: + type: string + allowList: + allOf: + - $ref: '#/components/schemas/AllowListStat' + readOnly: true + funkwhaleSupportMessageEnabled: + type: boolean + readOnly: true + instanceSupportMessage: + type: string + readOnly: true + usage: + $ref: '#/components/schemas/MetadataUsage' + library: + allOf: + - $ref: '#/components/schemas/NodeInfoLibrary' + readOnly: true + reportTypes: + type: array + items: + $ref: '#/components/schemas/ReportType' + endpoints: + $ref: '#/components/schemas/Endpoints' + rules: + type: string + readOnly: true + terms: + type: string + readOnly: true + required: + - actorId + - allowList + - banner + - contactEmail + - defaultUploadQuota + - endpoints + - funkwhaleSupportMessageEnabled + - instanceSupportMessage + - library + - longDescription + - nodeName + - private + - reportTypes + - rules + - shortDescription + - supportedUploadExtensions + - terms + MetadataUsage: + type: object + properties: + favorites: + $ref: '#/components/schemas/MetadataUsageFavorite' + listenings: + $ref: '#/components/schemas/TotalCount' + downloads: + $ref: '#/components/schemas/TotalCount' + required: + - downloads + - favorites + - listenings + MetadataUsageFavorite: + type: object + properties: + tracks: + allOf: + - $ref: '#/components/schemas/TotalCount' + readOnly: true + required: + - tracks + ModerationTarget: + type: object + properties: + type: + $ref: '#/components/schemas/ModerationTargetTypeEnum' + id: + type: string + required: + - id + - type + ModerationTargetRequest: + type: object + properties: + type: + $ref: '#/components/schemas/ModerationTargetTypeEnum' + id: + type: string + minLength: 1 + required: + - id + - type + ModerationTargetTypeEnum: + enum: + - artist + type: string + description: '* `artist` - artist' + NestedLibraryFollow: + type: object + properties: + creation_date: + type: string + format: date-time + uuid: + type: string + format: uuid + fid: + type: string + format: uri + nullable: true + maxLength: 500 + approved: + type: boolean + nullable: true + modification_date: + type: string + format: date-time + readOnly: true + required: + - modification_date + NestedLibraryFollowRequest: + type: object + properties: + creation_date: + type: string + format: date-time + uuid: + type: string + format: uuid + fid: + type: string + format: uri + nullable: true + maxLength: 500 + approved: + type: boolean + nullable: true + NodeInfo20: + type: object + properties: + version: + type: string + readOnly: true + software: + $ref: '#/components/schemas/Software' + protocols: + type: array + items: {} + readOnly: true + services: + allOf: + - $ref: '#/components/schemas/Services' + default: + inbound: [] + outbound: [] + openRegistrations: + type: boolean + readOnly: true + usage: + allOf: + - $ref: '#/components/schemas/Usage' + readOnly: true + metadata: + allOf: + - $ref: '#/components/schemas/Metadata20' + readOnly: true + required: + - metadata + - openRegistrations + - protocols + - software + - usage + - version + NodeInfoLibrary: + type: object + properties: + federationEnabled: + type: boolean + anonymousCanListen: + type: boolean + tracks: + allOf: + - $ref: '#/components/schemas/TotalCount' + default: + total: 0 + artists: + allOf: + - $ref: '#/components/schemas/TotalCount' + default: + total: 0 + albums: + allOf: + - $ref: '#/components/schemas/TotalCount' + default: + total: 0 + music: + allOf: + - $ref: '#/components/schemas/TotalHours' + default: + hours: 0 + required: + - anonymousCanListen + - federationEnabled + Oembed: + type: object + properties: + format: + $ref: '#/components/schemas/FormatEnum' + url: + type: string + format: uri + maxheight: + type: integer + maxwidth: + type: integer + required: + - format + - url + PaginatedAPIMutationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/APIMutation' + PaginatedAlbumList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Album' + PaginatedApplicationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Application' + PaginatedArtistWithAlbumsList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ArtistWithAlbums' + PaginatedChannelList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Channel' + PaginatedDomainList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Domain' + PaginatedFetchList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Fetch' + PaginatedFollowList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Follow' + PaginatedInboxItemList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/InboxItem' + PaginatedLibraryFollowList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/LibraryFollow' + PaginatedLibraryForOwnerList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/LibraryForOwner' + PaginatedLibraryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Library' + PaginatedLicenseList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/License' + PaginatedListeningList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Listening' + PaginatedManageActorList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageActor' + PaginatedManageAlbumList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageAlbum' + PaginatedManageArtistList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageArtist' + PaginatedManageChannelList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageChannel' + PaginatedManageDomainList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageDomain' + PaginatedManageInstancePolicyList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageInstancePolicy' + PaginatedManageInvitationList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageInvitation' + PaginatedManageLibraryList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageLibrary' + PaginatedManageNoteList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageNote' + PaginatedManageReportList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageReport' + PaginatedManageTagList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageTag' + PaginatedManageTrackList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageTrack' + PaginatedManageUploadList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageUpload' + PaginatedManageUserList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageUser' + PaginatedManageUserRequestList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ManageUserRequest' + PaginatedPlaylistList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Playlist' + PaginatedPlaylistTrackList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/PlaylistTrack' + PaginatedRadioList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Radio' + PaginatedSubscriptionList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Subscription' + PaginatedTagList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Tag' + PaginatedTrackList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/Track' + PaginatedUploadForOwnerList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/UploadForOwner' + PaginatedUserFilterList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/UserFilter' + PaginatedUserTrackFavoriteList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/UserTrackFavorite' + PasswordChange: + type: object + properties: + new_password1: + type: string + maxLength: 128 + new_password2: + type: string + maxLength: 128 + required: + - new_password1 + - new_password2 + PasswordChangeRequest: + type: object + properties: + new_password1: + type: string + minLength: 1 + maxLength: 128 + new_password2: + type: string + minLength: 1 + maxLength: 128 + required: + - new_password1 + - new_password2 + PasswordReset: + type: object + description: Serializer for requesting a password reset e-mail. + properties: + email: + type: string + format: email + required: + - email + PasswordResetConfirm: + type: object + description: Serializer for confirming a password reset attempt. + properties: + new_password1: + type: string + maxLength: 128 + new_password2: + type: string + maxLength: 128 + uid: + type: string + token: + type: string + required: + - new_password1 + - new_password2 + - token + - uid + PasswordResetConfirmRequest: + type: object + description: Serializer for confirming a password reset attempt. + properties: + new_password1: + type: string + minLength: 1 + maxLength: 128 + new_password2: + type: string + minLength: 1 + maxLength: 128 + uid: + type: string + minLength: 1 + token: + type: string + minLength: 1 + required: + - new_password1 + - new_password2 + - token + - uid + PasswordResetRequest: + type: object + description: Serializer for requesting a password reset e-mail. + properties: + email: + type: string + format: email + minLength: 1 + required: + - email + PatchedApplicationRequest: + type: object + properties: + client_id: + type: string + minLength: 1 + maxLength: 100 + name: + type: string + maxLength: 255 + scopes: + type: string + minLength: 1 + PatchedChannelUpdateRequest: + type: object + properties: + cover: + type: string + writeOnly: true + nullable: true + name: + type: string + minLength: 1 + maxLength: 200 + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + tags: + type: array + items: + type: string + minLength: 1 + minItems: 0 + content_category: + $ref: '#/components/schemas/ContentCategoryEnum' + metadata: + type: object + additionalProperties: {} + PatchedGlobalPreferenceRequest: + type: object + properties: + value: + type: string + PatchedInboxItemRequest: + type: object + properties: + activity: + $ref: '#/components/schemas/ActivityRequest' + is_read: + type: boolean + PatchedManageDomainUpdateRequest: + type: object + properties: + allowed: + type: boolean + nullable: true + PatchedManageInstancePolicyRequest: + type: object + properties: + target: + $ref: '#/components/schemas/ManageTargetRequest' + summary: + type: string + nullable: true + maxLength: 10000 + is_active: + type: boolean + block_all: + type: boolean + silence_activity: + type: boolean + silence_notifications: + type: boolean + reject_media: + type: boolean + PatchedManageInvitationRequest: + type: object + properties: + owner: + $ref: '#/components/schemas/ManageUserSimpleRequest' + invited_user: + $ref: '#/components/schemas/ManageUserSimpleRequest' + code: + type: string + nullable: true + minLength: 1 + users: + type: array + items: + $ref: '#/components/schemas/ManageUserSimpleRequest' + PatchedManageLibraryRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 100 + domain: + type: string + minLength: 1 + privacy_level: + $ref: '#/components/schemas/LibraryPrivacyLevelEnum' + actor: + $ref: '#/components/schemas/ManageBaseActorRequest' + PatchedManageReportRequest: + type: object + properties: + type: + $ref: '#/components/schemas/ReportTypeEnum' + target: {} + is_handled: + type: boolean + assigned_to: + allOf: + - $ref: '#/components/schemas/ManageBaseActorRequest' + nullable: true + target_owner: + $ref: '#/components/schemas/ManageBaseActorRequest' + submitter: + $ref: '#/components/schemas/ManageBaseActorRequest' + notes: + type: array + items: + $ref: '#/components/schemas/ManageBaseNoteRequest' + nullable: true + default: [] + PatchedManageUserRequest: + type: object + properties: + name: + type: string + title: Name of User + maxLength: 255 + is_active: + type: boolean + title: Active + description: Designates whether this user should be treated as active. Unselect + this instead of deleting accounts. + is_staff: + type: boolean + title: Staff status + description: Designates whether the user can log into this admin site. + is_superuser: + type: boolean + title: Superuser status + description: Designates that this user has all permissions without explicitly + assigning them. + upload_quota: + type: integer + nullable: true + PatchedManageUserRequestRequest: + type: object + properties: + type: + $ref: '#/components/schemas/ManageUserRequestTypeEnum' + status: + $ref: '#/components/schemas/ManageUserRequestStatusEnum' + assigned_to: + $ref: '#/components/schemas/ManageBaseActorRequest' + submitter: + $ref: '#/components/schemas/ManageBaseActorRequest' + PatchedPlaylistRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 100 + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + PatchedRadioRequest: + type: object + properties: + is_public: + type: boolean + name: + type: string + minLength: 1 + maxLength: 100 + config: {} + description: + type: string + PatchedUploadForOwnerRequest: + type: object + properties: + filename: + type: string + minLength: 1 + track: + allOf: + - $ref: '#/components/schemas/TrackRequest' + nullable: true + library: + type: string + channel: + type: string + import_status: + allOf: + - $ref: '#/components/schemas/ImportStatusEnum' + default: pending + import_metadata: {} + import_reference: + type: string + minLength: 1 + maxLength: 50 + source: + type: string + nullable: true + maxLength: 500 + audio_file: + type: string + format: binary + writeOnly: true + PatchedUserDetailsRequest: + type: object + description: User model w/o password + properties: + username: + type: string + minLength: 1 + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + first_name: + type: string + maxLength: 150 + last_name: + type: string + maxLength: 150 + PatchedUserWriteRequest: + type: object + properties: + name: + type: string + title: Name of User + maxLength: 255 + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + avatar: + type: string + writeOnly: true + instance_support_message_display_date: + type: string + format: date-time + nullable: true + funkwhale_support_message_display_date: + type: string + format: date-time + nullable: true + summary: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + Playlist: + type: object + properties: + id: + type: integer + readOnly: true + name: + type: string + maxLength: 100 + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + modification_date: + type: string + format: date-time + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + tracks_count: + type: integer + readOnly: true + album_covers: + type: array + items: + type: string + readOnly: true + duration: + type: integer + readOnly: true + is_playable: + type: boolean + readOnly: true + required: + - actor + - album_covers + - creation_date + - duration + - id + - is_playable + - modification_date + - name + - tracks_count + PlaylistAddManyRequest: + type: object + properties: + tracks: + type: array + items: + type: integer + allow_duplicates: + type: boolean + required: + - tracks + PlaylistRequest: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 100 + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + required: + - name + PlaylistTrack: + type: object + properties: + track: + type: string + readOnly: true + index: + type: integer + maximum: 2147483647 + minimum: 0 + nullable: true + creation_date: + type: string + format: date-time + required: + - track + PrivacyLevelEnum: + enum: + - me + - followers + - instance + - everyone + type: string + description: |- + * `me` - Only me + * `followers` - Me and my followers + * `instance` - Everyone on my instance, and my followers + * `everyone` - Everyone, including people on other instances + Radio: + type: object + properties: + id: + type: integer + readOnly: true + is_public: + type: boolean + name: + type: string + maxLength: 100 + creation_date: + type: string + format: date-time + readOnly: true + user: + allOf: + - $ref: '#/components/schemas/UserBasic' + readOnly: true + config: {} + description: + type: string + required: + - config + - creation_date + - id + - name + - user + RadioRequest: + type: object + properties: + is_public: + type: boolean + name: + type: string + minLength: 1 + maxLength: 100 + config: {} + description: + type: string + required: + - config + - name + RadioSession: + type: object + properties: + id: + type: integer + readOnly: true + radio_type: + type: string + maxLength: 50 + related_object_id: + type: string + nullable: true + user: + type: integer + nullable: true + creation_date: + type: string + format: date-time + custom_radio: + type: integer + nullable: true + config: + nullable: true + required: + - id + - radio_type + RadioSessionRequest: + type: object + properties: + radio_type: + type: string + minLength: 1 + maxLength: 50 + related_object_id: + type: string + nullable: true + minLength: 1 + user: + type: integer + nullable: true + creation_date: + type: string + format: date-time + custom_radio: + type: integer + nullable: true + config: + nullable: true + required: + - radio_type + RadioSessionTrackSerializerCreate: + type: object + properties: + session: + type: integer + count: + type: integer + nullable: true + required: + - session + RadioSessionTrackSerializerCreateRequest: + type: object + properties: + session: + type: integer + count: + type: integer + nullable: true + required: + - session + RateLimit: + type: object + properties: + enabled: + type: boolean + ident: + $ref: '#/components/schemas/Ident' + scopes: + type: array + items: + $ref: '#/components/schemas/Scopes' + required: + - enabled + - ident + - scopes + Register: + type: object + properties: + username: + type: string + maxLength: 150 + minLength: 1 + email: + type: string + format: email + invitation: + type: string + nullable: true + required: + - email + - username + RegisterRequest: + type: object + properties: + username: + type: string + minLength: 1 + maxLength: 150 + email: + type: string + format: email + minLength: 1 + password1: + type: string + writeOnly: true + minLength: 1 + password2: + type: string + writeOnly: true + minLength: 1 + invitation: + type: string + nullable: true + required: + - email + - password1 + - password2 + - username + Report: + type: object + properties: + uuid: + type: string + format: uuid + readOnly: true + summary: + type: string + nullable: true + maxLength: 50000 + creation_date: + type: string + format: date-time + readOnly: true + handled_date: + type: string + format: date-time + readOnly: true + nullable: true + is_handled: + type: boolean + readOnly: true + submitter_email: + type: string + format: email + nullable: true + maxLength: 254 + target: {} + type: + $ref: '#/components/schemas/ReportTypeEnum' + required: + - creation_date + - handled_date + - is_handled + - target + - type + - uuid + ReportRequest: + type: object + properties: + summary: + type: string + nullable: true + maxLength: 50000 + submitter_email: + type: string + format: email + nullable: true + minLength: 1 + maxLength: 254 + target: {} + type: + $ref: '#/components/schemas/ReportTypeEnum' + required: + - target + - type + ReportType: + type: object + properties: + type: + type: string + label: + type: string + anonymous: + type: boolean + required: + - anonymous + - label + - type + ReportTypeEnum: + enum: + - takedown_request + - invalid_metadata + - illegal_content + - offensive_content + - other + type: string + description: |- + * `takedown_request` - Takedown request + * `invalid_metadata` - Invalid metadata + * `illegal_content` - Illegal content + * `offensive_content` - Offensive content + * `other` - Other + Scopes: + type: object + properties: + id: + type: string + rate: + type: string + description: + type: string + limit: + type: integer + duration: + type: integer + remaining: + type: integer + available: + type: integer + available_seconds: + type: integer + reset: + type: integer + reset_seconds: + type: integer + required: + - available + - available_seconds + - description + - duration + - id + - limit + - rate + - remaining + - reset + - reset_seconds + SearchResult: + type: object + properties: + artists: + type: array + items: + $ref: '#/components/schemas/ArtistWithAlbums' + tracks: + type: array + items: + $ref: '#/components/schemas/Track' + albums: + type: array + items: + $ref: '#/components/schemas/Album' + tags: + type: array + items: + $ref: '#/components/schemas/Tag' + required: + - albums + - artists + - tags + - tracks + Services: + type: object + properties: + inbound: + type: array + items: + type: string + default: [] + outbound: + type: array + items: + type: string + default: [] + SimpleChannelArtist: + type: object + properties: + id: + type: integer + fid: + type: string + format: uri + mbid: + type: string + name: + type: string + creation_date: + type: string + format: date-time + modification_date: + type: string + format: date-time + is_local: + type: boolean + content_category: + type: string + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + channel: + type: string + format: uuid + nullable: true + tracks_count: + type: integer + readOnly: true + tags: + type: array + items: + type: string + required: + - content_category + - creation_date + - fid + - id + - is_local + - mbid + - modification_date + - name + - tracks_count + SimpleChannelArtistRequest: + type: object + properties: + id: + type: integer + fid: + type: string + format: uri + minLength: 1 + mbid: + type: string + minLength: 1 + name: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + modification_date: + type: string + format: date-time + is_local: + type: boolean + content_category: + type: string + minLength: 1 + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + channel: + type: string + format: uuid + nullable: true + tags: + type: array + items: + type: string + minLength: 1 + required: + - content_category + - creation_date + - fid + - id + - is_local + - mbid + - modification_date + - name + SimpleFavorite: + type: object + properties: + id: + type: integer + track: + type: integer + required: + - id + - track + Software: + type: object + properties: + name: + type: string + readOnly: true + version: + type: string + required: + - name + - version + SpaManifest: + type: object + properties: + name: + type: string + default: Funkwhale + short_name: + type: string + default: Funkwhale + display: + type: string + background_color: + type: string + lang: + type: string + categories: + type: array + items: + type: string + description: + type: string + icons: + type: array + items: + $ref: '#/components/schemas/SpaManifestIcon' + start_url: + type: string + prefer_related_applications: + type: boolean + related_applications: + type: array + items: + $ref: '#/components/schemas/SpaManifestRelatedApplications' + shortcuts: + type: array + items: + $ref: '#/components/schemas/SpaManifestShortcut' + SpaManifestIcon: + type: object + properties: + src: + type: string + sizes: + type: string + type: + type: string + required: + - sizes + - src + - type + SpaManifestRelatedApplications: + type: object + properties: + platform: + type: string + url: + type: string + format: uri + id: + type: string + required: + - id + - platform + - url + SpaManifestShortcut: + type: object + properties: + name: + type: string + url: + type: string + icons: + type: array + items: + $ref: '#/components/schemas/SpaManifestIcon' + required: + - name + - url + Subscription: + type: object + properties: + approved: + type: boolean + readOnly: true + fid: + type: string + format: uri + readOnly: true + uuid: + type: string + format: uuid + readOnly: true + creation_date: + type: string + format: date-time + readOnly: true + required: + - approved + - creation_date + - fid + - uuid + Tag: + type: object + properties: + name: + type: string + maxLength: 100 + creation_date: + type: string + format: date-time + required: + - name + TextPreview: + type: object + properties: + rendered: + type: string + readOnly: true + required: + - rendered + TextPreviewRequest: + type: object + properties: + text: + type: string + writeOnly: true + minLength: 1 + required: + - text + TotalCount: + type: object + properties: + total: + type: integer + readOnly: true + required: + - total + TotalHours: + type: object + properties: + hours: + type: integer + readOnly: true + required: + - hours + Track: + type: object + properties: + artist_credit: + type: array + items: + $ref: '#/components/schemas/ArtistCredit' + album: + allOf: + - $ref: '#/components/schemas/TrackAlbum' + readOnly: true + uploads: + type: array + items: + $ref: '#/components/schemas/TrackUpload' + readOnly: true + listen_url: + type: string + format: uri + readOnly: true + tags: + type: array + items: + type: string + readOnly: true + attributed_to: + allOf: + - $ref: '#/components/schemas/APIActor' + nullable: true + description: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + id: + type: integer + fid: + type: string + format: uri + mbid: + type: string + format: uuid + title: + type: string + creation_date: + type: string + format: date-time + is_local: + type: boolean + position: + type: integer + disc_number: + type: integer + downloads_count: + type: integer + copyright: + type: string + license: + type: string + readOnly: true + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + is_playable: + type: boolean + readOnly: true + required: + - album + - artist_credit + - attributed_to + - copyright + - cover + - creation_date + - disc_number + - downloads_count + - fid + - id + - is_local + - is_playable + - license + - listen_url + - mbid + - position + - tags + - title + - uploads + TrackAlbum: + type: object + properties: + id: + type: integer + readOnly: true + fid: + type: string + format: uri + nullable: true + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + artist_credit: + type: array + items: + $ref: '#/components/schemas/ArtistCredit' + release_date: + type: string + format: date + nullable: true + cover: + allOf: + - $ref: '#/components/schemas/CoverField' + nullable: true + creation_date: + type: string + format: date-time + is_local: + type: boolean + readOnly: true + tracks_count: + type: integer + readOnly: true + required: + - artist_credit + - cover + - id + - is_local + - title + - tracks_count + TrackAlbumRequest: + type: object + properties: + fid: + type: string + format: uri + nullable: true + minLength: 1 + maxLength: 500 + mbid: + type: string + format: uuid + nullable: true + title: + type: string + minLength: 1 + artist_credit: + type: array + items: + $ref: '#/components/schemas/ArtistCreditRequest' + release_date: + type: string + format: date + nullable: true + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + creation_date: + type: string + format: date-time + required: + - artist_credit + - cover + - title + TrackMetadata: + type: object + properties: + title: + type: string + nullable: true + position: + type: string + nullable: true + disc_number: + type: string + nullable: true + copyright: + type: string + nullable: true + license: + type: string + nullable: true + mbid: + type: string + format: uuid + nullable: true + tags: + type: string + nullable: true + description: + type: string + nullable: true + album: + type: string + artist_credit: + type: string + cover_data: + type: string + required: + - album + - artist_credit + TrackRequest: + type: object + properties: + artist_credit: + type: array + items: + $ref: '#/components/schemas/ArtistCreditRequest' + attributed_to: + allOf: + - $ref: '#/components/schemas/APIActorRequest' + nullable: true + description: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + id: + type: integer + fid: + type: string + format: uri + minLength: 1 + mbid: + type: string + format: uuid + title: + type: string + minLength: 1 + creation_date: + type: string + format: date-time + is_local: + type: boolean + position: + type: integer + disc_number: + type: integer + downloads_count: + type: integer + copyright: + type: string + minLength: 1 + cover: + allOf: + - $ref: '#/components/schemas/CoverFieldRequest' + nullable: true + required: + - artist_credit + - attributed_to + - copyright + - cover + - creation_date + - disc_number + - downloads_count + - fid + - id + - is_local + - mbid + - position + - title + TrackUpload: + type: object + properties: + uuid: + type: string + format: uuid + listen_url: + type: string + format: uri + size: + type: integer + duration: + type: integer + bitrate: + type: integer + mimetype: + type: string + extension: + type: string + is_local: + type: boolean + readOnly: true + required: + - bitrate + - duration + - extension + - is_local + - listen_url + - mimetype + - size + - uuid + UploadForOwner: + type: object + properties: + uuid: + type: string + format: uuid + readOnly: true + filename: + type: string + creation_date: + type: string + format: date-time + readOnly: true + mimetype: + type: string + readOnly: true + nullable: true + track: + allOf: + - $ref: '#/components/schemas/Track' + nullable: true + library: + type: string + channel: + type: string + duration: + type: integer + readOnly: true + nullable: true + bitrate: + type: integer + readOnly: true + nullable: true + size: + type: integer + readOnly: true + nullable: true + import_date: + type: string + format: date-time + readOnly: true + nullable: true + import_status: + allOf: + - $ref: '#/components/schemas/ImportStatusEnum' + default: pending + import_details: + readOnly: true + import_metadata: {} + import_reference: + type: string + maxLength: 50 + metadata: + readOnly: true + source: + type: string + nullable: true + maxLength: 500 + required: + - bitrate + - creation_date + - duration + - import_date + - import_details + - metadata + - mimetype + - size + - uuid + UploadForOwnerRequest: + type: object + properties: + filename: + type: string + minLength: 1 + track: + allOf: + - $ref: '#/components/schemas/TrackRequest' + nullable: true + library: + type: string + channel: + type: string + import_status: + allOf: + - $ref: '#/components/schemas/ImportStatusEnum' + default: pending + import_metadata: {} + import_reference: + type: string + minLength: 1 + maxLength: 50 + source: + type: string + nullable: true + maxLength: 500 + audio_file: + type: string + format: binary + writeOnly: true + required: + - audio_file + Usage: + type: object + properties: + users: + $ref: '#/components/schemas/UsersUsage' + localPosts: + type: integer + localComments: + type: integer + required: + - users + UserBasic: + type: object + properties: + id: + type: integer + readOnly: true + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + name: + type: string + title: Name of User + maxLength: 255 + date_joined: + type: string + format: date-time + avatar: + allOf: + - $ref: '#/components/schemas/Attachment' + nullable: true + required: + - avatar + - id + - username + UserBasicRequest: + type: object + properties: + username: + type: string + minLength: 1 + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + name: + type: string + title: Name of User + maxLength: 255 + date_joined: + type: string + format: date-time + avatar: + allOf: + - $ref: '#/components/schemas/AttachmentRequest' + nullable: true + required: + - avatar + - username + UserDetails: + type: object + description: User model w/o password + properties: + pk: + type: integer + readOnly: true + title: ID + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + email: + type: string + format: email + readOnly: true + title: Email address + first_name: + type: string + maxLength: 150 + last_name: + type: string + maxLength: 150 + required: + - email + - pk + - username + UserDetailsRequest: + type: object + description: User model w/o password + properties: + username: + type: string + minLength: 1 + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + first_name: + type: string + maxLength: 150 + last_name: + type: string + maxLength: 150 + required: + - username + UserFilter: + type: object + properties: + uuid: + type: string + format: uuid + readOnly: true + target: + $ref: '#/components/schemas/ModerationTarget' + creation_date: + type: string + format: date-time + readOnly: true + required: + - creation_date + - target + - uuid + UserFilterRequest: + type: object + properties: + target: + $ref: '#/components/schemas/ModerationTargetRequest' + required: + - target + UserTrackFavorite: + type: object + properties: + id: + type: integer + readOnly: true + actor: + allOf: + - $ref: '#/components/schemas/APIActor' + readOnly: true + track: + allOf: + - $ref: '#/components/schemas/Track' + readOnly: true + creation_date: + type: string + format: date-time + required: + - actor + - id + - track + UserTrackFavoriteWrite: + type: object + properties: + id: + type: integer + readOnly: true + track: + type: integer + creation_date: + type: string + format: date-time + required: + - id + - track + UserTrackFavoriteWriteRequest: + type: object + properties: + track: + type: integer + creation_date: + type: string + format: date-time + required: + - track + UserWrite: + type: object + properties: + name: + type: string + title: Name of User + maxLength: 255 + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + instance_support_message_display_date: + type: string + format: date-time + nullable: true + funkwhale_support_message_display_date: + type: string + format: date-time + nullable: true + summary: + allOf: + - $ref: '#/components/schemas/Content' + nullable: true + UserWriteRequest: + type: object + properties: + name: + type: string + title: Name of User + maxLength: 255 + privacy_level: + $ref: '#/components/schemas/PrivacyLevelEnum' + avatar: + type: string + writeOnly: true + instance_support_message_display_date: + type: string + format: date-time + nullable: true + funkwhale_support_message_display_date: + type: string + format: date-time + nullable: true + summary: + allOf: + - $ref: '#/components/schemas/ContentRequest' + nullable: true + required: + - avatar + UsersUsage: + type: object + properties: + total: + type: integer + activeHalfyear: + type: integer + readOnly: true + activeMonth: + type: integer + readOnly: true + required: + - activeHalfyear + - activeMonth + - total + VerifyEmailRequest: + type: object + properties: + key: + type: string + writeOnly: true + minLength: 1 + required: + - key + securitySchemes: + ApplicationToken: + type: http + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: /authorize + tokenUrl: /api/v1/oauth/token/ + scopes: + read: '' + read:profile: '' + read:libraries: '' + read:edits: '' + read:follows: '' + read:favorites: '' + read:filters: '' + read:listenings: '' + read:radios: '' + read:playlists: '' + read:notifications: '' + read:security: '' + read:reports: '' + read:plugins: '' + read:instance:settings: '' + read:instance:users: '' + read:instance:invitations: '' + read:instance:edits: '' + read:instance:libraries: '' + read:instance:accounts: '' + read:instance:domains: '' + read:instance:policies: '' + read:instance:reports: '' + read:instance:requests: '' + read:instance:notes: '' + write: '' + write:profile: '' + write:libraries: '' + write:edits: '' + write:follows: '' + write:favorites: '' + write:filters: '' + write:listenings: '' + write:radios: '' + write:playlists: '' + write:notifications: '' + write:security: '' + write:reports: '' + write:plugins: '' + write:instance:settings: '' + write:instance:users: '' + write:instance:invitations: '' + write:instance:edits: '' + write:instance:libraries: '' + write:instance:accounts: '' + write:instance:domains: '' + write:instance:policies: '' + write:instance:reports: '' + write:instance:requests: '' + write:instance:notes: '' +servers: +- url: https://demo.funkwhale.audio + description: Demo Server +- url: https://funkwhale.audio + description: Read server with real content +- url: '{protocol}://{domain}' + description: Custom server + variables: + domain: + default: yourdomain + description: Your Funkwhale Domain + protocol: + enum: + - http + - https + default: https diff --git a/docs/developer/api/schema.md b/docs/developer/api/schema.md new file mode 100644 index 000000000..af26fae59 --- /dev/null +++ b/docs/developer/api/schema.md @@ -0,0 +1,7 @@ +# OpenApi schema + +The frontend need up to date schemas ! If you change the api you need to upgrade the schema by running : `docker compose run --rm api funkwhale-manage spectacular > ./api/funkwhale_api/common/schema.yml`. + +Then you need to upgrade the frontend schema has well by running `yarn generate-types-from-local-schema`. + +Be aware that `get_signup_form_additional_fields_serializer` can tweak the schema generation.