funkwhale/api/schema.yml

13391 lines
332 KiB
YAML

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 <token>`. \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<table>\n<caption>Rate limiting\
\ headers</caption>\n<thead>\n<th>Header</th>\n<th>Example value</th>\n<th>Description\
\ value</th>\n</thead>\n<tbody>\n<tr>\n<td><code>X-RateLimit-Limit</code></td>\n\
<td>50</td>\n<td>The number of allowed requests whithin a given period</td>\n\
</tr>\n<tr>\n<td><code>X-RateLimit-Duration</code></td>\n<td>3600</td>\n<td>The\
\ time window, in seconds, during which those requests are accounted for.</td>\n\
</tr>\n<tr>\n<td><code>X-RateLimit-Scope</code></td>\n<td>login</td>\n<td>The\
\ name of the scope as computed for the request</td>\n</tr>\n<tr>\n<td><code>X-RateLimit-Remaining</code></td>\n\
<td>42</td>\n<td>How many requests can be sent with the same scope before the\
\ limit applies</td>\n</tr>\n<tr>\n<td><code>Retry-After</code> (if <code>X-RateLimit-Remaining</code>\
\ is 0)</td>\n<td>3543</td>\n<td>How many seconds to wait before a retry</td>\n\
</tr>\n<tr>\n<td><code>X-RateLimit-Reset</code></td>\n<td>1568126089</td>\n<td>A\
\ timestamp indicating when <code>X-RateLimit-Remaining</code> will return to\
\ its higher possible value</td>\n</tr>\n<tr>\n<td><code>X-RateLimit-ResetSeconds</code></td>\n\
<td>3599</td>\n<td>How many seconds to wait before <code>X-RateLimit-Remaining</code>\
\ returns to its higher possible value</td>\n</tr>\n</tbody>\n</table>\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