openapi: 3.0.3 info: title: Funkwhale API version: 1.2.9 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/admin/configuration.html#api-configuration) ## 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: - token: [] responses: "200": description: No response body /api/v1/albums/: get: operationId: get_albums parameters: - in: query name: artist schema: type: integer - in: query name: channel schema: type: string - in: query name: content_category schema: type: string - 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__modification_date - -creation_date - -random - -related - -release_date - -title - artist__modification_date - creation_date - random - related - release_date - title description: Ordering 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] responses: "204": description: No response body /api/v1/albums/{id}/fetches/: get: operationId: get_album_fetches parameters: - in: query name: artist schema: type: integer - in: query name: channel schema: type: string - in: query name: content_category schema: type: string - 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__modification_date - -creation_date - -random - -related - -release_date - -title - artist__modification_date - creation_date - random - related - release_date - title description: Ordering 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: - token: [] 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: - token: [] 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: integer - in: query name: channel schema: type: string - in: query name: content_category schema: type: string - 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__modification_date - -creation_date - -random - -related - -release_date - -title - artist__modification_date - creation_date - random - related - release_date - title description: Ordering 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: - read:libraries - token: [] 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: integer - in: query name: channel schema: type: string - in: query name: content_category schema: type: string - 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__modification_date - -creation_date - -random - -related - -release_date - -title - artist__modification_date - creation_date - random - related - release_date - title description: Ordering 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: - read:edits - token: [] 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: - write:edits - token: [] 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: 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 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: 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 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: - token: [] 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: - token: [] 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: 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 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: - read:libraries - token: [] 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: 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 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: - read:edits - token: [] 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: - write:edits - token: [] 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: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - token: [] 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: - token: [] - {} 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: - token: [] - {} responses: "200": content: application/json: schema: $ref: "#/components/schemas/PasswordResetConfirm" description: "" /api/v1/auth/registration/: post: operationId: register 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: - token: [] 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: - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/PasswordChange" description: "" /api/v1/auth/registration/verify-email/: post: operationId: verify_email 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: - token: [] - {} 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: - token: [] 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: - token: [] 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: - token: [] 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 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - write:libraries - token: [] 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: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - token: [] 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: - token: [] responses: "204": description: No response body delete: operationId: unsubscribe_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels security: - token: [] responses: "204": description: No response body /api/v1/channels/metadata-choices/: get: operationId: get_channel_metadata_choices tags: - channels security: - token: [] 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: - write:libraries - token: [] 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: - read:favorites - token: [] 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: - write:favorites - token: [] 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: - write:favorites - token: [] 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: - read:favorites - token: [] 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: - write:favorites - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/UserTrackFavoriteWrite" description: "" delete: operationId: unfavorite_track tags: - favorites security: - oauth2: - write:favorites - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - read:follows - token: [] 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: - write:follows - token: [] 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: - read:follows - token: [] 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: - write:follows - token: [] 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: - write:follows - token: [] 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: - write:follows - token: [] 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: - read:follows - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/LibraryFollow" 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: - read:notifications - token: [] 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: - read:notifications - token: [] 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: - write:notifications - token: [] 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: - write:notifications - token: [] 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: - write:notifications - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - write:libraries - token: [] 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: - read:listenings - token: [] 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: - write:listenings - token: [] 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: - read:listenings - token: [] 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: - read:instance:settings - token: [] 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: - read:instance:settings - token: [] 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: - write:instance:settings - token: [] 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" required: true security: - oauth2: - write:instance:settings - token: [] 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: - write:instance:settings - token: [] 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 - in: query name: q schema: type: string - in: query name: scope schema: type: string tags: - libraries security: - oauth2: - read:libraries - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/PaginatedLibraryForOwnerList" description: "" post: operationId: create_library 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: - write:libraries - token: [] responses: "201": content: application/json: schema: $ref: "#/components/schemas/LibraryForOwner" 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: - read:libraries - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/LibraryForOwner" description: "" put: operationId: update_library parameters: - in: path name: uuid schema: type: string format: uuid required: true 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: - write:libraries - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/LibraryForOwner" description: "" patch: operationId: partial_update_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - libraries requestBody: content: application/json: schema: $ref: "#/components/schemas/PatchedLibraryForOwnerRequest" application/x-www-form-urlencoded: schema: $ref: "#/components/schemas/PatchedLibraryForOwnerRequest" multipart/form-data: schema: $ref: "#/components/schemas/PatchedLibraryForOwnerRequest" application/activity+json: schema: $ref: "#/components/schemas/PatchedLibraryForOwnerRequest" security: - oauth2: - write:libraries - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/LibraryForOwner" description: "" delete: operationId: delete_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - libraries security: - oauth2: - write:libraries - token: [] responses: "204": description: No response body /api/v1/libraries/{uuid}/follows/: get: operationId: get_library_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 - in: query name: privacy_level schema: type: string enum: - everyone - instance - me - in: query name: q schema: type: string - in: query name: scope schema: type: string - in: path name: uuid schema: type: string format: uuid required: true tags: - libraries security: - oauth2: - read:libraries - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/PaginatedLibraryFollowList" description: "" /api/v1/libraries/fs-import/: get: operationId: get_library_fs_import tags: - libraries security: - oauth2: - read:libraries - token: [] 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: - write:libraries - token: [] responses: "200": description: No response body delete: operationId: delete_library_fs_import tags: - libraries security: - oauth2: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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 tags: - manage security: - oauth2: - read:instance:accounts - token: [] 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: - read:instance:accounts - token: [] 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: - read:instance:accounts - token: [] 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: - write:instance:accounts - token: [] 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: - read:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - read:instance:domains - token: [] 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: - write:instance:domains - token: [] 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: - read:instance:domains - token: [] 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: - write:instance:domains - token: [] 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: - write:instance:domains - token: [] 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: - read:instance:domains - token: [] 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: - read:instance:domains - token: [] 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: - write:instance:domains - token: [] 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 schema: type: integer - 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: - read:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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 - 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: - read:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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 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 - in: query name: q schema: type: string tags: - manage security: - oauth2: - read:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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 schema: type: integer - 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: - read:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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 - 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 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: - read:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:policies - token: [] 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: - write:instance:policies - token: [] 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: - read:instance:policies - token: [] 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: - write:instance:policies - token: [] 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: - write:instance:policies - token: [] 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: - write:instance:policies - token: [] 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: - read:instance:notes - token: [] 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: - write:instance:notes - token: [] 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: - read:instance:notes - token: [] 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: - write:instance:notes - token: [] 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 tags: - manage security: - oauth2: - read:instance:reports - token: [] 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: - read:instance:reports - token: [] 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: - write:instance:reports - token: [] 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: - write:instance:reports - token: [] 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 - in: query name: type schema: type: string enum: - signup tags: - manage security: - oauth2: - read:instance:requests - token: [] 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: - read:instance:requests - token: [] 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: - write:instance:requests - token: [] 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: - write:instance:requests - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - write:instance:libraries - token: [] 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: - read:instance:invitations - token: [] 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: - write:instance:invitations - token: [] 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: - read:instance:invitations - token: [] 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: - write:instance:invitations - token: [] 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: - write:instance:invitations - token: [] 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: - write:instance:invitations - token: [] 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 - in: query name: q schema: type: string tags: - manage security: - oauth2: - read:instance:users - token: [] 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: - read:instance:users - token: [] 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: - write:instance:users - token: [] 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: - write:instance:users - token: [] 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: - read:filters - token: [] 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: - write:filters - token: [] 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: - read:filters - token: [] 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: - write:filters - token: [] 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: - write:reports - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - token: [] 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: - read:security - token: [] 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: - null - token: [] 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: - null - token: [] 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: - write:security - token: [] 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: - write:security - token: [] 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: - write:security - token: [] 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: - write:security - token: [] 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: - read:security - token: [] 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: - read:security - token: [] 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: - write:security - token: [] responses: "204": description: No response body /api/v1/oembed/: get: operationId: get_oembed tags: - oembed security: - oauth2: - read:libraries - token: [] 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: 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: - read:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/PaginatedPlaylistList" description: "" post: operationId: create_playlist tags: - playlists requestBody: content: 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" application/activity+json: schema: $ref: "#/components/schemas/PlaylistRequest" required: true security: - oauth2: - write:playlists - token: [] responses: "201": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" /api/v1/playlists/{id}/: get: operationId: get_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: - read:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" put: operationId: update_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists requestBody: content: 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" application/activity+json: schema: $ref: "#/components/schemas/PlaylistRequest" required: true security: - oauth2: - write:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" patch: operationId: partial_update_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists requestBody: content: 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" application/activity+json: schema: $ref: "#/components/schemas/PatchedPlaylistRequest" security: - oauth2: - write:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" delete: operationId: delete_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: - write:playlists - token: [] responses: "204": description: No response body /api/v1/playlists/{id}/add/: post: operationId: add_to_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists requestBody: content: 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" application/activity+json: schema: $ref: "#/components/schemas/PlaylistAddManyRequest" required: true security: - oauth2: - write:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" /api/v1/playlists/{id}/clear/: delete: operationId: clear_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: - write:playlists - token: [] responses: "204": description: No response body /api/v1/playlists/{id}/move/: post: operationId: reorder_track_in_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists requestBody: content: 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" application/activity+json: schema: $ref: "#/components/schemas/PlaylistRequest" required: true security: - oauth2: - write:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" /api/v1/playlists/{id}/remove/: post: operationId: remove_from_playlist_2 parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists requestBody: content: 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" application/activity+json: schema: $ref: "#/components/schemas/PlaylistRequest" required: true security: - oauth2: - write:playlists - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/Playlist" description: "" delete: operationId: remove_from_playlist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: - write:playlists - token: [] 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: 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: - read:playlists - token: [] responses: "200": content: application/json: 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: - read:plugins - token: [] responses: "200": description: No response body post: operationId: create_plugin tags: - plugins security: - oauth2: - write:plugins - token: [] 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: - read:plugins - token: [] 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: - write:plugins - token: [] 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: - write:plugins - token: [] 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: - write:plugins - token: [] 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: - read:radios - token: [] 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: - write:radios - token: [] 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: - read:radios - token: [] 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: - write:radios - token: [] 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: - write:radios - token: [] 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: - write:radios - token: [] 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: - read:radios - token: [] 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: - read:radios - token: [] 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: - write:radios - token: [] 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: - token: [] 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: - token: [] 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: - token: [] responses: "201": content: application/json: schema: $ref: "#/components/schemas/RadioSessionTrackSerializerCreate" description: "" /api/v1/rate-limit/: get: operationId: get_rate_limit tags: - rate-limit security: - token: [] responses: "200": content: application/json: schema: $ref: "#/components/schemas/RateLimit" description: "" /api/v1/search: get: operationId: get_search_results tags: - search security: - oauth2: - read:libraries - token: [] 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: name__startswith schema: type: string - in: query name: ordering schema: type: array items: type: string enum: - -creation_date - -length - -name - creation_date - length - name description: Ordering 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: - token: [] 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: 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__modification_date - -artist__name - -creation_date - -disc_number - -position - -random - -related - -size - -title - album__release_date - album__title - artist__modification_date - artist__name - creation_date - disc_number - position - random - related - size - title description: Ordering 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 - 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: - read:libraries - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: 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__modification_date - -artist__name - -creation_date - -disc_number - -position - -random - -related - -size - -title - album__release_date - album__title - artist__modification_date - artist__name - creation_date - disc_number - position - random - related - size - title description: Ordering 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 - 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: - token: [] 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: - token: [] 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: 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__modification_date - -artist__name - -creation_date - -disc_number - -position - -random - -related - -size - -title - album__release_date - album__title - artist__modification_date - artist__name - creation_date - disc_number - position - random - related - size - title description: Ordering 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 - 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: - read:libraries - token: [] 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: 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__modification_date - -artist__name - -creation_date - -disc_number - -position - -random - -related - -size - -title - album__release_date - album__title - artist__modification_date - artist__name - creation_date - disc_number - position - random - related - size - title description: Ordering 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 - 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: - read:edits - token: [] 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: - write:edits - token: [] 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 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - write:libraries - token: [] 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: - write:libraries - token: [] 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: - read:libraries - token: [] 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: - write:libraries - token: [] 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: - write:profile - token: [] 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: - write:profile - token: [] 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: - read:security - token: [] 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: - write:security - token: [] 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: - write:security - token: [] 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: - write:security - token: [] 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: - read:profile - token: [] 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: - write:profile - token: [] 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: - write:profile - token: [] 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: type: object additionalProperties: {} previous_state: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} creation_date: type: string format: date-time type: type: string nullable: true minLength: 1 maxLength: 100 required: - actor Album: type: object properties: artist: $ref: "#/components/schemas/SimpleArtist" 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 required: - artist - attributed_to - cover - creation_date - duration - fid - id - is_local - is_playable - mbid - release_date - tags - title - 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: type: string format: uuid required: - artist - title AlbumCreateRequest: type: object properties: cover: type: string format: uuid 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: type: string format: uuid required: - artist - title AlbumRequest: type: object properties: artist: $ref: "#/components/schemas/SimpleArtistRequest" 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 required: - artist - attributed_to - cover - creation_date - fid - id - is_local - mbid - release_date - title 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 ArtistAlbum: type: object properties: tracks_count: type: integer readOnly: true cover: allOf: - $ref: "#/components/schemas/CoverField" nullable: true is_playable: type: boolean readOnly: true is_local: type: boolean id: type: integer fid: type: string format: uri mbid: type: string format: uuid title: type: string artist: type: integer readOnly: true release_date: type: string format: date creation_date: type: string format: date-time required: - artist - cover - creation_date - fid - id - is_local - is_playable - mbid - release_date - title - tracks_count ArtistAlbumRequest: type: object properties: cover: allOf: - $ref: "#/components/schemas/CoverFieldRequest" nullable: true is_local: type: boolean 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 required: - cover - creation_date - fid - id - is_local - mbid - release_date - title ArtistWithAlbums: type: object properties: albums: type: array items: $ref: "#/components/schemas/ArtistAlbum" 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: albums: type: array items: $ref: "#/components/schemas/ArtistAlbumRequest" 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: - albums - 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 additionalProperties: {} 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: type: object additionalProperties: {} 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 format: uuid 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: type: object additionalProperties: {} 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 format: uuid 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 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 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 additionalProperties: {} 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 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: type: object additionalProperties: {} 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 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 FormatEnum: enum: - json type: string 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: object additionalProperties: {} readOnly: true field: type: object additionalProperties: {} 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: integer required: - id - type ImportStatusEnum: enum: - draft - pending - finished - errored - skipped type: string 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 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 description: type: string nullable: true maxLength: 5000 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: $ref: "#/components/schemas/Library" approved: type: boolean readOnly: true nullable: true required: - actor - approved - creation_date - target - uuid LibraryFollowRequest: type: object properties: target: type: string format: uuid 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 description: type: string nullable: true maxLength: 5000 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 description: type: string nullable: true maxLength: 5000 privacy_level: $ref: "#/components/schemas/LibraryPrivacyLevelEnum" required: - name LibraryPrivacyLevelEnum: enum: - me - instance - everyone type: string 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 description: type: string nullable: true maxLength: 5000 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 user: allOf: - $ref: "#/components/schemas/UserBasic" readOnly: true track: allOf: - $ref: "#/components/schemas/Track" readOnly: true creation_date: type: string format: date-time nullable: true actor: allOf: - $ref: "#/components/schemas/APIActor" readOnly: true required: - actor - id - track - user ListeningWrite: type: object properties: id: type: integer readOnly: true user: type: integer nullable: true track: type: integer creation_date: type: string format: date-time nullable: true required: - id - track ListeningWriteRequest: type: object properties: user: type: integer nullable: true 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: $ref: "#/components/schemas/ManageNestedArtist" attributed_to: $ref: "#/components/schemas/ManageBaseActor" tags: type: array items: type: string readOnly: true required: - artist - 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: $ref: "#/components/schemas/ManageNestedArtistRequest" attributed_to: $ref: "#/components/schemas/ManageBaseActorRequest" required: - artist - 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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 description: type: string nullable: true maxLength: 5000 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 followers_count: type: integer readOnly: true followers_url: type: string format: uri maxLength: 500 actor: $ref: "#/components/schemas/ManageBaseActor" required: - actor - creation_date - domain - fid - followers_count - followers_url - id - is_local - name - uploads_count - url - uuid ManageLibraryRequest: type: object properties: name: type: string minLength: 1 maxLength: 100 description: type: string nullable: true maxLength: 5000 domain: type: string minLength: 1 privacy_level: $ref: "#/components/schemas/LibraryPrivacyLevelEnum" followers_url: type: string format: uri minLength: 1 maxLength: 500 actor: $ref: "#/components/schemas/ManageBaseActorRequest" required: - actor - domain - followers_url - 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 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 description: type: string nullable: true maxLength: 5000 domain: type: string is_local: type: boolean readOnly: true creation_date: type: string format: date-time privacy_level: $ref: "#/components/schemas/LibraryPrivacyLevelEnum" followers_url: type: string format: uri maxLength: 500 actor: $ref: "#/components/schemas/ManageBaseActor" required: - actor - domain - fid - followers_url - 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 description: type: string nullable: true maxLength: 5000 domain: type: string minLength: 1 creation_date: type: string format: date-time privacy_level: $ref: "#/components/schemas/LibraryPrivacyLevelEnum" followers_url: type: string format: uri minLength: 1 maxLength: 500 actor: $ref: "#/components/schemas/ManageBaseActorRequest" required: - actor - domain - fid - followers_url - 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: type: object additionalProperties: {} required: - author - creation_date - id - summary - target - uuid ManageNoteRequest: type: object properties: summary: type: string minLength: 1 maxLength: 50000 target: type: object additionalProperties: {} 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: type: object additionalProperties: {} target_state: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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 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: $ref: "#/components/schemas/ManageNestedArtist" 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 - 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: $ref: "#/components/schemas/ManageNestedArtist" required: - artist - 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: $ref: "#/components/schemas/ManageNestedArtistRequest" required: - artist - 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: $ref: "#/components/schemas/ManageNestedArtistRequest" 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 - 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: type: object additionalProperties: {} import_date: type: string format: date-time nullable: true import_details: type: object additionalProperties: {} import_status: $ref: "#/components/schemas/ImportStatusEnum" import_metadata: type: object additionalProperties: {} 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: type: object additionalProperties: {} import_date: type: string format: date-time nullable: true import_details: type: object additionalProperties: {} import_status: $ref: "#/components/schemas/ImportStatusEnum" import_metadata: type: object additionalProperties: {} 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 privacy_level: allOf: - $ref: "#/components/schemas/PrivacyLevelEnum" readOnly: true upload_quota: type: integer nullable: 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 ManageUserRequestTypeEnum: enum: - signup type: string 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 Metadata: type: object properties: actorId: type: string private: type: boolean readOnly: true shortDescription: type: string readOnly: true longDescription: type: string readOnly: true rules: type: string readOnly: true contactEmail: type: string readOnly: true terms: type: string readOnly: true nodeName: type: string readOnly: true banner: type: string readOnly: true defaultUploadQuota: type: integer readOnly: true library: allOf: - $ref: "#/components/schemas/NodeInfoLibrary" readOnly: true supportedUploadExtensions: type: array items: type: string allowList: allOf: - $ref: "#/components/schemas/AllowListStat" readOnly: true reportTypes: type: array items: $ref: "#/components/schemas/ReportType" funkwhaleSupportMessageEnabled: type: boolean readOnly: true instanceSupportMessage: type: string readOnly: true endpoints: $ref: "#/components/schemas/Endpoints" usage: $ref: "#/components/schemas/MetadataUsage" 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 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/Metadata" 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 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 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 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 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 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 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 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" PaginatedInboxItemList: type: object 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: old_password: type: string maxLength: 128 new_password1: type: string maxLength: 128 new_password2: type: string maxLength: 128 required: - new_password1 - new_password2 - old_password PasswordChangeRequest: type: object properties: old_password: type: string minLength: 1 maxLength: 128 new_password1: type: string minLength: 1 maxLength: 128 new_password2: type: string minLength: 1 maxLength: 128 required: - new_password1 - new_password2 - old_password 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 format: uuid 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 required: - value PatchedInboxItemRequest: type: object properties: activity: $ref: "#/components/schemas/ActivityRequest" is_read: type: boolean PatchedLibraryForOwnerRequest: type: object properties: name: type: string minLength: 1 maxLength: 100 description: type: string nullable: true maxLength: 5000 privacy_level: $ref: "#/components/schemas/LibraryPrivacyLevelEnum" 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 description: type: string nullable: true maxLength: 5000 domain: type: string minLength: 1 privacy_level: $ref: "#/components/schemas/LibraryPrivacyLevelEnum" followers_url: type: string format: uri minLength: 1 maxLength: 500 actor: $ref: "#/components/schemas/ManageBaseActorRequest" PatchedManageReportRequest: type: object properties: type: $ref: "#/components/schemas/ReportTypeEnum" target: type: object additionalProperties: {} 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: 50 privacy_level: $ref: "#/components/schemas/PrivacyLevelEnum" PatchedRadioRequest: type: object properties: is_public: type: boolean name: type: string minLength: 1 maxLength: 100 config: type: object additionalProperties: {} description: type: string PatchedUploadForOwnerRequest: type: object properties: filename: type: string minLength: 1 track: allOf: - $ref: "#/components/schemas/TrackRequest" nullable: true library: type: string format: uuid channel: type: string format: uuid import_status: allOf: - $ref: "#/components/schemas/ImportStatusEnum" default: pending import_metadata: type: object additionalProperties: {} 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 format: uuid 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: 50 user: allOf: - $ref: "#/components/schemas/UserBasic" 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 actor: allOf: - $ref: "#/components/schemas/APIActor" readOnly: true required: - actor - album_covers - creation_date - duration - id - is_playable - modification_date - name - tracks_count - user 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: 50 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 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} 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: type: object additionalProperties: {} nullable: true required: - radio_type RadioSessionTrackSerializerCreate: type: object properties: session: type: integer required: - session RadioSessionTrackSerializerCreateRequest: type: object properties: session: type: integer 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: object additionalProperties: {} 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: object additionalProperties: {} 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 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: [] SimpleArtist: 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 attachment_cover: allOf: - $ref: "#/components/schemas/CoverField" nullable: true channel: type: string format: uuid nullable: true required: - id - is_local - name SimpleArtistRequest: 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 attachment_cover: allOf: - $ref: "#/components/schemas/CoverFieldRequest" nullable: true channel: type: string format: uuid nullable: true required: - name 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 tags: type: array items: type: string required: - content_category - creation_date - fid - id - is_local - mbid - modification_date - name 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 tracks_count: type: integer 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: $ref: "#/components/schemas/SimpleArtist" album: allOf: - $ref: "#/components/schemas/TrackAlbum" readOnly: true uploads: type: array items: type: object 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 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 - 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: $ref: "#/components/schemas/SimpleArtist" 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 - 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: $ref: "#/components/schemas/SimpleArtistRequest" 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 - 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 artists: type: string cover_data: type: string required: - album - artists TrackRequest: type: object properties: artist: $ref: "#/components/schemas/SimpleArtistRequest" attributed_to: allOf: - $ref: "#/components/schemas/APIActorRequest" 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 - attributed_to - copyright - cover - creation_date - disc_number - downloads_count - fid - id - is_local - mbid - position - title 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: $ref: "#/components/schemas/LibraryForOwner" channel: $ref: "#/components/schemas/Channel" 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: type: object additionalProperties: {} readOnly: true import_metadata: type: object additionalProperties: {} import_reference: type: string maxLength: 50 metadata: type: object additionalProperties: {} 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 format: uuid channel: type: string format: uuid import_status: allOf: - $ref: "#/components/schemas/ImportStatusEnum" default: pending import_metadata: type: object additionalProperties: {} 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" 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 user: allOf: - $ref: "#/components/schemas/UserBasic" readOnly: true track: allOf: - $ref: "#/components/schemas/Track" readOnly: true creation_date: type: string format: date-time actor: allOf: - $ref: "#/components/schemas/APIActor" readOnly: true required: - actor - id - track - user 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 format: uuid 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: 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: "" token: type: http scheme: bearer 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