diff --git a/api/funkwhale_api/schema.yml b/api/funkwhale_api/schema.yml new file mode 100644 index 000000000..112326c80 --- /dev/null +++ b/api/funkwhale_api/schema.yml @@ -0,0 +1,25992 @@ +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: |- + Calls Django Auth SetPasswordForm save method. + + Accepts the following POST parameters: new_password1, new_password2 + Returns the success/fail message. + 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: |- + Calls Django Auth PasswordResetForm save method. + + Accepts the following POST parameters: email + Returns the success/fail message. + 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: |- + Password reset e-mail link is confirmed, therefore + this resets the user's password. + + Accepts the following POST parameters: token, uid, + new_password1, new_password2 + Returns the success/fail message. + 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: |- + Registers a new user. + + Accepts the following POST parameters: username, email, password1, password2. + 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: |- + Calls Django Auth SetPasswordForm save method. + + Accepts the following POST parameters: new_password1, new_password2 + Returns the success/fail message. + 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: |- + Verifies the email associated with the provided key. + + Accepts the following POST parameter: key. + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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: |- + Calls Django Auth SetPasswordForm save method. + + Accepts the following POST parameters: new_password1, new_password2 + Returns the success/fail message. + 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: |- + Calls Django Auth PasswordResetForm save method. + + Accepts the following POST parameters: email + Returns the success/fail message. + 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: |- + Password reset e-mail link is confirmed, therefore + this resets the user's password. + + Accepts the following POST parameters: token, uid, + new_password1, new_password2 + Returns the success/fail message. + 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: |- + Registers a new user. + + Accepts the following POST parameters: username, email, password1, password2. + 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: |- + Calls Django Auth SetPasswordForm save method. + + Accepts the following POST parameters: new_password1, new_password2 + Returns the success/fail message. + 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: |- + Verifies the email associated with the provided key. + + Accepts the following POST parameter: key. + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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 sys.getdefaultencoding(). + 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/front/package.json b/front/package.json index c6e43bbd4..ef7638ef0 100644 --- a/front/package.json +++ b/front/package.json @@ -18,7 +18,7 @@ "test:generate-mock-server": "msw-auto-mock ../docs/schema.yml -o test/msw-server.ts --node", "lint": "eslint --cache --cache-strategy content --ext .ts,.js,.vue,.json,.html src test cypress public/embed.html", "lint:tsc": "vue-tsc --noEmit --incremental && tsc --noEmit --incremental -p cypress", - "generate-local-schema": "yarn run openapi-typescript ../api/schema.yml -o src/generated/types.ts", + "generate-local-schema": "yarn run openapi-typescript ../api/funkwhale_api/schema.yml -o src/generated/types.ts", "generate-remote-schema": "yarn run openapi-typescript https://docs.funkwhale.audio/develop/swagger/schema.yml -o src/generated/types.ts" }, "dependencies": { diff --git a/front/src/generated/types.ts b/front/src/generated/types.ts index bfaf83124..e68a4008a 100644 --- a/front/src/generated/types.ts +++ b/front/src/generated/types.ts @@ -6338,6 +6338,8 @@ export interface components { creation_date: string; is_local: boolean; readonly duration: number; + tracks: components["schemas"]["Track"][] | null; + description?: components["schemas"]["Content"] | null; }; AlbumCreate: { title: string; @@ -6371,6 +6373,8 @@ export interface components { /** Format: date-time */ creation_date: string; is_local: boolean; + tracks: components["schemas"]["TrackRequest"][] | null; + description?: components["schemas"]["ContentRequest"] | null; }; AllFavorite: { results: components["schemas"]["SimpleFavorite"][]; @@ -6398,18 +6402,55 @@ export interface components { name?: string; scopes: string; }; + Artist: { + readonly id: number; + /** Format: uri */ + fid?: string | null; + /** Format: uuid */ + mbid?: string | null; + name: string; + /** Format: date-time */ + creation_date?: string; + /** Format: date-time */ + modification_date?: string; + readonly is_local: boolean; + content_category?: components["schemas"]["ContentCategoryEnum"]; + description?: components["schemas"]["Content"] | null; + cover?: components["schemas"]["CoverField"] | null; + /** Format: uuid */ + channel?: string | null; + attributed_to?: number | null; + readonly tags: string[]; + }; ArtistCredit: { - artist: components["schemas"]["SimpleArtist"]; + artist: components["schemas"]["Artist"]; credit?: string | null; joinphrase?: string | null; index?: number | null; }; ArtistCreditRequest: { - artist: components["schemas"]["SimpleArtistRequest"]; + artist: components["schemas"]["ArtistRequest"]; credit?: string | null; joinphrase?: string | null; index?: number | null; }; + ArtistRequest: { + /** Format: uri */ + fid?: string | null; + /** Format: uuid */ + mbid?: string | null; + name: string; + /** Format: date-time */ + creation_date?: string; + /** Format: date-time */ + modification_date?: string; + content_category?: components["schemas"]["ContentCategoryEnum"]; + description?: components["schemas"]["ContentRequest"] | null; + cover?: components["schemas"]["CoverFieldRequest"] | null; + /** Format: uuid */ + channel?: string | null; + attributed_to?: number | null; + }; ArtistWithAlbums: { readonly albums: string; readonly tags: string[]; @@ -6459,7 +6500,10 @@ export interface components { /** Format: date-time */ readonly creation_date: string; readonly urls: { - [key: string]: unknown; + original?: string; + small_square_crop?: string; + medium_square_crop?: string; + large_square_crop?: string; }; }; AttachmentRequest: { @@ -6561,7 +6605,10 @@ export interface components { /** Format: date-time */ readonly creation_date: string; readonly urls: { - [key: string]: unknown; + original?: string; + small_square_crop?: string; + medium_square_crop?: string; + large_square_crop?: string; }; }; CoverFieldRequest: { @@ -8559,42 +8606,6 @@ export interface components { /** @default [] */ outbound: string[]; }; - SimpleArtist: { - readonly id: number; - /** Format: uri */ - fid?: string | null; - /** Format: uuid */ - mbid?: string | null; - name: string; - /** Format: date-time */ - creation_date?: string; - /** Format: date-time */ - modification_date?: string; - readonly is_local: boolean; - content_category?: components["schemas"]["ContentCategoryEnum"]; - description?: components["schemas"]["Content"] | null; - attachment_cover?: components["schemas"]["CoverField"] | null; - /** Format: uuid */ - channel?: string | null; - attributed_to?: number | null; - }; - SimpleArtistRequest: { - /** Format: uri */ - fid?: string | null; - /** Format: uuid */ - mbid?: string | null; - name: string; - /** Format: date-time */ - creation_date?: string; - /** Format: date-time */ - modification_date?: string; - content_category?: components["schemas"]["ContentCategoryEnum"]; - description?: components["schemas"]["ContentRequest"] | null; - attachment_cover?: components["schemas"]["CoverFieldRequest"] | null; - /** Format: uuid */ - channel?: string | null; - attributed_to?: number | null; - }; SimpleChannelArtist: { id: number; /** Format: uri */ @@ -8706,6 +8717,7 @@ export interface components { readonly listen_url: string; readonly tags: string[]; attributed_to: components["schemas"]["APIActor"] | null; + description?: components["schemas"]["Content"] | null; id: number; /** Format: uri */ fid: string; @@ -8769,6 +8781,7 @@ export interface components { TrackRequest: { artist_credit: components["schemas"]["ArtistCreditRequest"][]; attributed_to: components["schemas"]["APIActorRequest"] | null; + description?: components["schemas"]["ContentRequest"] | null; id: number; /** Format: uri */ fid: string;