openapi: 3.0.3 info: title: Funkwhale API version: 1.2.8 description: "Interactive documentation for [Funkwhale](https://funkwhale.audio)\ \ API.\n\nBackward compatibility between minor versions (1.X to 1.Y) is guaranteed\ \ for all the\nendpoints documented here.\n\nUsage\n-----\n\nClick on an endpoint\ \ name to inspect its properties, parameters and responses.\n\nUse the \"Try it\ \ out\" button to send a real world payload to the endpoint and inspect\nthe corresponding\ \ response.\n\nOAuth Authentication\n--------------------\n\nYou can register\ \ your own OAuth app using the `/api/v1/oauth/apps/` endpoint. Proceed to the\ \ standard OAuth flow afterwards:\n\n- Our authorize URL is at `/authorize`\n\ - Our token acquisition and refresh URL is at `/api/v1/oauth/token`\n- The list\ \ of supported scopes is available by clicking the `Authorize` button in the Swagger\ \ UI documentation\n- Use `urn:ietf:wg:oauth:2.0:oob` as your redirect URI if\ \ you want the user to get a copy-pastable authorization code\n- At the moment,\ \ endpoints that deal with admin or moderator-level content are not accessible\ \ via OAuth, only through the Web UI\n\nYou can use our demo server at `https://demo.funkwhale.audio`\ \ for testing purposes.\n\nApplication token authentication\n--------------------------------\n\ \nIf using OAuth isn't practical and you have an account on the Funkwhale pod,\ \ you can create an application by visiting `/settings`.\n\nOnce the application\ \ is created, you can authenticate using its access token in the `Authorization`\ \ header, like this: `Authorization: Bearer `. \n\nRate limiting\n-------------\n\ \nDepending on server configuration, pods running Funkwhale 0.20 and higher may\ \ rate-limit incoming\nrequests to prevent abuse and improve the stability of\ \ service. Requests that are dropped because of rate-limiting\nreceive a 429 HTTP\ \ response.\n\nThe limits themselves vary depending on:\n\n- The client: anonymous\ \ requests are subject to lower limits than authenticated requests\n- The operation\ \ being performed: Write and delete operations, as performed with DELETE, POST,\ \ PUT and PATCH HTTP methods are subject to lower limits\n\nThose conditions are\ \ used to determine the scope of the request, which in turns determine the limit\ \ that is applied.\nFor instance, authenticated POST requests are bound to the\ \ `authenticated-create` scope, with a default limit of\n1000 requests/hour, but\ \ anonymous POST requests are bound to the `anonymous-create` scope, with a lower\ \ limit of 1000 requests/day.\n\nA full list of scopes with their corresponding\ \ description, and the current usage data for the client performing the request\n\ is available via the `/api/v1/rate-limit` endpoint.\n\nAdditionally, we include\ \ HTTP headers on all API response to ensure API clients can understand:\n\n-\ \ what scope was bound to a given request\n- what is the corresponding limit\n\ - how much similar requests can be sent before being limited\n- and how much time\ \ they should wait if they have been limited\n\n\n\n\n\n\n\n\n\n\n\n\ \n\n\ \n\n\n\n\n\ \n\n\n\n\n\n\n\n\ \n\n\n\n\n\n\n\ \n\n\n\n\n\n\n\n\ \n\n\n\n
Rate limiting\ \ headers
HeaderExample valueDescription\ \ value
X-RateLimit-Limit50The number of allowed requests whithin a given period
X-RateLimit-Duration3600The\ \ time window, in seconds, during which those requests are accounted for.
X-RateLimit-ScopeloginThe\ \ name of the scope as computed for the request
X-RateLimit-Remaining42How many requests can be sent with the same scope before the\ \ limit applies
Retry-After (if X-RateLimit-Remaining\ \ is 0)3543How many seconds to wait before a retry
X-RateLimit-Reset1568126089A\ \ timestamp indicating when X-RateLimit-Remaining will return to\ \ its higher possible value
X-RateLimit-ResetSeconds3599How many seconds to wait before X-RateLimit-Remaining\ \ returns to its higher possible value
\n\n\nResources\n\ ---------\n\nFor more targeted guides regarding API usage, and especially authentication,\ \ please\nrefer to [https://docs.funkwhale.audio/api.html](https://docs.funkwhale.audio/api.html)\n" paths: /api/v1/activity/: get: operationId: get_activity parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - activity security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/albums/: get: operationId: get_albums parameters: - in: query name: artist schema: type: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAlbumList' description: '' post: operationId: create_album tags: - albums requestBody: content: application/json: schema: $ref: '#/components/schemas/AlbumCreate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AlbumCreate' multipart/form-data: schema: $ref: '#/components/schemas/AlbumCreate' application/activity+json: schema: $ref: '#/components/schemas/AlbumCreate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/AlbumCreate' description: '' /api/v1/albums/{id}/: get: operationId: get_album parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - albums security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Album' description: '' delete: operationId: delete_album parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - albums security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/albums/{id}/fetches/: get: operationId: get_album_fetches parameters: - in: query name: artist schema: type: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFetchList' description: '' post: operationId: create_album_fetch parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - albums requestBody: content: application/json: schema: $ref: '#/components/schemas/Album' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Album' multipart/form-data: schema: $ref: '#/components/schemas/Album' application/activity+json: schema: $ref: '#/components/schemas/Album' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Fetch' description: '' /api/v1/albums/{id}/libraries/: get: operationId: get_album_libraries parameters: - in: query name: artist schema: type: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLibraryList' description: '' /api/v1/albums/{id}/mutations/: get: operationId: get_album_mutations parameters: - in: query name: artist schema: type: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAPIMutationList' description: '' post: operationId: create_album_mutation parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - albums requestBody: content: application/json: schema: $ref: '#/components/schemas/Album' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Album' multipart/form-data: schema: $ref: '#/components/schemas/Album' application/activity+json: schema: $ref: '#/components/schemas/Album' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIMutation' description: '' /api/v1/artists/: get: operationId: get_artists parameters: - in: query name: content_category schema: type: string - in: query name: has_albums schema: type: boolean - in: query name: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedArtistWithAlbumsList' description: '' /api/v1/artists/{id}/: get: operationId: get_artist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - artists security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArtistWithAlbums' description: '' /api/v1/artists/{id}/fetches/: get: operationId: get_artist_fetches parameters: - in: query name: content_category schema: type: string - in: query name: has_albums schema: type: boolean - in: query name: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFetchList' description: '' post: operationId: create_artist_fetch parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - artists requestBody: content: application/json: schema: $ref: '#/components/schemas/ArtistWithAlbums' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ArtistWithAlbums' multipart/form-data: schema: $ref: '#/components/schemas/ArtistWithAlbums' application/activity+json: schema: $ref: '#/components/schemas/ArtistWithAlbums' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Fetch' description: '' /api/v1/artists/{id}/libraries/: get: operationId: get_artist_library parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - artists security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArtistWithAlbums' description: '' /api/v1/artists/{id}/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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAPIMutationList' description: '' post: operationId: create_artist_mutation parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - artists requestBody: content: application/json: schema: $ref: '#/components/schemas/ArtistWithAlbums' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ArtistWithAlbums' multipart/form-data: schema: $ref: '#/components/schemas/ArtistWithAlbums' application/activity+json: schema: $ref: '#/components/schemas/ArtistWithAlbums' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIMutation' description: '' /api/v1/attachments/: post: operationId: create_attachment tags: - attachments requestBody: content: application/json: schema: $ref: '#/components/schemas/Attachment' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Attachment' multipart/form-data: schema: $ref: '#/components/schemas/Attachment' application/activity+json: schema: $ref: '#/components/schemas/Attachment' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Attachment' description: '' /api/v1/attachments/{uuid}/: get: operationId: get_attachment parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - attachments security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Attachment' description: '' delete: operationId: delete_attachment parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - attachments security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/attachments/{uuid}/proxy/: get: operationId: get_attachment_proxy parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - attachments responses: '200': content: application/json: schema: $ref: '#/components/schemas/Attachment' description: '' /api/v1/auth/password/change/: post: operationId: change_password description: |- Calls Django Auth SetPasswordForm save method. Accepts the following POST parameters: new_password1, new_password2 Returns the success/fail message. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordChange' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PasswordChange' multipart/form-data: schema: $ref: '#/components/schemas/PasswordChange' application/activity+json: schema: $ref: '#/components/schemas/PasswordChange' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PasswordChange' description: '' /api/v1/auth/password/reset/: post: operationId: reset_password description: |- Calls Django Auth PasswordResetForm save method. Accepts the following POST parameters: email Returns the success/fail message. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordReset' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PasswordReset' multipart/form-data: schema: $ref: '#/components/schemas/PasswordReset' application/activity+json: schema: $ref: '#/components/schemas/PasswordReset' required: true security: - oauth2: [] - ApplicationToken: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PasswordReset' description: '' /api/v1/auth/password/reset/confirm/: post: operationId: confirm_password_reset description: |- Password reset e-mail link is confirmed, therefore this resets the user's password. Accepts the following POST parameters: token, uid, new_password1, new_password2 Returns the success/fail message. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordResetConfirm' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PasswordResetConfirm' multipart/form-data: schema: $ref: '#/components/schemas/PasswordResetConfirm' application/activity+json: schema: $ref: '#/components/schemas/PasswordResetConfirm' required: true security: - oauth2: [] - ApplicationToken: [] - {} 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/Register' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Register' multipart/form-data: schema: $ref: '#/components/schemas/Register' application/activity+json: schema: $ref: '#/components/schemas/Register' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Register' description: '' /api/v1/auth/registration/change-password/: post: operationId: change_password_2 description: |- Calls Django Auth SetPasswordForm save method. Accepts the following POST parameters: new_password1, new_password2 Returns the success/fail message. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordChange' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PasswordChange' multipart/form-data: schema: $ref: '#/components/schemas/PasswordChange' application/activity+json: schema: $ref: '#/components/schemas/PasswordChange' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PasswordChange' description: '' /api/v1/auth/registration/verify-email/: post: operationId: verify_email tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyEmail' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/VerifyEmail' multipart/form-data: schema: $ref: '#/components/schemas/VerifyEmail' application/activity+json: schema: $ref: '#/components/schemas/VerifyEmail' required: true security: - oauth2: [] - ApplicationToken: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/VerifyEmail' description: '' /api/v1/auth/user/: get: operationId: get_auth_user description: |- Reads and updates UserModel fields Accepts GET, PUT, PATCH methods. Default accepted fields: username, first_name, last_name Default display fields: pk, username, email, first_name, last_name Read-only fields: pk, email Returns UserModel fields. tags: - auth security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDetails' description: '' put: operationId: update_auth_user description: |- Reads and updates UserModel fields Accepts GET, PUT, PATCH methods. Default accepted fields: username, first_name, last_name Default display fields: pk, username, email, first_name, last_name Read-only fields: pk, email Returns UserModel fields. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/UserDetails' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserDetails' multipart/form-data: schema: $ref: '#/components/schemas/UserDetails' application/activity+json: schema: $ref: '#/components/schemas/UserDetails' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDetails' description: '' patch: operationId: partial_update_auth_user description: |- Reads and updates UserModel fields Accepts GET, PUT, PATCH methods. Default accepted fields: username, first_name, last_name Default display fields: pk, username, email, first_name, last_name Read-only fields: pk, email Returns UserModel fields. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUserDetails' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserDetails' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserDetails' application/activity+json: schema: $ref: '#/components/schemas/PatchedUserDetails' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDetails' description: '' /api/v1/channels/: get: operationId: get_channels parameters: - in: query name: external schema: type: boolean - in: query name: hidden schema: type: boolean - in: query name: ordering schema: type: array items: type: string enum: - -creation_date - -modification_date - -random - creation_date - modification_date - random description: Ordering explode: false style: form - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string - in: query name: scope schema: type: string - in: query name: subscribed schema: type: boolean - in: query name: tag schema: type: array items: type: string explode: true style: form tags: - channels security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedChannelList' description: '' post: operationId: create_channel tags: - channels requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ChannelCreate' multipart/form-data: schema: $ref: '#/components/schemas/ChannelCreate' application/activity+json: schema: $ref: '#/components/schemas/ChannelCreate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' description: '' /api/v1/channels/{composite}/: get: operationId: get_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Channel' description: '' put: operationId: update_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ChannelUpdate' multipart/form-data: schema: $ref: '#/components/schemas/ChannelUpdate' application/activity+json: schema: $ref: '#/components/schemas/ChannelUpdate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ChannelUpdate' description: '' patch: operationId: partial_update_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedChannelUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedChannelUpdate' multipart/form-data: schema: $ref: '#/components/schemas/PatchedChannelUpdate' application/activity+json: schema: $ref: '#/components/schemas/PatchedChannelUpdate' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ChannelUpdate' description: '' delete: operationId: delete_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/channels/{composite}/rss/: get: operationId: get_channel_rss parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Channel' description: '' /api/v1/channels/{composite}/subscribe/: post: operationId: subscribe_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ChannelCreate' multipart/form-data: schema: $ref: '#/components/schemas/ChannelCreate' application/activity+json: schema: $ref: '#/components/schemas/ChannelCreate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' 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/ChannelCreate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ChannelCreate' multipart/form-data: schema: $ref: '#/components/schemas/ChannelCreate' application/activity+json: schema: $ref: '#/components/schemas/ChannelCreate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' description: '' delete: operationId: unsubscribe_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - channels security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/channels/metadata-choices/: get: operationId: get_channel_metadata_choices tags: - channels security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Channel' description: '' /api/v1/channels/rss-subscribe/: post: operationId: subscribe_channel_rss tags: - channels requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ChannelCreate' multipart/form-data: schema: $ref: '#/components/schemas/ChannelCreate' application/activity+json: schema: $ref: '#/components/schemas/ChannelCreate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ChannelCreate' description: '' /api/v1/favorites/tracks/: get: operationId: get_favorite_tracks parameters: - in: query name: hidden schema: type: boolean - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string - in: query name: scope schema: type: string tags: - favorites security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserTrackFavoriteList' description: '' post: operationId: favorite_track tags: - favorites requestBody: content: application/json: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' application/activity+json: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' description: '' /api/v1/favorites/tracks/{id}/: delete: operationId: delete_favorite_track parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track favorite. required: true tags: - favorites security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/favorites/tracks/all/: get: operationId: get_all_favorite_tracks description: |- Return all the favorites of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display favorites status in the UI tags: - favorites security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserTrackFavorite' description: '' /api/v1/favorites/tracks/remove/: post: operationId: unfavorite_track_2 tags: - favorites requestBody: content: application/json: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' application/activity+json: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserTrackFavoriteWrite' description: '' delete: operationId: unfavorite_track tags: - favorites security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/federation/actors/{full_username}/: get: operationId: get_federation_actor parameters: - in: path name: full_username schema: type: string pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/FullActor' description: '' /api/v1/federation/actors/{full_username}/libraries/: get: operationId: get_federation_actor_library parameters: - in: path name: full_username schema: type: string pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/FullActor' description: '' /api/v1/federation/domains/: get: operationId: get_federation_domains parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedDomainList' description: '' /api/v1/federation/domains/{name}/: get: operationId: get_federation_domain parameters: - in: path name: name schema: type: string description: A unique value identifying this domain. required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Domain' description: '' /api/v1/federation/fetches/: post: operationId: create_federation_fetch tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/Fetch' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Fetch' multipart/form-data: schema: $ref: '#/components/schemas/Fetch' application/activity+json: schema: $ref: '#/components/schemas/Fetch' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Fetch' description: '' /api/v1/federation/fetches/{id}/: get: operationId: get_federation_fetch parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this fetch. required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Fetch' description: '' /api/v1/federation/follows/library/: get: operationId: get_federation_library_follows parameters: - in: query name: approved schema: type: boolean - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLibraryFollowList' description: '' post: operationId: create_federation_library_follow tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LibraryFollow' multipart/form-data: schema: $ref: '#/components/schemas/LibraryFollow' application/activity+json: schema: $ref: '#/components/schemas/LibraryFollow' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' description: '' /api/v1/federation/follows/library/{uuid}/: get: operationId: get_federation_library_follow parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' description: '' delete: operationId: delete_federation_library_follow parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/federation/follows/library/{uuid}/accept/: post: operationId: accept_federation_library_follow parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LibraryFollow' multipart/form-data: schema: $ref: '#/components/schemas/LibraryFollow' application/activity+json: schema: $ref: '#/components/schemas/LibraryFollow' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' description: '' /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/LibraryFollow' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LibraryFollow' multipart/form-data: schema: $ref: '#/components/schemas/LibraryFollow' application/activity+json: schema: $ref: '#/components/schemas/LibraryFollow' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' description: '' /api/v1/federation/follows/library/all/: get: operationId: get_all_federation_library_follows description: |- Return all the subscriptions of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display subscription status in the UI tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryFollow' description: '' /api/v1/federation/inbox/: get: operationId: get_federation_inboxes parameters: - in: query name: activity__actor schema: type: integer - in: query name: activity__type schema: type: string - in: query name: before schema: type: number - in: query name: is_read schema: type: boolean - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedInboxItemList' description: '' /api/v1/federation/inbox/{id}/: get: operationId: get_federation_inbox parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inbox item. required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InboxItem' description: '' put: operationId: update_federation_inbox parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inbox item. required: true tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/InboxItem' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/InboxItem' multipart/form-data: schema: $ref: '#/components/schemas/InboxItem' application/activity+json: schema: $ref: '#/components/schemas/InboxItem' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InboxItem' description: '' patch: operationId: partial_update_federation_inbox parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inbox item. required: true tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedInboxItem' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedInboxItem' multipart/form-data: schema: $ref: '#/components/schemas/PatchedInboxItem' application/activity+json: schema: $ref: '#/components/schemas/PatchedInboxItem' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InboxItem' description: '' /api/v1/federation/inbox/action/: post: operationId: create_federation_inbox_action description: |- str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'. tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/InboxItem' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/InboxItem' multipart/form-data: schema: $ref: '#/components/schemas/InboxItem' application/activity+json: schema: $ref: '#/components/schemas/InboxItem' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InboxItem' description: '' /api/v1/federation/libraries/{uuid}/: get: operationId: get_federation_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - federation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Library' description: '' /api/v1/federation/libraries/{uuid}/scan/: post: operationId: create_federation_library_scan parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/Library' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Library' multipart/form-data: schema: $ref: '#/components/schemas/Library' application/activity+json: schema: $ref: '#/components/schemas/Library' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Library' description: '' /api/v1/federation/libraries/fetch/: post: operationId: create_federation_library_fetch tags: - federation requestBody: content: application/json: schema: $ref: '#/components/schemas/Library' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Library' multipart/form-data: schema: $ref: '#/components/schemas/Library' application/activity+json: schema: $ref: '#/components/schemas/Library' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Library' description: '' /api/v1/history/listenings/: get: operationId: get_history_listenings parameters: - in: query name: domain schema: type: string - in: query name: hidden schema: type: boolean - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: scope schema: type: string - in: query name: username schema: type: string tags: - history security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedListeningList' description: '' post: operationId: create_history_listening tags: - history requestBody: content: application/json: schema: $ref: '#/components/schemas/ListeningWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ListeningWrite' multipart/form-data: schema: $ref: '#/components/schemas/ListeningWrite' application/activity+json: schema: $ref: '#/components/schemas/ListeningWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ListeningWrite' description: '' /api/v1/history/listenings/{id}/: get: operationId: get_history_listening parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this listening. required: true tags: - history security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Listening' description: '' /api/v1/instance/admin/settings/: get: operationId: get_instance_admin_settings description: |- - list preferences - detail given preference - batch update preferences - update a single preference parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - instance security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/GlobalPreference' description: '' /api/v1/instance/admin/settings/{id}/: get: operationId: get_instance_admin_setting description: |- - list preferences - detail given preference - batch update preferences - update a single preference parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Global preference. required: true tags: - instance security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/GlobalPreference' description: '' put: operationId: update_instance_admin_setting description: |- - list preferences - detail given preference - batch update preferences - update a single preference parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Global preference. required: true tags: - instance requestBody: content: application/json: schema: $ref: '#/components/schemas/GlobalPreference' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/GlobalPreference' multipart/form-data: schema: $ref: '#/components/schemas/GlobalPreference' application/activity+json: schema: $ref: '#/components/schemas/GlobalPreference' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/GlobalPreference' description: '' patch: operationId: partial_update_instance_admin_setting description: |- - list preferences - detail given preference - batch update preferences - update a single preference parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Global preference. required: true tags: - instance requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedGlobalPreference' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedGlobalPreference' multipart/form-data: schema: $ref: '#/components/schemas/PatchedGlobalPreference' application/activity+json: schema: $ref: '#/components/schemas/PatchedGlobalPreference' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/GlobalPreference' description: '' /api/v1/instance/admin/settings/bulk/: post: operationId: create_instance_admin_setting_bulk description: |- Update multiple preferences at once this is a long method because we ensure everything is valid before actually persisting the changes tags: - instance requestBody: content: application/json: schema: $ref: '#/components/schemas/GlobalPreference' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/GlobalPreference' multipart/form-data: schema: $ref: '#/components/schemas/GlobalPreference' application/activity+json: schema: $ref: '#/components/schemas/GlobalPreference' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/GlobalPreference' description: '' /api/v1/instance/nodeinfo/2.0/: get: operationId: get_instance_nodeinfo_2.0 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': description: No response body /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: [] - ApplicationToken: [] 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/LibraryForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LibraryForOwner' multipart/form-data: schema: $ref: '#/components/schemas/LibraryForOwner' application/activity+json: schema: $ref: '#/components/schemas/LibraryForOwner' required: true security: - oauth2: [] - ApplicationToken: [] 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: [] - ApplicationToken: [] 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/LibraryForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LibraryForOwner' multipart/form-data: schema: $ref: '#/components/schemas/LibraryForOwner' application/activity+json: schema: $ref: '#/components/schemas/LibraryForOwner' required: true security: - oauth2: [] - ApplicationToken: [] 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/PatchedLibraryForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedLibraryForOwner' multipart/form-data: schema: $ref: '#/components/schemas/PatchedLibraryForOwner' application/activity+json: schema: $ref: '#/components/schemas/PatchedLibraryForOwner' security: - oauth2: [] - ApplicationToken: [] 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: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/libraries/{uuid}/follows/: get: operationId: get_library_follow parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - libraries security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryForOwner' description: '' /api/v1/libraries/fs-import/: get: operationId: get_library_fs_import tags: - libraries security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryForOwner' description: '' post: operationId: create_library_fs_import tags: - libraries requestBody: content: application/json: schema: $ref: '#/components/schemas/LibraryForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LibraryForOwner' multipart/form-data: schema: $ref: '#/components/schemas/LibraryForOwner' application/activity+json: schema: $ref: '#/components/schemas/LibraryForOwner' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LibraryForOwner' description: '' delete: operationId: delete_library_fs_import tags: - libraries security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/licenses/: get: operationId: get_licenses parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - licenses security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLicenseList' description: '' /api/v1/licenses/{code}/: get: operationId: get_license parameters: - in: path name: code schema: type: string description: A unique value identifying this license. required: true tags: - licenses security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/License' description: '' /api/v1/listen/{uuid}/: get: operationId: get_listen parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - listen security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Track' 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageActorList' description: '' /api/v1/manage/accounts/{id}/: get: operationId: admin_get_account parameters: - in: path name: id schema: type: string pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageActor' description: '' /api/v1/manage/accounts/{id}/stats/: get: operationId: admin_get_account_stats parameters: - in: path name: id schema: type: string pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$ required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageActor' description: '' /api/v1/manage/accounts/action/: post: operationId: admin_create_account_action description: |- str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'. tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageActor' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageActor' multipart/form-data: schema: $ref: '#/components/schemas/ManageActor' application/activity+json: schema: $ref: '#/components/schemas/ManageActor' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageActor' description: '' /api/v1/manage/channels/: get: operationId: admin_get_channels parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageChannelList' description: '' /api/v1/manage/channels/{composite}/: get: operationId: admin_get_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageChannel' description: '' delete: operationId: admin_delete_channel parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/channels/{composite}/stats/: get: operationId: admin_get_channel_stats parameters: - in: path name: composite schema: type: string pattern: ^[^/]+$ required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageChannel' description: '' /api/v1/manage/federation/domains/: get: operationId: admin_get_federation_domains parameters: - in: query name: allowed schema: type: boolean - in: query name: name schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageDomainList' description: '' post: operationId: admin_create_federation_domain tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageDomain' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageDomain' multipart/form-data: schema: $ref: '#/components/schemas/ManageDomain' application/activity+json: schema: $ref: '#/components/schemas/ManageDomain' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ManageDomain' description: '' /api/v1/manage/federation/domains/{name}/: get: operationId: admin_get_federation_domain parameters: - in: path name: name schema: type: string description: A unique value identifying this domain. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageDomain' description: '' put: operationId: admin_update_federation_domain parameters: - in: path name: name schema: type: string description: A unique value identifying this domain. required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageDomainUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageDomainUpdate' multipart/form-data: schema: $ref: '#/components/schemas/ManageDomainUpdate' application/activity+json: schema: $ref: '#/components/schemas/ManageDomainUpdate' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageDomainUpdate' description: '' patch: operationId: admin_partial_update_federation_domain parameters: - in: path name: name schema: type: string description: A unique value identifying this domain. required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedManageDomainUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageDomainUpdate' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageDomainUpdate' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageDomainUpdate' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageDomainUpdate' description: '' /api/v1/manage/federation/domains/{name}/nodeinfo/: get: operationId: admin_get_federation_domain_nodeinfo parameters: - in: path name: name schema: type: string description: A unique value identifying this domain. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageDomain' description: '' /api/v1/manage/federation/domains/{name}/stats/: get: operationId: admin_get_federation_domain_stats parameters: - in: path name: name schema: type: string description: A unique value identifying this domain. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageDomain' description: '' /api/v1/manage/federation/domains/action/: post: operationId: admin_create_federation_domain_action description: |- str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'. tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageDomain' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageDomain' multipart/form-data: schema: $ref: '#/components/schemas/ManageDomain' application/activity+json: schema: $ref: '#/components/schemas/ManageDomain' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageDomain' description: '' /api/v1/manage/library/albums/: get: operationId: admin_get_library_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageAlbumList' description: '' /api/v1/manage/library/albums/{id}/: get: operationId: admin_get_library_album parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageAlbum' description: '' delete: operationId: admin_delete_library_album parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/library/albums/{id}/stats/: get: operationId: admin_get_library_album_stats parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this album. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageAlbum' description: '' /api/v1/manage/library/albums/action/: post: operationId: admin_create_library_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/ManageAlbum' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageAlbum' multipart/form-data: schema: $ref: '#/components/schemas/ManageAlbum' application/activity+json: schema: $ref: '#/components/schemas/ManageAlbum' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageAlbum' description: '' /api/v1/manage/library/artists/: get: operationId: admin_get_library_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageArtistList' description: '' /api/v1/manage/library/artists/{id}/: get: operationId: admin_get_library_artist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageArtist' description: '' delete: operationId: admin_delete_library_artist parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/library/artists/{id}/stats/: get: operationId: admin_get_library_artist_stats parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this artist. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageArtist' description: '' /api/v1/manage/library/artists/action/: post: operationId: admin_create_library_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/ManageArtist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageArtist' multipart/form-data: schema: $ref: '#/components/schemas/ManageArtist' application/activity+json: schema: $ref: '#/components/schemas/ManageArtist' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageArtist' description: '' /api/v1/manage/library/libraries/: get: operationId: admin_get_library_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageLibraryList' description: '' /api/v1/manage/library/libraries/{uuid}/: get: operationId: admin_get_library_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageLibrary' description: '' put: operationId: admin_update_library_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageLibrary' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageLibrary' multipart/form-data: schema: $ref: '#/components/schemas/ManageLibrary' application/activity+json: schema: $ref: '#/components/schemas/ManageLibrary' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageLibrary' description: '' patch: operationId: admin_partial_update_library_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedManageLibrary' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageLibrary' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageLibrary' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageLibrary' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageLibrary' description: '' delete: operationId: admin_delete_library_library parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/library/libraries/{uuid}/stats/: get: operationId: admin_get_library_stats parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageLibrary' description: '' /api/v1/manage/library/libraries/action/: post: operationId: admin_create_library_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/ManageLibrary' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageLibrary' multipart/form-data: schema: $ref: '#/components/schemas/ManageLibrary' application/activity+json: schema: $ref: '#/components/schemas/ManageLibrary' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageLibrary' description: '' /api/v1/manage/library/tracks/: get: operationId: admin_get_library_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageTrackList' description: '' /api/v1/manage/library/tracks/{id}/: get: operationId: admin_get_library_track parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageTrack' description: '' delete: operationId: admin_delete_library_track parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/library/tracks/{id}/stats/: get: operationId: admin_get_track_stats parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageTrack' description: '' /api/v1/manage/library/tracks/action/: post: operationId: admin_create_library_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/ManageTrack' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageTrack' multipart/form-data: schema: $ref: '#/components/schemas/ManageTrack' application/activity+json: schema: $ref: '#/components/schemas/ManageTrack' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageTrack' description: '' /api/v1/manage/library/uploads/: get: operationId: admin_get_library_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageUploadList' description: '' /api/v1/manage/library/uploads/{uuid}/: get: operationId: admin_get_library_upload parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUpload' description: '' delete: operationId: admin_delete_library_upload parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/library/uploads/action/: post: operationId: admin_create_library_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/ManageUpload' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageUpload' multipart/form-data: schema: $ref: '#/components/schemas/ManageUpload' application/activity+json: schema: $ref: '#/components/schemas/ManageUpload' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUpload' description: '' /api/v1/manage/moderation/instance-policies/: get: operationId: admin_get_moderation_instance_policies parameters: - in: query name: block_all schema: type: boolean - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string - in: query name: reject_media schema: type: boolean - in: query name: silence_activity schema: type: boolean - in: query name: silence_notifications schema: type: boolean - in: query name: target_account_domain schema: type: string - in: query name: target_account_username schema: type: string - in: query name: target_domain schema: type: string tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageInstancePolicyList' description: '' post: operationId: admin_create_moderation_instance_policy tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageInstancePolicy' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageInstancePolicy' multipart/form-data: schema: $ref: '#/components/schemas/ManageInstancePolicy' application/activity+json: schema: $ref: '#/components/schemas/ManageInstancePolicy' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ManageInstancePolicy' description: '' /api/v1/manage/moderation/instance-policies/{id}/: get: operationId: admin_get_moderation_instance_policy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this instance policy. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInstancePolicy' description: '' put: operationId: admin_update_moderation_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/ManageInstancePolicy' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageInstancePolicy' multipart/form-data: schema: $ref: '#/components/schemas/ManageInstancePolicy' application/activity+json: schema: $ref: '#/components/schemas/ManageInstancePolicy' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInstancePolicy' description: '' patch: operationId: admin_partial_update_moderation_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/PatchedManageInstancePolicy' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageInstancePolicy' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageInstancePolicy' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageInstancePolicy' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInstancePolicy' description: '' delete: operationId: admin_delete_moderation_instance_policy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this instance policy. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/moderation/notes/: get: operationId: admin_get_moderation_notes parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageNoteList' description: '' post: operationId: admin_create_moderation_note tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageNote' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageNote' multipart/form-data: schema: $ref: '#/components/schemas/ManageNote' application/activity+json: schema: $ref: '#/components/schemas/ManageNote' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ManageNote' description: '' /api/v1/manage/moderation/notes/{uuid}/: get: operationId: admin_get_moderation_note parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageNote' description: '' delete: operationId: admin_delete_moderation_note parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/moderation/reports/: get: operationId: admin_get_moderation_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageReportList' description: '' /api/v1/manage/moderation/reports/{uuid}/: get: operationId: admin_get_moderation_report parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageReport' description: '' put: operationId: admin_update_moderation_report parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageReport' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageReport' multipart/form-data: schema: $ref: '#/components/schemas/ManageReport' application/activity+json: schema: $ref: '#/components/schemas/ManageReport' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageReport' description: '' patch: operationId: admin_partial_update_moderation_report parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedManageReport' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageReport' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageReport' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageReport' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageReport' description: '' /api/v1/manage/moderation/requests/: get: operationId: admin_get_moderation_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageUserRequestList' description: '' /api/v1/manage/moderation/requests/{uuid}/: get: operationId: admin_get_moderation_request parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUserRequest' description: '' put: operationId: admin_update_moderation_request parameters: - in: path name: uuid schema: type: string format: uuid 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' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUserRequest' description: '' patch: operationId: admin_partial_update_moderation_request parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedManageUserRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageUserRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageUserRequest' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageUserRequest' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUserRequest' description: '' /api/v1/manage/tags/: get: operationId: admin_get_tags parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageTagList' description: '' post: operationId: admin_create_tag tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageTag' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageTag' multipart/form-data: schema: $ref: '#/components/schemas/ManageTag' application/activity+json: schema: $ref: '#/components/schemas/ManageTag' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ManageTag' description: '' /api/v1/manage/tags/{name}/: get: operationId: admin_get_tag parameters: - in: path name: name schema: type: string required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageTag' description: '' delete: operationId: admin_delete_tag parameters: - in: path name: name schema: type: string required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/manage/tags/action/: post: operationId: admin_create_tag_action description: |- str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'. tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageTag' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageTag' multipart/form-data: schema: $ref: '#/components/schemas/ManageTag' application/activity+json: schema: $ref: '#/components/schemas/ManageTag' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageTag' description: '' /api/v1/manage/users/invitations/: get: operationId: admin_get_user_invitations parameters: - in: query name: is_open schema: type: boolean - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageInvitationList' description: '' post: operationId: admin_create_user_invitation tags: - manage requestBody: content: application/json: schema: $ref: '#/components/schemas/ManageInvitation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageInvitation' multipart/form-data: schema: $ref: '#/components/schemas/ManageInvitation' application/activity+json: schema: $ref: '#/components/schemas/ManageInvitation' security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ManageInvitation' description: '' /api/v1/manage/users/invitations/{id}/: get: operationId: admin_get_user_invitation parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this invitation. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInvitation' description: '' put: operationId: admin_update_user_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/ManageInvitation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageInvitation' multipart/form-data: schema: $ref: '#/components/schemas/ManageInvitation' application/activity+json: schema: $ref: '#/components/schemas/ManageInvitation' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInvitation' description: '' patch: operationId: admin_partial_update_user_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/PatchedManageInvitation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageInvitation' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageInvitation' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageInvitation' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInvitation' description: '' /api/v1/manage/users/invitations/action/: post: operationId: admin_create_user_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/ManageInvitation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageInvitation' multipart/form-data: schema: $ref: '#/components/schemas/ManageInvitation' application/activity+json: schema: $ref: '#/components/schemas/ManageInvitation' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageInvitation' description: '' /api/v1/manage/users/users/: get: operationId: admin_get_user_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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedManageUserList' description: '' /api/v1/manage/users/users/{id}/: get: operationId: admin_get_user_user parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - manage security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUser' description: '' put: operationId: admin_update_user_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/ManageUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ManageUser' multipart/form-data: schema: $ref: '#/components/schemas/ManageUser' application/activity+json: schema: $ref: '#/components/schemas/ManageUser' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUser' description: '' patch: operationId: admin_partial_update_user_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/PatchedManageUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedManageUser' multipart/form-data: schema: $ref: '#/components/schemas/PatchedManageUser' application/activity+json: schema: $ref: '#/components/schemas/PatchedManageUser' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ManageUser' description: '' /api/v1/moderation/content-filters/: get: operationId: get_moderation_content_filters parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - moderation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserFilterList' description: '' post: operationId: create_moderation_content_filter tags: - moderation requestBody: content: application/json: schema: $ref: '#/components/schemas/UserFilter' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserFilter' multipart/form-data: schema: $ref: '#/components/schemas/UserFilter' application/activity+json: schema: $ref: '#/components/schemas/UserFilter' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserFilter' description: '' /api/v1/moderation/content-filters/{uuid}/: get: operationId: get_moderation_content_filter parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - moderation security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserFilter' description: '' delete: operationId: delete_moderation_content_filter parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - moderation security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/moderation/reports/: post: operationId: create_moderation_report tags: - moderation requestBody: content: application/json: schema: $ref: '#/components/schemas/Report' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Report' multipart/form-data: schema: $ref: '#/components/schemas/Report' application/activity+json: schema: $ref: '#/components/schemas/Report' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Report' description: '' /api/v1/mutations/: get: operationId: get_mutations parameters: - in: query name: is_applied schema: type: boolean - in: query name: is_approved schema: type: boolean nullable: true enum: - '0' - '1' - false - 'False' - None - 'Null' - true - 'True' - 'false' - 'no' - none - 'null' - 'true' - 'yes' - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string - in: query name: type schema: type: string tags: - mutations security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAPIMutationList' description: '' /api/v1/mutations/{uuid}/: get: operationId: get_mutation parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - mutations security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIMutation' description: '' delete: operationId: delete_mutation parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - mutations security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/mutations/{uuid}/approve/: post: operationId: create_mutation_approve parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - mutations requestBody: content: application/json: schema: $ref: '#/components/schemas/APIMutation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/APIMutation' multipart/form-data: schema: $ref: '#/components/schemas/APIMutation' application/activity+json: schema: $ref: '#/components/schemas/APIMutation' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIMutation' description: '' /api/v1/mutations/{uuid}/reject/: post: operationId: create_mutation_reject parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - mutations requestBody: content: application/json: schema: $ref: '#/components/schemas/APIMutation' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/APIMutation' multipart/form-data: schema: $ref: '#/components/schemas/APIMutation' application/activity+json: schema: $ref: '#/components/schemas/APIMutation' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIMutation' description: '' /api/v1/oauth/apps/: get: operationId: get_oauth_apps parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedApplicationList' description: '' post: operationId: create_oauth_app tags: - oauth requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateApplication' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateApplication' multipart/form-data: schema: $ref: '#/components/schemas/CreateApplication' application/activity+json: schema: $ref: '#/components/schemas/CreateApplication' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateApplication' description: '' /api/v1/oauth/apps/{client_id}/: get: operationId: get_oauth_app parameters: - in: path name: client_id schema: type: string required: true tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Application' description: '' put: operationId: update_oauth_app parameters: - in: path name: client_id schema: type: string required: true tags: - oauth requestBody: content: application/json: schema: $ref: '#/components/schemas/Application' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Application' multipart/form-data: schema: $ref: '#/components/schemas/Application' application/activity+json: schema: $ref: '#/components/schemas/Application' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Application' description: '' patch: operationId: partial_update_oauth_app parameters: - in: path name: client_id schema: type: string required: true tags: - oauth requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedApplication' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedApplication' multipart/form-data: schema: $ref: '#/components/schemas/PatchedApplication' application/activity+json: schema: $ref: '#/components/schemas/PatchedApplication' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Application' description: '' delete: operationId: delete_oauth_app parameters: - in: path name: client_id schema: type: string required: true tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/oauth/apps/{client_id}/refresh-token/: post: operationId: create_oauth_app_refresh_token parameters: - in: path name: client_id schema: type: string required: true tags: - oauth requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateApplication' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateApplication' multipart/form-data: schema: $ref: '#/components/schemas/CreateApplication' application/activity+json: schema: $ref: '#/components/schemas/CreateApplication' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CreateApplication' description: '' /api/v1/oauth/authorize/: get: operationId: get_oauth_authorize description: 'Handle GET requests: instantiate a blank version of the form.' tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body post: operationId: create_oauth_authorize description: |- Handle POST requests: instantiate a form instance with the passed POST variables and then check if it's valid. tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body put: operationId: update_oauth_authorize tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/oauth/grants/: get: operationId: get_oauth_grants description: |- This is a viewset that list applications that have access to the request user account, to allow revoking tokens easily. parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Application' description: '' /api/v1/oauth/grants/{client_id}/: get: operationId: get_oauth_grant description: |- This is a viewset that list applications that have access to the request user account, to allow revoking tokens easily. parameters: - in: path name: client_id schema: type: string required: true tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Application' description: '' delete: operationId: delete_oauth_grant description: |- This is a viewset that list applications that have access to the request user account, to allow revoking tokens easily. parameters: - in: path name: client_id schema: type: string required: true tags: - oauth security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/oembed/: get: operationId: get_oembed tags: - oembed security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /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: [] - ApplicationToken: [] 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/Playlist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Playlist' multipart/form-data: schema: $ref: '#/components/schemas/Playlist' application/activity+json: schema: $ref: '#/components/schemas/Playlist' required: true security: - oauth2: [] - ApplicationToken: [] 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: [] - ApplicationToken: [] 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/Playlist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Playlist' multipart/form-data: schema: $ref: '#/components/schemas/Playlist' application/activity+json: schema: $ref: '#/components/schemas/Playlist' required: true security: - oauth2: [] - ApplicationToken: [] 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/PatchedPlaylist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedPlaylist' multipart/form-data: schema: $ref: '#/components/schemas/PatchedPlaylist' application/activity+json: schema: $ref: '#/components/schemas/PatchedPlaylist' security: - oauth2: [] - ApplicationToken: [] 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: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/playlists/{id}/add/: post: operationId: create_playlist_add 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/Playlist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Playlist' multipart/form-data: schema: $ref: '#/components/schemas/Playlist' application/activity+json: schema: $ref: '#/components/schemas/Playlist' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Playlist' description: '' /api/v1/playlists/{id}/clear/: delete: operationId: delete_playlist_clear parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/playlists/{id}/move/: post: operationId: create_playlist_move 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/Playlist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Playlist' multipart/form-data: schema: $ref: '#/components/schemas/Playlist' application/activity+json: schema: $ref: '#/components/schemas/Playlist' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Playlist' description: '' /api/v1/playlists/{id}/remove/: post: operationId: create_playlist_remove 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/Playlist' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Playlist' multipart/form-data: schema: $ref: '#/components/schemas/Playlist' application/activity+json: schema: $ref: '#/components/schemas/Playlist' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Playlist' description: '' delete: operationId: delete_playlist_remove parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/playlists/{id}/tracks/: get: operationId: get_playlist_track parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this playlist. required: true tags: - playlists security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Playlist' description: '' /api/v1/plugins/: get: operationId: get_plugins parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - plugins security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body post: operationId: create_plugin tags: - plugins security: - oauth2: [] - ApplicationToken: [] responses: '201': description: No response body /api/v1/plugins/{id}/: get: operationId: get_plugin parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this plugin configuration. required: true tags: - plugins security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/plugins/{id}/disable/: post: operationId: create_plugin_disable parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this plugin configuration. required: true tags: - plugins security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/plugins/{id}/enable/: post: operationId: create_plugin_enable parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this plugin configuration. required: true tags: - plugins security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/plugins/{id}/scan/: post: operationId: create_plugin_scan parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this plugin configuration. required: true tags: - plugins security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/radios/radios/: get: operationId: get_radio_radios parameters: - in: query name: name schema: type: string - in: query name: name__icontains schema: type: string - in: query name: name__iexact schema: type: string - in: query name: name__startswith schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: q schema: type: string - in: query name: scope schema: type: string tags: - radios security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedRadioList' description: '' post: operationId: create_radio_radio tags: - radios requestBody: content: application/json: schema: $ref: '#/components/schemas/Radio' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Radio' multipart/form-data: schema: $ref: '#/components/schemas/Radio' application/activity+json: schema: $ref: '#/components/schemas/Radio' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' /api/v1/radios/radios/{id}/: get: operationId: get_radio_radio parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this radio. required: true tags: - radios security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' put: operationId: update_radio_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/Radio' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Radio' multipart/form-data: schema: $ref: '#/components/schemas/Radio' application/activity+json: schema: $ref: '#/components/schemas/Radio' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' patch: operationId: partial_update_radio_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/PatchedRadio' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedRadio' multipart/form-data: schema: $ref: '#/components/schemas/PatchedRadio' application/activity+json: schema: $ref: '#/components/schemas/PatchedRadio' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' delete: operationId: delete_radio_radio parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this radio. required: true tags: - radios security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/radios/radios/{id}/tracks/: get: operationId: get_radio_radio_track parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this radio. required: true tags: - radios security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' /api/v1/radios/radios/filters/: get: operationId: get_radio_radio_filter tags: - radios security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' /api/v1/radios/radios/validate/: post: operationId: create_radio_radio_validate tags: - radios requestBody: content: application/json: schema: $ref: '#/components/schemas/Radio' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Radio' multipart/form-data: schema: $ref: '#/components/schemas/Radio' application/activity+json: schema: $ref: '#/components/schemas/Radio' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Radio' description: '' /api/v1/radios/sessions/: post: operationId: create_radio_session tags: - radios requestBody: content: application/json: schema: $ref: '#/components/schemas/RadioSession' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RadioSession' multipart/form-data: schema: $ref: '#/components/schemas/RadioSession' application/activity+json: schema: $ref: '#/components/schemas/RadioSession' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/RadioSession' description: '' /api/v1/radios/sessions/{id}/: get: operationId: get_radio_session parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this radio session. required: true tags: - radios security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/RadioSession' description: '' /api/v1/radios/tracks/: post: operationId: create_radio_track tags: - radios requestBody: content: application/json: schema: $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' multipart/form-data: schema: $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' application/activity+json: schema: $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/RadioSessionTrackSerializerCreate' description: '' /api/v1/rate-limit/: get: operationId: get_rate_limit tags: - rate-limit security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/RateLimit' description: '' /api/v1/search: get: operationId: get_search tags: - search security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /api/v1/stream/{uuid}/: get: operationId: get_stream parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - stream security: - oauth2: [] - ApplicationToken: [] responses: '200': content: audio/mpeg: schema: $ref: '#/components/schemas/Track' description: '' /api/v1/subscriptions/: get: operationId: get_subscriptions parameters: - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - subscriptions security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedSubscriptionList' description: '' /api/v1/subscriptions/{uuid}/: get: operationId: get_subscription parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - subscriptions security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Subscription' description: '' /api/v1/subscriptions/all/: get: operationId: get_subscription_all description: |- Return all the subscriptions of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display subscription status in the UI tags: - subscriptions security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Subscription' 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTagList' description: '' /api/v1/tags/{name}/: get: operationId: get_tag parameters: - in: path name: name schema: type: string required: true tags: - tags security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tag' description: '' /api/v1/text-preview/: post: operationId: create_text_preview tags: - text-preview security: - oauth2: [] - ApplicationToken: [] responses: '200': description: No response body /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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTrackList' description: '' /api/v1/tracks/{id}/: get: operationId: get_track description: A simple ViewSet for viewing and editing accounts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Track' description: '' delete: operationId: delete_track description: A simple ViewSet for viewing and editing accounts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/tracks/{id}/fetches/: get: operationId: get_track_fetches description: A simple ViewSet for viewing and editing accounts. parameters: - in: query name: album schema: type: integer - in: query name: artist schema: type: string - in: query name: channel schema: type: string - in: query name: hidden schema: type: boolean - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true - 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFetchList' description: '' post: operationId: create_track_fetch description: A simple ViewSet for viewing and editing accounts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks requestBody: content: application/json: schema: $ref: '#/components/schemas/Track' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Track' multipart/form-data: schema: $ref: '#/components/schemas/Track' application/activity+json: schema: $ref: '#/components/schemas/Track' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Fetch' description: '' /api/v1/tracks/{id}/libraries/: get: operationId: get_track_library description: A simple ViewSet for viewing and editing accounts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Track' description: '' /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: 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: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAPIMutationList' description: '' post: operationId: create_track_mutation description: A simple ViewSet for viewing and editing accounts. parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this track. required: true tags: - tracks requestBody: content: application/json: schema: $ref: '#/components/schemas/Track' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Track' multipart/form-data: schema: $ref: '#/components/schemas/Track' application/activity+json: schema: $ref: '#/components/schemas/Track' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIMutation' description: '' /api/v1/uploads/: get: operationId: get_uploads parameters: - in: query name: album_artist schema: type: string format: uuid - in: query name: channel schema: type: string - in: query name: import_reference schema: type: string - in: query name: import_status schema: type: array items: type: string enum: - draft - errored - finished - pending - skipped explode: true style: form - in: query name: include_channels schema: type: boolean - in: query name: library schema: type: string format: uuid - in: query name: mimetype schema: type: string - name: ordering required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: playable schema: type: boolean - in: query name: q schema: type: string - in: query name: scope schema: type: string - in: query name: track schema: type: string format: uuid - in: query name: track_artist schema: type: string format: uuid tags: - uploads security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUploadForOwnerList' description: '' post: operationId: create_upload tags: - uploads requestBody: content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UploadForOwner' multipart/form-data: schema: $ref: '#/components/schemas/UploadForOwner' application/activity+json: schema: $ref: '#/components/schemas/UploadForOwner' required: true security: - oauth2: [] - ApplicationToken: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' description: '' /api/v1/uploads/{uuid}/: get: operationId: get_upload parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - uploads security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' description: '' put: operationId: update_upload parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - uploads requestBody: content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UploadForOwner' multipart/form-data: schema: $ref: '#/components/schemas/UploadForOwner' application/activity+json: schema: $ref: '#/components/schemas/UploadForOwner' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' description: '' patch: operationId: partial_update_upload parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - uploads requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUploadForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUploadForOwner' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUploadForOwner' application/activity+json: schema: $ref: '#/components/schemas/PatchedUploadForOwner' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' description: '' delete: operationId: delete_upload parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - uploads security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/uploads/{uuid}/audio-file-metadata/: get: operationId: get_upload_audio_file_metadatum parameters: - in: path name: uuid schema: type: string format: uuid required: true tags: - uploads security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' description: '' /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/UploadForOwner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UploadForOwner' multipart/form-data: schema: $ref: '#/components/schemas/UploadForOwner' application/activity+json: schema: $ref: '#/components/schemas/UploadForOwner' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UploadForOwner' description: '' /api/v1/users/{username}/: put: operationId: update_user parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' patch: operationId: partial_update_user parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserWrite' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserWrite' application/activity+json: schema: $ref: '#/components/schemas/PatchedUserWrite' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' /api/v1/users/{username}/subsonic-token/: get: operationId: get_user_subsonic_token parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' post: operationId: create_user_subsonic_token parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' delete: operationId: delete_user_subsonic_token parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/users/change-email/: post: operationId: create_user_change_email tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' /api/v1/users/me/: get: operationId: get_authenticated_user description: Return information about the current user or delete it tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' delete: operationId: delete_authenticated_user description: Return information about the current user or delete it tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/users/settings/: post: operationId: update_settings description: Return information about the current user or delete it tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' /api/v1/users/users/{username}/: put: operationId: update_user_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/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' patch: operationId: partial_update_user_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/PatchedUserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUserWrite' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUserWrite' application/activity+json: schema: $ref: '#/components/schemas/PatchedUserWrite' security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' /api/v1/users/users/{username}/subsonic-token/: get: operationId: get_user_user_subsonic_token parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' post: operationId: create_user_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/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' delete: operationId: delete_user_user_subsonic_token parameters: - in: path name: username schema: type: string pattern: ^[a-zA-Z0-9-_.]+$ required: true tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/users/users/change-email/: post: operationId: create_user_user_change_email tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' /api/v1/users/users/me/: get: operationId: get_authenticated_user_2 description: Return information about the current user or delete it tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' delete: operationId: delete_authenticated_user_2 description: Return information about the current user or delete it tags: - users security: - oauth2: [] - ApplicationToken: [] responses: '204': description: No response body /api/v1/users/users/settings/: post: operationId: update_settings_2 description: Return information about the current user or delete it tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserWrite' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserWrite' multipart/form-data: schema: $ref: '#/components/schemas/UserWrite' application/activity+json: schema: $ref: '#/components/schemas/UserWrite' required: true security: - oauth2: [] - ApplicationToken: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserWrite' description: '' components: schemas: APIActor: type: object properties: fid: type: string format: uri maxLength: 500 url: type: string format: uri nullable: true maxLength: 500 creation_date: type: string format: date-time summary: type: string nullable: true maxLength: 500 preferred_username: type: string nullable: true maxLength: 200 name: type: string nullable: true maxLength: 200 last_fetch_date: type: string format: date-time domain: type: string type: $ref: '#/components/schemas/FederationChoiceEnum' manually_approves_followers: type: boolean nullable: true full_username: type: string readOnly: true is_local: type: boolean readOnly: true required: - domain - fid - full_username - is_local - preferred_username 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 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 target: type: object additionalProperties: {} readOnly: 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 Album: type: object properties: cover: $ref: '#/components/schemas/CoverField' artist: $ref: '#/components/schemas/SimpleArtist' 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: cover: type: string writeOnly: true nullable: true 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 required: - artist - title 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 ArtistAlbum: type: object properties: cover: $ref: '#/components/schemas/CoverField' tracks_count: type: integer readOnly: 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 ArtistWithAlbums: type: object properties: cover: $ref: '#/components/schemas/CoverField' albums: type: array items: $ref: '#/components/schemas/ArtistAlbum' tags: type: array items: type: string readOnly: true attributed_to: $ref: '#/components/schemas/APIActor' channel: type: object additionalProperties: {} readOnly: 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 required: - albums - attributed_to - channel - content_category - cover - creation_date - fid - id - is_local - mbid - name - tags - tracks_count 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 file: type: string format: uri writeOnly: true urls: type: object additionalProperties: {} readOnly: true required: - creation_date - file - mimetype - size - urls - uuid Channel: type: object properties: uuid: type: string format: uuid artist: $ref: '#/components/schemas/SimpleArtist' 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: cover: type: string writeOnly: true nullable: true name: type: string maxLength: 255 username: type: string pattern: ^[\w]+$ maxLength: 255 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 ChannelUpdate: type: object properties: cover: type: string writeOnly: true nullable: true name: type: string maxLength: 255 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 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 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 file: type: string format: uri writeOnly: true urls: type: object additionalProperties: {} readOnly: true required: - creation_date - file - mimetype - size - urls - uuid CreateApplication: type: object properties: client_id: type: string readOnly: true name: type: string maxLength: 255 scopes: type: string default: read client_secret: type: string readOnly: true 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 - client_secret - created - name - updated 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 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 object: type: string writeOnly: true force: type: boolean writeOnly: true default: false required: - actor - creation_date - detail - fetch_date - id - object - status - url FetchStatusEnum: enum: - pending - errored - finished - skipped 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: string readOnly: true field: type: string readOnly: true required: - additional_data - default - field - help_text - identifier - name - section - value - verbose_name Ident: type: object properties: type: type: string id: type: integer required: - id - type 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 InboxItemTypeEnum: enum: - to - cc type: string 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' readOnly: true latest_scan: allOf: - $ref: '#/components/schemas/LibraryScan' readOnly: true required: - actor - fid - follow - latest_scan - name - uploads_count LibraryFollow: type: object properties: creation_date: type: string format: date-time readOnly: true actor: allOf: - $ref: '#/components/schemas/APIActor' readOnly: true uuid: type: string format: uuid readOnly: true target: type: string approved: type: boolean readOnly: true nullable: true required: - actor - approved - creation_date - target - uuid 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 LibraryPrivacyLevelEnum: enum: - me - instance - everyone type: string 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 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 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: $ref: '#/components/schemas/ManageUser' instance_policy: type: integer readOnly: true required: - creation_date - domain - fid - full_username - id - instance_policy - is_local - preferred_username - uploads_count - 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 maxLength: 255 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 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 maxLength: 255 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: $ref: '#/components/schemas/CoverField' 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 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 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 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 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 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 ManageInvitation: type: object properties: id: type: integer readOnly: true owner: $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 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 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 maxLength: 255 creation_date: type: string format: date-time domain: type: string is_local: type: boolean readOnly: true required: - domain - id - is_local - 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 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 maxLength: 255 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 maxLength: 500 license: type: string nullable: true required: - domain - id - is_local - 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 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: $ref: '#/components/schemas/ManageBaseActor' target_owner: $ref: '#/components/schemas/ManageBaseActor' submitter: $ref: '#/components/schemas/ManageBaseActor' submitter_email: type: string format: email readOnly: true nullable: true notes: allOf: - $ref: '#/components/schemas/ManageBaseNote' readOnly: true required: - assigned_to - creation_date - fid - handled_date - id - notes - submitter - submitter_email - summary - target - target_owner - target_state - type - uuid 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 ManageTarget: type: object properties: type: $ref: '#/components/schemas/ManageTargetTypeEnum' id: type: string 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 maxLength: 255 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 maxLength: 500 license: type: string nullable: true artist: $ref: '#/components/schemas/ManageNestedArtist' album: $ref: '#/components/schemas/ManageTrackAlbum' attributed_to: $ref: '#/components/schemas/ManageBaseActor' 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 maxLength: 255 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 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/ManageUploadImportStatusEnum' 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 ManageUploadImportStatusEnum: enum: - draft - pending - finished - errored - skipped type: string 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 - upload_quota - username ManageUserRequest: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid readOnly: true creation_date: type: string format: date-time readOnly: true handled_date: type: string format: date-time readOnly: true nullable: true type: $ref: '#/components/schemas/ManageUserRequestTypeEnum' status: $ref: '#/components/schemas/ManageUserRequestStatusEnum' assigned_to: $ref: '#/components/schemas/ManageBaseActor' submitter: $ref: '#/components/schemas/ManageBaseActor' notes: allOf: - $ref: '#/components/schemas/ManageBaseNote' readOnly: true metadata: type: object additionalProperties: {} readOnly: true nullable: true required: - assigned_to - creation_date - handled_date - id - metadata - notes - submitter - type - uuid 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 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: type: boolean 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: allOf: - $ref: '#/components/schemas/MetadataUsage' readOnly: true required: - actorId - allowList - banner - contactEmail - defaultUploadQuota - endpoints - funkwhaleSupportMessageEnabled - instanceSupportMessage - library - longDescription - nodeName - private - reportTypes - rules - shortDescription - supportedUploadExtensions - terms - usage 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 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 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 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' 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 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 requesting a password reset e-mail. 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 PatchedApplication: 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 PatchedChannelUpdate: type: object properties: cover: type: string writeOnly: true nullable: true name: type: string maxLength: 255 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: {} PatchedGlobalPreference: type: object properties: section: type: string readOnly: true name: type: string readOnly: true identifier: type: string readOnly: true default: type: string readOnly: true value: type: string verbose_name: type: string readOnly: true help_text: type: string readOnly: true additional_data: type: string readOnly: true field: type: string readOnly: true PatchedInboxItem: 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 PatchedLibraryForOwner: 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 PatchedManageDomainUpdate: 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 PatchedManageInstancePolicy: 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 PatchedManageInvitation: type: object properties: id: type: integer readOnly: true owner: $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' PatchedManageLibrary: 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' PatchedManageReport: 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: $ref: '#/components/schemas/ManageBaseActor' target_owner: $ref: '#/components/schemas/ManageBaseActor' submitter: $ref: '#/components/schemas/ManageBaseActor' submitter_email: type: string format: email readOnly: true nullable: true notes: allOf: - $ref: '#/components/schemas/ManageBaseNote' readOnly: true PatchedManageUser: 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 PatchedManageUserRequest: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid readOnly: true creation_date: type: string format: date-time readOnly: true handled_date: type: string format: date-time readOnly: true nullable: true type: $ref: '#/components/schemas/ManageUserRequestTypeEnum' status: $ref: '#/components/schemas/ManageUserRequestStatusEnum' assigned_to: $ref: '#/components/schemas/ManageBaseActor' submitter: $ref: '#/components/schemas/ManageBaseActor' notes: allOf: - $ref: '#/components/schemas/ManageBaseNote' readOnly: true metadata: type: object additionalProperties: {} readOnly: true nullable: true PatchedPlaylist: 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: uri readOnly: true duration: type: integer readOnly: true is_playable: type: boolean readOnly: true actor: allOf: - $ref: '#/components/schemas/APIActor' readOnly: true PatchedRadio: 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 PatchedUploadForOwner: type: object properties: uuid: type: string format: uuid readOnly: true filename: type: string readOnly: true creation_date: type: string format: date-time readOnly: true mimetype: type: string readOnly: true nullable: true track: allOf: - $ref: '#/components/schemas/Track' nullable: true library: type: string channel: type: string duration: type: integer readOnly: true nullable: true bitrate: type: integer readOnly: true nullable: true size: type: integer readOnly: true nullable: true import_date: type: string format: date-time readOnly: true nullable: true import_status: allOf: - $ref: '#/components/schemas/UploadForOwnerImportStatusEnum' 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 audio_file: type: string format: uri PatchedUserDetails: 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 PatchedUserWrite: type: object properties: name: type: string title: Name of User maxLength: 255 privacy_level: $ref: '#/components/schemas/PrivacyLevelEnum' avatar: type: string writeOnly: true instance_support_message_display_date: type: string format: date-time nullable: true funkwhale_support_message_display_date: type: string format: date-time nullable: true summary: allOf: - $ref: '#/components/schemas/Content' 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: uri 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 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 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 RadioSessionTrackSerializerCreate: 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 password1: type: string writeOnly: true password2: type: string writeOnly: true 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 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 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 maxLength: 255 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: $ref: '#/components/schemas/Content' attachment_cover: $ref: '#/components/schemas/CoverField' channel: type: integer required: - attachment_cover - channel - description - id - is_local - name Software: type: object properties: name: type: string readOnly: true version: type: string required: - name - version 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 TotalCount: type: object properties: total: type: integer readOnly: true required: - total Track: type: object properties: cover: $ref: '#/components/schemas/CoverField' 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: str readOnly: true attributed_to: $ref: '#/components/schemas/APIActor' 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 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 maxLength: 255 artist: $ref: '#/components/schemas/SimpleArtist' release_date: type: string format: date nullable: true cover: $ref: '#/components/schemas/CoverField' 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 UploadForOwner: type: object properties: uuid: type: string format: uuid readOnly: true filename: type: string readOnly: true creation_date: type: string format: date-time readOnly: true mimetype: type: string readOnly: true nullable: true track: allOf: - $ref: '#/components/schemas/Track' nullable: true library: type: string channel: type: string duration: type: integer readOnly: true nullable: true bitrate: type: integer readOnly: true nullable: true size: type: integer readOnly: true nullable: true import_date: type: string format: date-time readOnly: true nullable: true import_status: allOf: - $ref: '#/components/schemas/UploadForOwnerImportStatusEnum' 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 audio_file: type: string format: uri required: - audio_file - bitrate - creation_date - duration - filename - import_date - import_details - metadata - mimetype - size - uuid UploadForOwnerImportStatusEnum: enum: - draft - pending type: string 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: $ref: '#/components/schemas/Attachment' required: - avatar - id - 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 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 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 UserWrite: type: object properties: name: type: string title: Name of User maxLength: 255 privacy_level: $ref: '#/components/schemas/PrivacyLevelEnum' avatar: type: string writeOnly: true instance_support_message_display_date: type: string format: date-time nullable: true funkwhale_support_message_display_date: type: string format: date-time nullable: true summary: allOf: - $ref: '#/components/schemas/Content' 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 VerifyEmail: type: object properties: key: type: string required: - key securitySchemes: ApplicationToken: type: http scheme: bearer oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: /authorize tokenUrl: /api/v1/oauth/token/ scopes: read: '' read:profile: '' read:libraries: '' read:edits: '' read:follows: '' read:favorites: '' read:filters: '' read:listenings: '' read:radios: '' read:playlists: '' read:notifications: '' read:security: '' read:reports: '' read:plugins: '' read:instance:settings: '' read:instance:users: '' read:instance:invitations: '' read:instance:edits: '' read:instance:libraries: '' read:instance:accounts: '' read:instance:domains: '' read:instance:policies: '' read:instance:reports: '' read:instance:requests: '' read:instance:notes: '' write: '' write:profile: '' write:libraries: '' write:edits: '' write:follows: '' write:favorites: '' write:filters: '' write:listenings: '' write:radios: '' write:playlists: '' write:notifications: '' write:security: '' write:reports: '' write:plugins: '' write:instance:settings: '' write:instance:users: '' write:instance:invitations: '' write:instance:edits: '' write:instance:libraries: '' write:instance:accounts: '' write:instance:domains: '' write:instance:policies: '' write:instance:reports: '' write:instance:requests: '' write:instance:notes: '' servers: - url: https://demo.funkwhale.audio description: Demo Server - url: https://funkwhale.audio description: Read server with real content - url: '{protocol}://{domain}' description: Custom server variables: domain: default: yourdomain description: Your Funkwhale Domain protocol: enum: - http - https default: https