funkwhale/api/schema.yml

15761 lines
402 KiB
YAML

openapi: 3.0.3
info:
title: Funkwhale API
version: 1.4.0
description: |
# Funkwhale API
This is the Funkwhale API. Check out our [API explorer](https://docs.funkwhale.audio/swagger/) for interactive documentation.
## OAuth Authentication
Funkwhale uses the OAuth [authorization grant flow](https://tools.ietf.org/html/rfc6749#section-4.1) for external apps. This flow is a secure way to authenticate apps that requires a user's explicit consent to perform actions. You can use our demo server at <https://demo.funkwhale.audio> for testing purposes.
To authenticate with the Funkwhale API:
1. Create an application by sending a `POST` request to `api/v1/oauth/apps`. Include your scopes and redirect URI (use `urn:ietf:wg:oauth:2.0:oob`
to get an authorization code you can copy)
2. Send an [authorization request](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2) to the `/authorize` endpoint to receive an authorization code
3. [Request an access token](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3) from `/api/v1/oauth/token`
4. Use your access token to authenticate your calls with the following format: `Authorization: Bearer <token>`
5. Refresh your access token by sending a refresh request to `/api/v1/oauth/token`
For more detailed instructions, see [our API authentication documentation](https://docs.funkwhale.audio/developers/authentication.html).
## Application token authentication
If you have an account on your target pod, you can create an application at `/settings/applications/new`. Once you authorize the application you can retrieve an access token. Use your access token to authenticate your calls with the following format: `Authorization: Bearer <token>`
## Rate limiting
Funkwhale supports rate-limiting as of version 0.2.0. Pod admins can choose to rate limit specific endpoints to prevent abuse and improve the stability of the service. If the server drops a request due to rate-limiting, it returns a `429` status code.
Each API call returns HTTP headers to pass the following information:
- What was the scope of the request (`X-RateLimit-Scope`)
- What is the rate-limit associated with the request scope (`X-RateLimit-Limit`)
- How many more requests in the scope can be made within the rate-limit timeframe (`X-RateLimit-Remaining`)
- How much time does the client need to wait to send another request (`Retry-After`)
For more information, check our [rate limit documentation](https://docs.funkwhale.audio/developer/api/rate-limit.html)
## Resources
For more information about API usage, refer to [our API documentation](https://docs.funkwhale.audio/api.html).
paths:
/api/v1/activity/:
get:
operationId: get_activity
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- activity
security:
- 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
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `release_date` - Release date
* `-release_date` - Release date (descending)
* `title` - Title
* `-title` - Title (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- albums
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedAlbumList"
description: ""
post:
operationId: create_album
tags:
- albums
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AlbumCreateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/AlbumCreateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/AlbumCreateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/AlbumCreateRequest"
required: true
security:
- oauth2:
- write:libraries
- 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:
- read:libraries
- 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:
- write:libraries
- 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
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `release_date` - Release date
* `-release_date` - Release date (descending)
* `title` - Title
* `-title` - Title (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- albums
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedFetchList"
description: ""
post:
operationId: create_album_fetch
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this album.
required: true
tags:
- albums
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AlbumRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/AlbumRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/AlbumRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/AlbumRequest"
required: true
security:
- 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
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `release_date` - Release date
* `-release_date` - Release date (descending)
* `title` - Title
* `-title` - Title (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- albums
security:
- oauth2:
- read:libraries
- 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
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `release_date` - Release date
* `-release_date` - Release date (descending)
* `title` - Title
* `-title` - Title (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- albums
security:
- oauth2:
- read:edits
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedAPIMutationList"
description: ""
post:
operationId: create_album_mutation
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this album.
required: true
tags:
- albums
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AlbumRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/AlbumRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/AlbumRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/AlbumRequest"
required: true
security:
- oauth2:
- write:edits
- 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
* `id` - Id
* `-id` - Id (descending)
* `name` - Name
* `-name` - Name (descending)
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `modification_date` - Modification date
* `-modification_date` - Modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- artists
security:
- oauth2:
- read:libraries
- 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:
- read:libraries
- 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
* `id` - Id
* `-id` - Id (descending)
* `name` - Name
* `-name` - Name (descending)
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `modification_date` - Modification date
* `-modification_date` - Modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- artists
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedFetchList"
description: ""
post:
operationId: create_artist_fetch
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this artist.
required: true
tags:
- artists
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Fetch"
description: ""
/api/v1/artists/{id}/libraries/:
get:
operationId: get_artist_libraries
parameters:
- in: query
name: content_category
schema:
type: string
- in: query
name: has_albums
schema:
type: boolean
- in: query
name: hidden
schema:
type: boolean
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this artist.
required: true
- in: query
name: include_channels
schema:
type: boolean
- in: query
name: library
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- in: query
name: name
schema:
type: string
- in: query
name: name__icontains
schema:
type: string
- in: query
name: name__iexact
schema:
type: string
- in: query
name: name__startswith
schema:
type: string
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -creation_date
- -id
- -modification_date
- -name
- -random
- -related
- creation_date
- id
- modification_date
- name
- random
- related
description: |-
Ordering
* `id` - Id
* `-id` - Id (descending)
* `name` - Name
* `-name` - Name (descending)
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `modification_date` - Modification date
* `-modification_date` - Modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- artists
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedLibraryList"
description: ""
/api/v1/artists/{id}/mutations/:
get:
operationId: get_artist_mutations
parameters:
- in: query
name: content_category
schema:
type: string
- in: query
name: has_albums
schema:
type: boolean
- in: query
name: hidden
schema:
type: boolean
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this artist.
required: true
- in: query
name: include_channels
schema:
type: boolean
- in: query
name: library
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- in: query
name: name
schema:
type: string
- in: query
name: name__icontains
schema:
type: string
- in: query
name: name__iexact
schema:
type: string
- in: query
name: name__startswith
schema:
type: string
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -creation_date
- -id
- -modification_date
- -name
- -random
- -related
- creation_date
- id
- modification_date
- name
- random
- related
description: |-
Ordering
* `id` - Id
* `-id` - Id (descending)
* `name` - Name
* `-name` - Name (descending)
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `modification_date` - Modification date
* `-modification_date` - Modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- artists
security:
- oauth2:
- read:edits
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedAPIMutationList"
description: ""
post:
operationId: create_artist_mutation
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this artist.
required: true
tags:
- artists
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ArtistWithAlbumsRequest"
required: true
security:
- oauth2:
- write:edits
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/APIMutation"
description: ""
/api/v1/attachments/:
post:
operationId: create_attachment
tags:
- attachments
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AttachmentRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/AttachmentRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/AttachmentRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/AttachmentRequest"
required: true
security:
- oauth2:
- write:libraries
- 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:
- read:libraries
- 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:
- write:libraries
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/attachments/{uuid}/proxy/:
get:
operationId: get_attachment_proxy
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- attachments
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Attachment"
description: ""
/api/v1/auth/password/change/:
post:
operationId: change_password
description: |-
Calls Django Auth SetPasswordForm save method.
Accepts the following POST parameters: new_password1, new_password2
Returns the success/fail message.
tags:
- auth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PasswordChange"
description: ""
/api/v1/auth/password/reset/:
post:
operationId: reset_password
description: |-
Calls Django Auth PasswordResetForm save method.
Accepts the following POST parameters: email
Returns the success/fail message.
tags:
- auth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PasswordResetRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PasswordResetRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PasswordResetRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PasswordResetRequest"
required: true
security:
- ApplicationToken: []
- {}
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PasswordReset"
description: ""
/api/v1/auth/password/reset/confirm/:
post:
operationId: confirm_password_reset
description: |-
Password reset e-mail link is confirmed, therefore
this resets the user's password.
Accepts the following POST parameters: token, uid,
new_password1, new_password2
Returns the success/fail message.
tags:
- auth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PasswordResetConfirmRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PasswordResetConfirmRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PasswordResetConfirmRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PasswordResetConfirmRequest"
required: true
security:
- 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/RegisterRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/RegisterRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/RegisterRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/RegisterRequest"
required: true
security:
- ApplicationToken: []
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Register"
description: ""
/api/v1/auth/registration/change-password/:
post:
operationId: change_password_2
description: |-
Calls Django Auth SetPasswordForm save method.
Accepts the following POST parameters: new_password1, new_password2
Returns the success/fail message.
tags:
- auth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PasswordChangeRequest"
required: true
security:
- 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/VerifyEmailRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/VerifyEmailRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/VerifyEmailRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/VerifyEmailRequest"
required: true
security:
- ApplicationToken: []
- {}
responses:
"200":
description: No response body
/api/v1/auth/user/:
get:
operationId: get_auth_user
description: |-
Reads and updates UserModel fields
Accepts GET, PUT, PATCH methods.
Default accepted fields: username, first_name, last_name
Default display fields: pk, username, email, first_name, last_name
Read-only fields: pk, email
Returns UserModel fields.
tags:
- auth
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserDetails"
description: ""
put:
operationId: update_auth_user
description: |-
Reads and updates UserModel fields
Accepts GET, PUT, PATCH methods.
Default accepted fields: username, first_name, last_name
Default display fields: pk, username, email, first_name, last_name
Read-only fields: pk, email
Returns UserModel fields.
tags:
- auth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserDetailsRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserDetailsRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserDetailsRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserDetailsRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserDetails"
description: ""
patch:
operationId: partial_update_auth_user
description: |-
Reads and updates UserModel fields
Accepts GET, PUT, PATCH methods.
Default accepted fields: username, first_name, last_name
Default display fields: pk, username, email, first_name, last_name
Read-only fields: pk, email
Returns UserModel fields.
tags:
- auth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedUserDetailsRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedUserDetailsRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedUserDetailsRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedUserDetailsRequest"
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserDetails"
description: ""
/api/v1/channels/:
get:
operationId: get_channels
parameters:
- in: query
name: external
schema:
type: boolean
- in: query
name: hidden
schema:
type: boolean
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -creation_date
- -modification_date
- -random
- creation_date
- modification_date
- random
description: |-
Ordering
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `modification_date` - Modification date
* `-modification_date` - Modification date (descending)
* `random` - Random
* `-random` - Random (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: subscribed
schema:
type: boolean
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
tags:
- channels
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedChannelList"
description: ""
post:
operationId: create_channel
tags:
- channels
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelCreateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ChannelCreateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ChannelCreateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ChannelCreateRequest"
required: true
security:
- oauth2:
- write:libraries
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Channel"
description: ""
put:
operationId: update_channel
parameters:
- in: path
name: composite
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- channels
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelUpdateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ChannelUpdateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ChannelUpdateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ChannelUpdateRequest"
required: true
security:
- oauth2:
- write:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelUpdate"
description: ""
patch:
operationId: partial_update_channel
parameters:
- in: path
name: composite
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- channels
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedChannelUpdateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedChannelUpdateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedChannelUpdateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedChannelUpdateRequest"
security:
- oauth2:
- write:libraries
- 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:
- write:libraries
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Channel"
description: ""
/api/v1/channels/{composite}/subscribe/:
post:
operationId: subscribe_channel
parameters:
- in: path
name: composite
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- channels
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ChannelRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ChannelRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ChannelRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Channel"
description: ""
/api/v1/channels/{composite}/unsubscribe/:
post:
operationId: unsubscribe_channel_2
parameters:
- in: path
name: composite
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- channels
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ChannelRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ChannelRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ChannelRequest"
required: true
security:
- ApplicationToken: []
responses:
"204":
description: No response body
delete:
operationId: unsubscribe_channel
parameters:
- in: path
name: composite
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- channels
security:
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/channels/metadata-choices/:
get:
operationId: get_channel_metadata_choices
tags:
- channels
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Channel"
description: ""
/api/v1/channels/rss-subscribe/:
post:
operationId: subscribe_channel_rss
tags:
- channels
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ChannelRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ChannelRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ChannelRequest"
required: true
security:
- oauth2:
- write:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Channel"
description: ""
/api/v1/favorites/tracks/:
get:
operationId: get_favorite_tracks
parameters:
- in: query
name: hidden
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
tags:
- favorites
security:
- oauth2:
- read:favorites
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedUserTrackFavoriteList"
description: ""
post:
operationId: favorite_track
tags:
- favorites
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
required: true
security:
- oauth2:
- write:favorites
- 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:
- write:favorites
- 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:
- read:favorites
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AllFavorite"
description: ""
/api/v1/favorites/tracks/remove/:
post:
operationId: unfavorite_track_2
tags:
- favorites
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWriteRequest"
required: true
security:
- oauth2:
- write:favorites
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserTrackFavoriteWrite"
description: ""
delete:
operationId: unfavorite_track
tags:
- favorites
security:
- oauth2:
- write:favorites
- 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:
- 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:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryForOwner"
description: ""
/api/v1/federation/domains/:
get:
operationId: get_federation_domains
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- federation
security:
- 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:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Domain"
description: ""
/api/v1/federation/fetches/:
post:
operationId: create_federation_fetch
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/FetchRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/FetchRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/FetchRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/FetchRequest"
required: true
security:
- 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:
- 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:
- read:follows
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedLibraryFollowList"
description: ""
post:
operationId: create_federation_library_follow
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
required: true
security:
- oauth2:
- write:follows
- 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:
- read:follows
- 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:
- write:follows
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/federation/follows/library/{uuid}/accept/:
post:
operationId: accept_federation_library_follow
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
required: true
security:
- oauth2:
- write:follows
- ApplicationToken: []
responses:
"404":
description: No response body
"204":
description: No response body
/api/v1/federation/follows/library/{uuid}/reject/:
post:
operationId: reject_federation_library_follow
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryFollowRequest"
required: true
security:
- oauth2:
- write:follows
- 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:
- read:follows
- 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:
- read:notifications
- 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:
- read:notifications
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/InboxItem"
description: ""
put:
operationId: update_federation_inbox
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this inbox item.
required: true
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/InboxItemRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/InboxItemRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/InboxItemRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/InboxItemRequest"
required: true
security:
- oauth2:
- write:notifications
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/InboxItem"
description: ""
patch:
operationId: partial_update_federation_inbox
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this inbox item.
required: true
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedInboxItemRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedInboxItemRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedInboxItemRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedInboxItemRequest"
security:
- oauth2:
- write:notifications
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/InboxItem"
description: ""
/api/v1/federation/inbox/action/:
post:
operationId: create_federation_inbox_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/InboxItemRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/InboxItemRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/InboxItemRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/InboxItemRequest"
required: true
security:
- oauth2:
- write:notifications
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Library"
description: ""
/api/v1/federation/libraries/{uuid}/scan/:
post:
operationId: create_federation_library_scan
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryRequest"
required: true
security:
- oauth2:
- write:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Library"
description: ""
/api/v1/federation/libraries/fetch/:
post:
operationId: create_federation_library_fetch
tags:
- federation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryRequest"
required: true
security:
- oauth2:
- write:libraries
- 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:
- read:listenings
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedListeningList"
description: ""
post:
operationId: create_history_listening
tags:
- history
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ListeningWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ListeningWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ListeningWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ListeningWriteRequest"
required: true
security:
- oauth2:
- write:listenings
- 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:
- read:listenings
- 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:
- read:instance:settings
- 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:
- read:instance:settings
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreference"
description: ""
put:
operationId: update_instance_admin_setting
description: |-
- list preferences
- detail given preference
- batch update preferences
- update a single preference
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Global preference.
required: true
tags:
- instance
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
required: true
security:
- oauth2:
- write:instance:settings
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreference"
description: ""
patch:
operationId: partial_update_instance_admin_setting
description: |-
- list preferences
- detail given preference
- batch update preferences
- update a single preference
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Global preference.
required: true
tags:
- instance
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedGlobalPreferenceRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedGlobalPreferenceRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedGlobalPreferenceRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedGlobalPreferenceRequest"
required: true
security:
- oauth2:
- write:instance:settings
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreference"
description: ""
/api/v1/instance/admin/settings/bulk/:
post:
operationId: create_instance_admin_setting_bulk
description: |-
Update multiple preferences at once
this is a long method because we ensure everything is valid
before actually persisting the changes
tags:
- instance
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/GlobalPreferenceRequest"
required: true
security:
- oauth2:
- write:instance:settings
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreference"
description: ""
/api/v1/instance/nodeinfo/2.0/:
get:
operationId: getNodeInfo20
tags:
- instance
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/NodeInfo20"
description: ""
/api/v1/instance/settings/:
get:
operationId: get_instance_settings
tags:
- instance
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/GlobalPreference"
description: ""
/api/v1/instance/spa-manifest.json:
get:
operationId: get_spa_manifest
tags:
- instance
responses:
"200":
content:
application/activity+json:
schema:
$ref: "#/components/schemas/SpaManifest"
description: ""
/api/v1/libraries/:
get:
operationId: get_libraries
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: privacy_level
schema:
type: string
enum:
- everyone
- instance
- me
description: |-
* `me` - Only me
* `instance` - Everyone on my instance, and my followers
* `everyone` - Everyone, including people on other instances
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
tags:
- libraries
security:
- oauth2:
- read:libraries
- 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/LibraryForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
required: true
security:
- oauth2:
- write:libraries
- 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:
- read:libraries
- 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/LibraryForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
required: true
security:
- oauth2:
- write:libraries
- 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/PatchedLibraryForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedLibraryForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedLibraryForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedLibraryForOwnerRequest"
security:
- oauth2:
- write:libraries
- 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:
- write:libraries
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/libraries/{uuid}/follows/:
get:
operationId: get_library_follows
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: privacy_level
schema:
type: string
enum:
- everyone
- instance
- me
description: |-
* `me` - Only me
* `instance` - Everyone on my instance, and my followers
* `everyone` - Everyone, including people on other instances
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- libraries
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedLibraryFollowList"
description: ""
/api/v1/libraries/fs-import/:
get:
operationId: get_library_fs_import
tags:
- libraries
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
description: No response body
post:
operationId: create_library_fs_import
tags:
- libraries
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/LibraryForOwnerRequest"
required: true
security:
- oauth2:
- write:libraries
- ApplicationToken: []
responses:
"200":
description: No response body
delete:
operationId: delete_library_fs_import
tags:
- libraries
security:
- oauth2:
- write:libraries
- 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:
- read:libraries
- 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:
- read:libraries
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
audio/*:
schema:
type: string
format: binary
description: ""
/api/v1/manage/accounts/:
get:
operationId: admin_get_accounts
parameters:
- in: query
name: domain
schema:
type: string
- in: query
name: local
schema:
type: boolean
- in: query
name: manually_approves_followers
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: type
schema:
type: string
enum:
- Application
- Group
- Organization
- Person
- Service
- Tombstone
description: |-
* `Person` - Person
* `Tombstone` - Tombstone
* `Application` - Application
* `Group` - Group
* `Organization` - Organization
* `Service` - Service
tags:
- manage
security:
- oauth2:
- read:instance:accounts
- 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:
- read:instance:accounts
- 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:
- read:instance:accounts
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageActor"
description: ""
/api/v1/manage/accounts/action/:
post:
operationId: admin_create_account_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageActorRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageActorRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageActorRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageActorRequest"
required: true
security:
- oauth2:
- write:instance:accounts
- 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:
- read:instance:libraries
- 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:
- read:instance:libraries
- 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:
- write:instance:libraries
- 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:
- read:instance:libraries
- 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:
- read:instance:domains
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageDomainList"
description: ""
post:
operationId: admin_create_federation_domain
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
required: true
security:
- oauth2:
- write:instance:domains
- 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:
- read:instance:domains
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomain"
description: ""
put:
operationId: admin_update_federation_domain
parameters:
- in: path
name: name
schema:
type: string
description: A unique value identifying this domain.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomainUpdateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageDomainUpdateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageDomainUpdateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageDomainUpdateRequest"
security:
- oauth2:
- write:instance:domains
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomainUpdate"
description: ""
patch:
operationId: admin_partial_update_federation_domain
parameters:
- in: path
name: name
schema:
type: string
description: A unique value identifying this domain.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageDomainUpdateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageDomainUpdateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageDomainUpdateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageDomainUpdateRequest"
security:
- oauth2:
- write:instance:domains
- 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:
- read:instance:domains
- 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:
- read:instance:domains
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomain"
description: ""
/api/v1/manage/federation/domains/action/:
post:
operationId: admin_create_federation_domain_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageDomainRequest"
required: true
security:
- oauth2:
- write:instance:domains
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageDomain"
description: ""
/api/v1/manage/library/albums/:
get:
operationId: admin_get_albums
parameters:
- in: query
name: artist
schema:
type: integer
- in: query
name: fid
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: title
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageAlbumList"
description: ""
/api/v1/manage/library/albums/{id}/:
get:
operationId: admin_get_album
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this album.
required: true
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageAlbum"
description: ""
delete:
operationId: admin_delete_album
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this album.
required: true
tags:
- manage
security:
- oauth2:
- write:instance:libraries
- 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:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageAlbum"
description: ""
/api/v1/manage/library/albums/action/:
post:
operationId: admin_create_album_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageAlbumRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageAlbumRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageAlbumRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageAlbumRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageAlbum"
description: ""
/api/v1/manage/library/artists/:
get:
operationId: admin_get_artists
parameters:
- in: query
name: content_category
schema:
type: string
enum:
- music
- other
- podcast
description: |-
* `music` - music
* `podcast` - podcast
* `other` - other
- in: query
name: fid
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- in: query
name: name
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageArtistList"
description: ""
/api/v1/manage/library/artists/{id}/:
get:
operationId: admin_get_artist
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this artist.
required: true
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageArtist"
description: ""
delete:
operationId: admin_delete_artist
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this artist.
required: true
tags:
- manage
security:
- oauth2:
- write:instance:libraries
- 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:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageArtist"
description: ""
/api/v1/manage/library/artists/action/:
post:
operationId: admin_create_artist_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageArtistRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageArtistRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageArtistRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageArtistRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageArtist"
description: ""
/api/v1/manage/library/libraries/:
get:
operationId: admin_get_libraries
parameters:
- in: query
name: domain
schema:
type: string
- in: query
name: fid
schema:
type: string
- in: query
name: name
schema:
type: string
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -creation_date
- -followers_count
- -uploads_count
- creation_date
- followers_count
- uploads_count
description: |-
Ordering
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `uploads_count` - Uploads count
* `-uploads_count` - Uploads count (descending)
* `followers_count` - Followers count
* `-followers_count` - Followers count (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: privacy_level
schema:
type: string
enum:
- everyone
- instance
- me
description: |-
* `me` - Only me
* `instance` - Everyone on my instance, and my followers
* `everyone` - Everyone, including people on other instances
- in: query
name: q
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageLibraryList"
description: ""
/api/v1/manage/library/libraries/{uuid}/:
get:
operationId: admin_get_library
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibrary"
description: ""
put:
operationId: admin_update_library
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibrary"
description: ""
patch:
operationId: admin_partial_update_library
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageLibraryRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageLibraryRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageLibraryRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageLibraryRequest"
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibrary"
description: ""
delete:
operationId: admin_delete_library
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- write:instance:libraries
- 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:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibrary"
description: ""
/api/v1/manage/library/libraries/action/:
post:
operationId: admin_create_library_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageLibraryRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageLibrary"
description: ""
/api/v1/manage/library/tracks/:
get:
operationId: admin_get_tracks
parameters:
- in: query
name: album
schema:
type: integer
- in: query
name: artist
schema:
type: integer
- in: query
name: fid
schema:
type: string
- in: query
name: license
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: title
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageTrackList"
description: ""
/api/v1/manage/library/tracks/{id}/:
get:
operationId: admin_get_track
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this track.
required: true
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTrack"
description: ""
delete:
operationId: admin_delete_track
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this track.
required: true
tags:
- manage
security:
- oauth2:
- write:instance:libraries
- 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:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTrack"
description: ""
/api/v1/manage/library/tracks/action/:
post:
operationId: admin_create_track_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTrackRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageTrackRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageTrackRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageTrackRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTrack"
description: ""
/api/v1/manage/library/uploads/:
get:
operationId: admin_get_uploads
parameters:
- in: query
name: domain
schema:
type: string
- in: query
name: fid
schema:
type: string
- in: query
name: import_reference
schema:
type: string
- in: query
name: import_status
schema:
type: string
enum:
- draft
- errored
- finished
- pending
- skipped
description: |-
* `draft` - Draft
* `pending` - Pending
* `finished` - Finished
* `errored` - Errored
* `skipped` - Skipped
- in: query
name: mimetype
schema:
type: string
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -accessed_date
- -bitrate
- -creation_date
- -duration
- -modification_date
- -size
- accessed_date
- bitrate
- creation_date
- duration
- modification_date
- size
description: |-
Ordering
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `modification_date` - Modification date
* `-modification_date` - Modification date (descending)
* `accessed_date` - Accessed date
* `-accessed_date` - Accessed date (descending)
* `size` - Size
* `-size` - Size (descending)
* `bitrate` - Bitrate
* `-bitrate` - Bitrate (descending)
* `duration` - Duration
* `-duration` - Duration (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: privacy_level
schema:
type: string
- in: query
name: q
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageUploadList"
description: ""
/api/v1/manage/library/uploads/{uuid}/:
get:
operationId: admin_get_upload
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUpload"
description: ""
delete:
operationId: admin_delete_upload
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/manage/library/uploads/action/:
post:
operationId: admin_create_upload_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUploadRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageUploadRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageUploadRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageUploadRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUpload"
description: ""
/api/v1/manage/moderation/instance-policies/:
get:
operationId: moderation_get_instance_policies
parameters:
- in: query
name: block_all
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: reject_media
schema:
type: boolean
- in: query
name: silence_activity
schema:
type: boolean
- in: query
name: silence_notifications
schema:
type: boolean
- in: query
name: target_account_domain
schema:
type: string
- in: query
name: target_account_username
schema:
type: string
- in: query
name: target_domain
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:policies
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageInstancePolicyList"
description: ""
post:
operationId: moderation_create_instance_policy
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
required: true
security:
- oauth2:
- write:instance:policies
- ApplicationToken: []
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInstancePolicy"
description: ""
/api/v1/manage/moderation/instance-policies/{id}/:
get:
operationId: moderation_get_instance_policy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this instance policy.
required: true
tags:
- manage
security:
- oauth2:
- read:instance:policies
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInstancePolicy"
description: ""
put:
operationId: moderation_update_instance_policy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this instance policy.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageInstancePolicyRequest"
required: true
security:
- oauth2:
- write:instance:policies
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInstancePolicy"
description: ""
patch:
operationId: moderation_partial_update_instance_policy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this instance policy.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageInstancePolicyRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageInstancePolicyRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageInstancePolicyRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageInstancePolicyRequest"
security:
- oauth2:
- write:instance:policies
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInstancePolicy"
description: ""
delete:
operationId: moderation_delete_instance_policy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this instance policy.
required: true
tags:
- manage
security:
- oauth2:
- write:instance:policies
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/manage/moderation/notes/:
get:
operationId: moderation_get_notes
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:notes
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageNoteList"
description: ""
post:
operationId: moderation_create_note
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageNoteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageNoteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageNoteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageNoteRequest"
required: true
security:
- oauth2:
- write:instance:notes
- ApplicationToken: []
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageNote"
description: ""
/api/v1/manage/moderation/notes/{uuid}/:
get:
operationId: moderation_get_note
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- read:instance:notes
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageNote"
description: ""
delete:
operationId: moderation_delete_note
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- write:instance:notes
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/manage/moderation/reports/:
get:
operationId: moderation_get_reports
parameters:
- in: query
name: is_handled
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: submitter_email
schema:
type: string
- in: query
name: type
schema:
type: string
enum:
- illegal_content
- invalid_metadata
- offensive_content
- other
- takedown_request
description: |-
* `takedown_request` - Takedown request
* `invalid_metadata` - Invalid metadata
* `illegal_content` - Illegal content
* `offensive_content` - Offensive content
* `other` - Other
tags:
- manage
security:
- oauth2:
- read:instance:reports
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageReportList"
description: ""
/api/v1/manage/moderation/reports/{uuid}/:
get:
operationId: moderation_get_report
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- read:instance:reports
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageReport"
description: ""
put:
operationId: moderation_update_report
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageReportRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageReportRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageReportRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageReportRequest"
required: true
security:
- oauth2:
- write:instance:reports
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageReport"
description: ""
patch:
operationId: moderation_partial_update_report
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageReportRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageReportRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageReportRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageReportRequest"
security:
- oauth2:
- write:instance:reports
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageReport"
description: ""
/api/v1/manage/moderation/requests/:
get:
operationId: moderation_get_requests
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: status
schema:
type: string
enum:
- approved
- pending
- refused
description: |-
* `pending` - Pending
* `refused` - Refused
* `approved` - Approved
- in: query
name: type
schema:
type: string
enum:
- signup
description: "* `signup` - Sign-up"
tags:
- manage
security:
- oauth2:
- read:instance:requests
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageUserRequestList"
description: ""
/api/v1/manage/moderation/requests/{uuid}/:
get:
operationId: moderation_get_request
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
security:
- oauth2:
- read:instance:requests
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUserRequest"
description: ""
put:
operationId: moderation_update_request
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUserRequestRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageUserRequestRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageUserRequestRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageUserRequestRequest"
required: true
security:
- oauth2:
- write:instance:requests
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUserRequest"
description: ""
patch:
operationId: moderation_partial_update_request
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageUserRequestRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageUserRequestRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageUserRequestRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageUserRequestRequest"
security:
- oauth2:
- write:instance:requests
- 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:
- read:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageTagList"
description: ""
post:
operationId: admin_create_tag
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTagRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageTagRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageTagRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageTagRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- 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:
- read:instance:libraries
- 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:
- write:instance:libraries
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/manage/tags/action/:
post:
operationId: admin_create_tag_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTagRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageTagRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageTagRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageTagRequest"
required: true
security:
- oauth2:
- write:instance:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageTag"
description: ""
/api/v1/manage/users/invitations/:
get:
operationId: admin_get_invitations
parameters:
- in: query
name: is_open
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:invitations
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageInvitationList"
description: ""
post:
operationId: admin_create_invitation
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
security:
- oauth2:
- write:instance:invitations
- ApplicationToken: []
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitation"
description: ""
/api/v1/manage/users/invitations/{id}/:
get:
operationId: admin_get_invitation
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this invitation.
required: true
tags:
- manage
security:
- oauth2:
- read:instance:invitations
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitation"
description: ""
put:
operationId: admin_update_invitation
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this invitation.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
security:
- oauth2:
- write:instance:invitations
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitation"
description: ""
patch:
operationId: admin_partial_update_invitation
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this invitation.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageInvitationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageInvitationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageInvitationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageInvitationRequest"
security:
- oauth2:
- write:instance:invitations
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitation"
description: ""
/api/v1/manage/users/invitations/action/:
post:
operationId: admin_create_invitation_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageInvitationRequest"
security:
- oauth2:
- write:instance:invitations
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageInvitation"
description: ""
/api/v1/manage/users/users/:
get:
operationId: admin_get_users
parameters:
- in: query
name: is_active
schema:
type: boolean
- in: query
name: is_staff
schema:
type: boolean
- in: query
name: is_superuser
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: permission_library
schema:
type: boolean
- in: query
name: permission_moderation
schema:
type: boolean
- in: query
name: permission_settings
schema:
type: boolean
- in: query
name: privacy_level
schema:
type: string
enum:
- everyone
- followers
- instance
- me
description: |-
* `me` - Only me
* `followers` - Me and my followers
* `instance` - Everyone on my instance, and my followers
* `everyone` - Everyone, including people on other instances
- in: query
name: q
schema:
type: string
tags:
- manage
security:
- oauth2:
- read:instance:users
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedManageUserList"
description: ""
/api/v1/manage/users/users/{id}/:
get:
operationId: admin_get_user
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- manage
security:
- oauth2:
- read:instance:users
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUser"
description: ""
put:
operationId: admin_update_user
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUserRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ManageUserRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ManageUserRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ManageUserRequest"
security:
- oauth2:
- write:instance:users
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ManageUser"
description: ""
patch:
operationId: admin_partial_update_user
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- manage
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedManageUserRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedManageUserRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedManageUserRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedManageUserRequest"
security:
- oauth2:
- write:instance:users
- 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:
- read:filters
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedUserFilterList"
description: ""
post:
operationId: create_moderation_content_filter
tags:
- moderation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserFilterRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserFilterRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserFilterRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserFilterRequest"
required: true
security:
- oauth2:
- write:filters
- 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:
- read:filters
- 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:
- write:filters
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/moderation/reports/:
post:
operationId: create_moderation_report
tags:
- moderation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ReportRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ReportRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ReportRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ReportRequest"
required: true
security:
- oauth2:
- write:reports
- ApplicationToken: []
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Report"
description: ""
/api/v1/mutations/:
get:
operationId: get_mutations
parameters:
- in: query
name: is_applied
schema:
type: boolean
- in: query
name: is_approved
schema:
type: boolean
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: type
schema:
type: string
tags:
- mutations
security:
- 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:
- 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:
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/mutations/{uuid}/approve/:
post:
operationId: approve_mutation
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- mutations
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/APIMutationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/APIMutationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/APIMutationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/APIMutationRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/APIMutation"
description: ""
/api/v1/mutations/{uuid}/reject/:
post:
operationId: reject_mutation
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- mutations
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/APIMutationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/APIMutationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/APIMutationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/APIMutationRequest"
required: true
security:
- 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:
- read:security
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedApplicationList"
description: ""
post:
operationId: create_oauth_app
tags:
- oauth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
required: true
security:
- oauth2:
- null
- 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:
- null
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Application"
description: ""
put:
operationId: update_oauth_app
parameters:
- in: path
name: client_id
schema:
type: string
required: true
tags:
- oauth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ApplicationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/ApplicationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/ApplicationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/ApplicationRequest"
required: true
security:
- oauth2:
- write:security
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Application"
description: ""
patch:
operationId: partial_update_oauth_app
parameters:
- in: path
name: client_id
schema:
type: string
required: true
tags:
- oauth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedApplicationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedApplicationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedApplicationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedApplicationRequest"
security:
- oauth2:
- write:security
- 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:
- write:security
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/oauth/apps/{client_id}/refresh-token/:
post:
operationId: refresh_oauth_token
parameters:
- in: path
name: client_id
schema:
type: string
required: true
tags:
- oauth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/CreateApplicationRequest"
required: true
security:
- oauth2:
- write:security
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/CreateApplication"
description: ""
/api/v1/oauth/grants/:
get:
operationId: get_oauth_grants
description: |-
This is a viewset that list applications that have access to the request user
account, to allow revoking tokens easily.
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
tags:
- oauth
security:
- oauth2:
- read:security
- 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:
- read:security
- 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:
- write:security
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/oembed/:
get:
operationId: get_oembed
tags:
- oembed
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Oembed"
description: ""
/api/v1/playlists/:
get:
operationId: get_playlists
parameters:
- in: query
name: album
schema:
type: integer
- in: query
name: artist
schema:
type: integer
- in: query
name: name
schema:
type: string
- in: query
name: name__icontains
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: track
schema:
type: integer
tags:
- playlists
security:
- oauth2:
- read:playlists
- 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/PlaylistRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PlaylistRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PlaylistRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PlaylistRequest"
required: true
security:
- oauth2:
- write:playlists
- 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:
- read:playlists
- 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/PlaylistRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PlaylistRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PlaylistRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PlaylistRequest"
required: true
security:
- oauth2:
- write:playlists
- 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/PatchedPlaylistRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedPlaylistRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedPlaylistRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedPlaylistRequest"
security:
- oauth2:
- write:playlists
- 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:
- write:playlists
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/playlists/{id}/add/:
post:
operationId: add_to_playlist
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this playlist.
required: true
tags:
- playlists
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PlaylistAddManyRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PlaylistAddManyRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PlaylistAddManyRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PlaylistAddManyRequest"
required: true
security:
- oauth2:
- write:playlists
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Playlist"
description: ""
/api/v1/playlists/{id}/clear/:
delete:
operationId: clear_playlist
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this playlist.
required: true
tags:
- playlists
security:
- oauth2:
- write:playlists
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/playlists/{id}/move/:
post:
operationId: reorder_track_in_playlist
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this playlist.
required: true
tags:
- playlists
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PlaylistRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PlaylistRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PlaylistRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PlaylistRequest"
required: true
security:
- oauth2:
- write:playlists
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Playlist"
description: ""
/api/v1/playlists/{id}/remove/:
post:
operationId: remove_from_playlist_2
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this playlist.
required: true
tags:
- playlists
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PlaylistRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PlaylistRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PlaylistRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PlaylistRequest"
required: true
security:
- oauth2:
- write:playlists
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Playlist"
description: ""
delete:
operationId: remove_from_playlist
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this playlist.
required: true
tags:
- playlists
security:
- oauth2:
- write:playlists
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/playlists/{id}/tracks/:
get:
operationId: get_playlist_tracks
parameters:
- in: query
name: album
schema:
type: integer
- in: query
name: artist
schema:
type: integer
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this playlist.
required: true
- in: query
name: name
schema:
type: string
- in: query
name: name__icontains
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: track
schema:
type: integer
tags:
- playlists
security:
- oauth2:
- read:playlists
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedPlaylistTrackList"
description: ""
/api/v1/plugins/:
get:
operationId: get_plugins
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- plugins
security:
- oauth2:
- read:plugins
- ApplicationToken: []
responses:
"200":
description: No response body
post:
operationId: create_plugin
tags:
- plugins
security:
- oauth2:
- write:plugins
- 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:
- read:plugins
- ApplicationToken: []
responses:
"200":
description: No response body
/api/v1/plugins/{id}/disable/:
post:
operationId: disable_plugin
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this plugin configuration.
required: true
tags:
- plugins
security:
- oauth2:
- write:plugins
- ApplicationToken: []
responses:
"200":
description: No response body
/api/v1/plugins/{id}/enable/:
post:
operationId: enable_plugin
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this plugin configuration.
required: true
tags:
- plugins
security:
- oauth2:
- write:plugins
- 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:
- write:plugins
- ApplicationToken: []
responses:
"200":
description: No response body
/api/v1/radios/radios/:
get:
operationId: get_radios
parameters:
- in: query
name: name
schema:
type: string
- in: query
name: name__icontains
schema:
type: string
- in: query
name: name__iexact
schema:
type: string
- in: query
name: name__startswith
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
tags:
- radios
security:
- oauth2:
- read:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedRadioList"
description: ""
post:
operationId: create_radio
tags:
- radios
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RadioRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/RadioRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/RadioRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/RadioRequest"
required: true
security:
- oauth2:
- write:radios
- ApplicationToken: []
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Radio"
description: ""
/api/v1/radios/radios/{id}/:
get:
operationId: get_radio
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this radio.
required: true
tags:
- radios
security:
- oauth2:
- read:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Radio"
description: ""
put:
operationId: update_radio
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this radio.
required: true
tags:
- radios
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RadioRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/RadioRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/RadioRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/RadioRequest"
required: true
security:
- oauth2:
- write:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Radio"
description: ""
patch:
operationId: partial_update_radio
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this radio.
required: true
tags:
- radios
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedRadioRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedRadioRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedRadioRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedRadioRequest"
security:
- oauth2:
- write:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Radio"
description: ""
delete:
operationId: delete_radio
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this radio.
required: true
tags:
- radios
security:
- oauth2:
- write:radios
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/radios/radios/{id}/tracks/:
get:
operationId: get_radio_track
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this radio.
required: true
tags:
- radios
security:
- oauth2:
- read:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Track"
description: ""
/api/v1/radios/radios/filters/:
get:
operationId: get_radio_filter
tags:
- radios
security:
- oauth2:
- read:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Filter"
description: ""
/api/v1/radios/radios/validate/:
post:
operationId: validate_radio
tags:
- radios
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RadioRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/RadioRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/RadioRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/RadioRequest"
required: true
security:
- oauth2:
- write:radios
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Radio"
description: ""
/api/v1/radios/sessions/:
post:
operationId: create_radio_session
tags:
- radios
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RadioSessionRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/RadioSessionRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/RadioSessionRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/RadioSessionRequest"
required: true
security:
- 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:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/RadioSession"
description: ""
/api/v1/radios/tracks/:
post:
operationId: get_next_radio_track
tags:
- radios
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RadioSessionTrackSerializerCreateRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/RadioSessionTrackSerializerCreateRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/RadioSessionTrackSerializerCreateRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/RadioSessionTrackSerializerCreateRequest"
required: true
security:
- 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:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/RateLimit"
description: ""
/api/v1/search:
get:
operationId: get_search_results
tags:
- search
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/SearchResult"
description: ""
/api/v1/stream/{uuid}/:
get:
operationId: get_track_stream
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- stream
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
audio/mpeg:
schema:
type: string
format: binary
description: ""
/api/v1/subscriptions/:
get:
operationId: get_subscriptions
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- subscriptions
security:
- oauth2:
- read:libraries
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
description: ""
/api/v1/subscriptions/all/:
get:
operationId: get_all_subscriptions
description: |-
Return all the subscriptions of the current user, with only limited data
to have a performant endpoint and avoid lots of queries just to display
subscription status in the UI
tags:
- subscriptions
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AllSubscriptions"
description: ""
/api/v1/tags/:
get:
operationId: get_tags
parameters:
- in: query
name: name
schema:
type: string
- in: query
name: 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
* `name` - Name
* `-name` - Name (descending)
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `length` - Length
* `-length` - Length (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: q
schema:
type: string
tags:
- tags
security:
- oauth2:
- read:libraries
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Tag"
description: ""
/api/v1/text-preview/:
post:
operationId: preview_text
tags:
- text-preview
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/TextPreviewRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/TextPreviewRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/TextPreviewRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/TextPreviewRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/TextPreview"
description: ""
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorDetail"
description: ""
/api/v1/tracks/:
get:
operationId: get_tracks
description: A simple ViewSet for viewing and editing accounts.
parameters:
- in: query
name: album
schema:
type: integer
- in: query
name: artist
schema:
type: string
- in: query
name: channel
schema:
type: string
- in: query
name: 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
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `title` - Title
* `-title` - Title (descending)
* `album__title` - Album title
* `-album__title` - Album title (descending)
* `album__release_date` - Album release date
* `-album__release_date` - Album release date (descending)
* `size` - Size
* `-size` - Size (descending)
* `position` - Position
* `-position` - Position (descending)
* `disc_number` - Disc number
* `-disc_number` - Disc number (descending)
* `artist__name` - Artist name
* `-artist__name` - Artist name (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
- in: query
name: title
schema:
type: string
- in: query
name: title__icontains
schema:
type: string
- in: query
name: title__iexact
schema:
type: string
- in: query
name: title__startswith
schema:
type: string
tags:
- tracks
security:
- oauth2:
- read:libraries
- 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:
- read:libraries
- 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:
- write:libraries
- 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: 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
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `title` - Title
* `-title` - Title (descending)
* `album__title` - Album title
* `-album__title` - Album title (descending)
* `album__release_date` - Album release date
* `-album__release_date` - Album release date (descending)
* `size` - Size
* `-size` - Size (descending)
* `position` - Position
* `-position` - Position (descending)
* `disc_number` - Disc number
* `-disc_number` - Disc number (descending)
* `artist__name` - Artist name
* `-artist__name` - Artist name (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
- 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:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedFetchList"
description: ""
post:
operationId: create_track_fetch
description: A simple ViewSet for viewing and editing accounts.
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this track.
required: true
tags:
- tracks
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/TrackRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/TrackRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/TrackRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/TrackRequest"
required: true
security:
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Fetch"
description: ""
/api/v1/tracks/{id}/libraries/:
get:
operationId: get_track_libraries
description: A simple ViewSet for viewing and editing accounts.
parameters:
- in: query
name: album
schema:
type: integer
- in: query
name: artist
schema:
type: string
- in: query
name: channel
schema:
type: string
- in: query
name: hidden
schema:
type: boolean
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this track.
required: true
- in: query
name: include_channels
schema:
type: boolean
- in: query
name: library
schema:
type: string
- in: query
name: license
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -album__release_date
- -album__title
- -artist__modification_date
- -artist__name
- -creation_date
- -disc_number
- -position
- -random
- -related
- -size
- -title
- album__release_date
- album__title
- artist__modification_date
- artist__name
- creation_date
- disc_number
- position
- random
- related
- size
- title
description: |-
Ordering
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `title` - Title
* `-title` - Title (descending)
* `album__title` - Album title
* `-album__title` - Album title (descending)
* `album__release_date` - Album release date
* `-album__release_date` - Album release date (descending)
* `size` - Size
* `-size` - Size (descending)
* `position` - Position
* `-position` - Position (descending)
* `disc_number` - Disc number
* `-disc_number` - Disc number (descending)
* `artist__name` - Artist name
* `-artist__name` - Artist name (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
- in: query
name: title
schema:
type: string
- in: query
name: title__icontains
schema:
type: string
- in: query
name: title__iexact
schema:
type: string
- in: query
name: title__startswith
schema:
type: string
tags:
- tracks
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedLibraryList"
description: ""
/api/v1/tracks/{id}/mutations/:
get:
operationId: get_track_mutations
description: A simple ViewSet for viewing and editing accounts.
parameters:
- in: query
name: album
schema:
type: integer
- in: query
name: artist
schema:
type: string
- in: query
name: channel
schema:
type: string
- in: query
name: hidden
schema:
type: boolean
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this track.
required: true
- in: query
name: include_channels
schema:
type: boolean
- in: query
name: library
schema:
type: string
- in: query
name: license
schema:
type: string
- in: query
name: mbid
schema:
type: string
format: uuid
- in: query
name: ordering
schema:
type: array
items:
type: string
enum:
- -album__release_date
- -album__title
- -artist__modification_date
- -artist__name
- -creation_date
- -disc_number
- -position
- -random
- -related
- -size
- -title
- album__release_date
- album__title
- artist__modification_date
- artist__name
- creation_date
- disc_number
- position
- random
- related
- size
- title
description: |-
Ordering
* `creation_date` - Creation date
* `-creation_date` - Creation date (descending)
* `title` - Title
* `-title` - Title (descending)
* `album__title` - Album title
* `-album__title` - Album title (descending)
* `album__release_date` - Album release date
* `-album__release_date` - Album release date (descending)
* `size` - Size
* `-size` - Size (descending)
* `position` - Position
* `-position` - Position (descending)
* `disc_number` - Disc number
* `-disc_number` - Disc number (descending)
* `artist__name` - Artist name
* `-artist__name` - Artist name (descending)
* `artist__modification_date` - Artist modification date
* `-artist__modification_date` - Artist modification date (descending)
* `random` - Random
* `-random` - Random (descending)
* `related` - Related
* `-related` - Related (descending)
explode: false
style: form
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: related
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: tag
schema:
type: array
items:
type: string
explode: true
style: form
- in: query
name: title
schema:
type: string
- in: query
name: title__icontains
schema:
type: string
- in: query
name: title__iexact
schema:
type: string
- in: query
name: title__startswith
schema:
type: string
tags:
- tracks
security:
- oauth2:
- read:edits
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedAPIMutationList"
description: ""
post:
operationId: create_track_mutation
description: A simple ViewSet for viewing and editing accounts.
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this track.
required: true
tags:
- tracks
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/TrackRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/TrackRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/TrackRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/TrackRequest"
required: true
security:
- oauth2:
- write:edits
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/APIMutation"
description: ""
/api/v1/uploads/:
get:
operationId: get_uploads
parameters:
- in: query
name: album_artist
schema:
type: string
format: uuid
- in: query
name: channel
schema:
type: string
- in: query
name: import_reference
schema:
type: string
- in: query
name: import_status
schema:
type: array
items:
type: string
enum:
- draft
- errored
- finished
- pending
- skipped
description: |-
* `draft` - Draft
* `pending` - Pending
* `finished` - Finished
* `errored` - Errored
* `skipped` - Skipped
explode: true
style: form
- in: query
name: include_channels
schema:
type: boolean
- in: query
name: library
schema:
type: string
format: uuid
- in: query
name: mimetype
schema:
type: string
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: playable
schema:
type: boolean
- in: query
name: q
schema:
type: string
- in: query
name: scope
schema:
type: string
- in: query
name: track
schema:
type: string
format: uuid
- in: query
name: track_artist
schema:
type: string
format: uuid
tags:
- uploads
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PaginatedUploadForOwnerList"
description: ""
post:
operationId: create_upload
tags:
- uploads
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
required: true
security:
- oauth2:
- write:libraries
- 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:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UploadForOwner"
description: ""
put:
operationId: update_upload
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- uploads
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
required: true
security:
- oauth2:
- write:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UploadForOwner"
description: ""
patch:
operationId: partial_update_upload
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- uploads
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedUploadForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedUploadForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedUploadForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedUploadForOwnerRequest"
security:
- oauth2:
- write:libraries
- 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:
- write:libraries
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/uploads/{uuid}/audio-file-metadata/:
get:
operationId: get_upload_metadata
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- uploads
security:
- oauth2:
- read:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/TrackMetadata"
description: ""
/api/v1/uploads/action/:
post:
operationId: create_upload_action
description: |-
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
tags:
- uploads
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UploadForOwnerRequest"
required: true
security:
- oauth2:
- write:libraries
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UploadForOwner"
description: ""
/api/v1/users/{username}/:
put:
operationId: update_user
parameters:
- in: path
name: username
schema:
type: string
pattern: ^[a-zA-Z0-9-_.]+$
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
required: true
security:
- oauth2:
- write:profile
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserWrite"
description: ""
patch:
operationId: partial_update_user
parameters:
- in: path
name: username
schema:
type: string
pattern: ^[a-zA-Z0-9-_.]+$
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchedUserWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/PatchedUserWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/PatchedUserWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/PatchedUserWriteRequest"
security:
- oauth2:
- write:profile
- 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:
- read:security
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserWrite"
description: ""
post:
operationId: create_user_subsonic_token
parameters:
- in: path
name: username
schema:
type: string
pattern: ^[a-zA-Z0-9-_.]+$
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
required: true
security:
- oauth2:
- write:security
- 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:
- write:security
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/users/change-email/:
post:
operationId: change_email
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
required: true
security:
- oauth2:
- write:security
- ApplicationToken: []
responses:
"200":
description: No response body
"403":
description: No response body
/api/v1/users/me/:
get:
operationId: get_authenticated_user
description: Return information about the current user or delete it
tags:
- users
security:
- oauth2:
- read:profile
- 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:
- write:profile
- ApplicationToken: []
responses:
"204":
description: No response body
/api/v1/users/settings/:
post:
operationId: update_settings
description: Return information about the current user or delete it
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/x-www-form-urlencoded:
schema:
$ref: "#/components/schemas/UserWriteRequest"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserWriteRequest"
application/activity+json:
schema:
$ref: "#/components/schemas/UserWriteRequest"
required: true
security:
- oauth2:
- write:profile
- ApplicationToken: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UserWrite"
description: ""
components:
schemas:
APIActor:
type: object
properties:
fid:
type: string
format: uri
maxLength: 500
url:
type: string
format: uri
nullable: true
maxLength: 500
creation_date:
type: string
format: date-time
summary:
type: string
nullable: true
maxLength: 500
preferred_username:
type: string
nullable: true
maxLength: 200
name:
type: string
nullable: true
maxLength: 200
last_fetch_date:
type: string
format: date-time
domain:
type: string
type:
$ref: "#/components/schemas/FederationChoiceEnum"
manually_approves_followers:
type: boolean
nullable: true
full_username:
type: string
readOnly: true
is_local:
type: boolean
readOnly: true
required:
- domain
- fid
- full_username
- is_local
- preferred_username
APIActorRequest:
type: object
properties:
fid:
type: string
format: uri
minLength: 1
maxLength: 500
url:
type: string
format: uri
nullable: true
maxLength: 500
creation_date:
type: string
format: date-time
summary:
type: string
nullable: true
maxLength: 500
preferred_username:
type: string
nullable: true
maxLength: 200
name:
type: string
nullable: true
maxLength: 200
last_fetch_date:
type: string
format: date-time
domain:
type: string
minLength: 1
type:
$ref: "#/components/schemas/FederationChoiceEnum"
manually_approves_followers:
type: boolean
nullable: true
required:
- domain
- fid
- preferred_username
APIMutation:
type: object
properties:
fid:
type: string
format: uri
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
type:
type: string
maxLength: 100
creation_date:
type: string
format: date-time
readOnly: true
applied_date:
type: string
format: date-time
nullable: true
is_approved:
type: boolean
nullable: true
is_applied:
type: boolean
readOnly: true
nullable: true
created_by:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
approved_by:
type: integer
readOnly: true
nullable: true
summary:
type: string
nullable: true
maxLength: 2000
payload:
type: object
additionalProperties: {}
previous_state:
type: object
additionalProperties: {}
readOnly: true
nullable: true
target:
type: object
additionalProperties: {}
readOnly: true
required:
- approved_by
- created_by
- creation_date
- fid
- is_applied
- payload
- previous_state
- target
- type
- uuid
APIMutationRequest:
type: object
properties:
type:
type: string
minLength: 1
maxLength: 100
applied_date:
type: string
format: date-time
nullable: true
is_approved:
type: boolean
nullable: true
summary:
type: string
nullable: true
maxLength: 2000
payload:
type: object
additionalProperties: {}
required:
- payload
- type
Activity:
type: object
properties:
uuid:
type: string
format: uuid
fid:
type: string
format: uri
nullable: true
maxLength: 500
actor:
$ref: "#/components/schemas/APIActor"
payload:
type: object
additionalProperties: {}
object:
type: object
additionalProperties: {}
readOnly: true
nullable: true
target:
type: object
additionalProperties: {}
readOnly: true
nullable: true
related_object:
type: object
additionalProperties: {}
readOnly: true
creation_date:
type: string
format: date-time
type:
type: string
nullable: true
maxLength: 100
required:
- actor
- object
- related_object
- target
ActivityRequest:
type: object
properties:
uuid:
type: string
format: uuid
fid:
type: string
format: uri
nullable: true
maxLength: 500
actor:
$ref: "#/components/schemas/APIActorRequest"
payload:
type: object
additionalProperties: {}
creation_date:
type: string
format: date-time
type:
type: string
nullable: true
minLength: 1
maxLength: 100
required:
- actor
Album:
type: object
properties:
artist:
$ref: "#/components/schemas/SimpleArtist"
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
is_playable:
type: boolean
readOnly: true
tags:
type: array
items:
type: string
readOnly: true
tracks_count:
type: integer
readOnly: true
attributed_to:
$ref: "#/components/schemas/APIActor"
id:
type: integer
fid:
type: string
format: uri
mbid:
type: string
format: uuid
title:
type: string
release_date:
type: string
format: date
creation_date:
type: string
format: date-time
is_local:
type: boolean
duration:
type: integer
readOnly: true
required:
- artist
- attributed_to
- cover
- creation_date
- duration
- fid
- id
- is_local
- is_playable
- mbid
- release_date
- tags
- title
- tracks_count
AlbumCreate:
type: object
properties:
title:
type: string
maxLength: 255
release_date:
type: string
format: date
nullable: true
tags:
type: array
items:
type: string
minItems: 0
description:
allOf:
- $ref: "#/components/schemas/Content"
nullable: true
artist:
type: string
format: uuid
required:
- artist
- title
AlbumCreateRequest:
type: object
properties:
cover:
type: string
format: uuid
writeOnly: true
nullable: true
title:
type: string
minLength: 1
maxLength: 255
release_date:
type: string
format: date
nullable: true
tags:
type: array
items:
type: string
minLength: 1
minItems: 0
description:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
artist:
type: string
format: uuid
required:
- artist
- title
AlbumRequest:
type: object
properties:
artist:
$ref: "#/components/schemas/SimpleArtistRequest"
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
attributed_to:
$ref: "#/components/schemas/APIActorRequest"
id:
type: integer
fid:
type: string
format: uri
minLength: 1
mbid:
type: string
format: uuid
title:
type: string
minLength: 1
release_date:
type: string
format: date
creation_date:
type: string
format: date-time
is_local:
type: boolean
required:
- artist
- attributed_to
- cover
- creation_date
- fid
- id
- is_local
- mbid
- release_date
- title
AllFavorite:
type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/SimpleFavorite"
count:
type: integer
readOnly: true
required:
- count
- results
AllSubscriptions:
type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/InlineSubscription"
count:
type: integer
readOnly: true
required:
- count
- results
AllowListStat:
type: object
properties:
enabled:
type: boolean
domains:
type: array
items:
type: string
required:
- domains
- enabled
Application:
type: object
properties:
client_id:
type: string
maxLength: 100
name:
type: string
maxLength: 255
scopes:
type: string
created:
type: string
format: date-time
readOnly: true
updated:
type: string
format: date-time
readOnly: true
required:
- created
- scopes
- updated
ApplicationRequest:
type: object
properties:
client_id:
type: string
minLength: 1
maxLength: 100
name:
type: string
maxLength: 255
scopes:
type: string
minLength: 1
required:
- scopes
ArtistAlbum:
type: object
properties:
tracks_count:
type: integer
readOnly: true
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
is_playable:
type: boolean
readOnly: true
is_local:
type: boolean
id:
type: integer
fid:
type: string
format: uri
mbid:
type: string
format: uuid
title:
type: string
artist:
type: integer
readOnly: true
release_date:
type: string
format: date
creation_date:
type: string
format: date-time
required:
- artist
- cover
- creation_date
- fid
- id
- is_local
- is_playable
- mbid
- release_date
- title
- tracks_count
ArtistAlbumRequest:
type: object
properties:
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
is_local:
type: boolean
id:
type: integer
fid:
type: string
format: uri
minLength: 1
mbid:
type: string
format: uuid
title:
type: string
minLength: 1
release_date:
type: string
format: date
creation_date:
type: string
format: date-time
required:
- cover
- creation_date
- fid
- id
- is_local
- mbid
- release_date
- title
ArtistWithAlbums:
type: object
properties:
albums:
type: array
items:
$ref: "#/components/schemas/ArtistAlbum"
tags:
type: array
items:
type: string
readOnly: true
attributed_to:
allOf:
- $ref: "#/components/schemas/APIActor"
nullable: true
channel:
allOf:
- $ref: "#/components/schemas/ArtistWithAlbumsInlineChannel"
nullable: true
tracks_count:
type: integer
readOnly: true
id:
type: integer
fid:
type: string
format: uri
mbid:
type: string
format: uuid
name:
type: string
content_category:
type: string
creation_date:
type: string
format: date-time
is_local:
type: boolean
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
required:
- albums
- attributed_to
- channel
- content_category
- cover
- creation_date
- fid
- id
- is_local
- mbid
- name
- tags
- tracks_count
ArtistWithAlbumsInlineChannel:
type: object
properties:
uuid:
type: string
actor:
$ref: "#/components/schemas/InlineActor"
required:
- actor
- uuid
ArtistWithAlbumsInlineChannelRequest:
type: object
properties:
uuid:
type: string
minLength: 1
actor:
$ref: "#/components/schemas/InlineActorRequest"
required:
- actor
- uuid
ArtistWithAlbumsRequest:
type: object
properties:
albums:
type: array
items:
$ref: "#/components/schemas/ArtistAlbumRequest"
attributed_to:
allOf:
- $ref: "#/components/schemas/APIActorRequest"
nullable: true
channel:
allOf:
- $ref: "#/components/schemas/ArtistWithAlbumsInlineChannelRequest"
nullable: true
id:
type: integer
fid:
type: string
format: uri
minLength: 1
mbid:
type: string
format: uuid
name:
type: string
minLength: 1
content_category:
type: string
minLength: 1
creation_date:
type: string
format: date-time
is_local:
type: boolean
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
required:
- albums
- attributed_to
- channel
- content_category
- cover
- creation_date
- fid
- id
- is_local
- mbid
- name
Attachment:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
size:
type: integer
readOnly: true
mimetype:
type: string
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
urls:
type: object
additionalProperties: {}
readOnly: true
required:
- creation_date
- mimetype
- size
- urls
- uuid
AttachmentRequest:
type: object
properties:
file:
type: string
format: binary
writeOnly: true
required:
- file
Channel:
type: object
properties:
uuid:
type: string
format: uuid
artist:
$ref: "#/components/schemas/SimpleChannelArtist"
attributed_to:
$ref: "#/components/schemas/APIActor"
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
creation_date:
type: string
format: date-time
metadata:
type: object
additionalProperties: {}
rss_url:
type: string
url:
type: string
format: uri
readOnly: true
downloads_count:
type: integer
readOnly: true
required:
- actor
- artist
- attributed_to
- downloads_count
- rss_url
- url
ChannelCreate:
type: object
properties:
name:
type: string
maxLength: 200
username:
type: string
pattern: ^[\w]+$
maxLength: 200
description:
allOf:
- $ref: "#/components/schemas/Content"
nullable: true
tags:
type: array
items:
type: string
minItems: 0
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
metadata:
type: object
additionalProperties: {}
required:
- content_category
- description
- name
- tags
- username
ChannelCreateRequest:
type: object
properties:
cover:
type: string
format: uuid
writeOnly: true
nullable: true
name:
type: string
minLength: 1
maxLength: 200
username:
type: string
minLength: 1
pattern: ^[\w]+$
maxLength: 200
description:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
tags:
type: array
items:
type: string
minLength: 1
minItems: 0
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
metadata:
type: object
additionalProperties: {}
required:
- content_category
- description
- name
- tags
- username
ChannelRequest:
type: object
properties:
uuid:
type: string
format: uuid
artist:
$ref: "#/components/schemas/SimpleChannelArtistRequest"
attributed_to:
$ref: "#/components/schemas/APIActorRequest"
creation_date:
type: string
format: date-time
metadata:
type: object
additionalProperties: {}
rss_url:
type: string
minLength: 1
required:
- artist
- attributed_to
- rss_url
ChannelUpdate:
type: object
properties:
name:
type: string
maxLength: 200
description:
allOf:
- $ref: "#/components/schemas/Content"
nullable: true
tags:
type: array
items:
type: string
minItems: 0
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
metadata:
type: object
additionalProperties: {}
required:
- content_category
- description
- name
- tags
ChannelUpdateRequest:
type: object
properties:
cover:
type: string
format: uuid
writeOnly: true
nullable: true
name:
type: string
minLength: 1
maxLength: 200
description:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
tags:
type: array
items:
type: string
minLength: 1
minItems: 0
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
metadata:
type: object
additionalProperties: {}
required:
- content_category
- description
- name
- tags
Content:
type: object
properties:
text:
type: string
nullable: true
maxLength: 5000
content_type:
$ref: "#/components/schemas/ContentTypeEnum"
html:
type: string
readOnly: true
required:
- content_type
- html
- text
ContentCategoryEnum:
enum:
- music
- podcast
- other
type: string
description: |-
* `music` - music
* `podcast` - podcast
* `other` - other
ContentRequest:
type: object
properties:
text:
type: string
nullable: true
minLength: 1
maxLength: 5000
content_type:
$ref: "#/components/schemas/ContentTypeEnum"
required:
- content_type
- text
ContentTypeEnum:
enum:
- text/html
- text/markdown
- text/plain
type: string
description: |-
* `text/html` - text/html
* `text/markdown` - text/markdown
* `text/plain` - text/plain
CoverField:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
size:
type: integer
readOnly: true
mimetype:
type: string
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
urls:
type: object
additionalProperties: {}
readOnly: true
required:
- creation_date
- mimetype
- size
- urls
- uuid
CoverFieldRequest:
type: object
properties:
file:
type: string
format: binary
writeOnly: true
required:
- file
CreateApplication:
type: object
properties:
client_id:
type: string
readOnly: true
name:
type: string
maxLength: 255
scopes:
type: string
default: read
client_secret:
type: string
description: Hashed on Save. Copy it now if this is a new secret.
maxLength: 255
created:
type: string
format: date-time
readOnly: true
updated:
type: string
format: date-time
readOnly: true
redirect_uris:
type: string
description: Allowed URIs list, space separated
required:
- client_id
- created
- name
- updated
CreateApplicationRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 255
scopes:
type: string
minLength: 1
default: read
client_secret:
type: string
description: Hashed on Save. Copy it now if this is a new secret.
maxLength: 255
redirect_uris:
type: string
description: Allowed URIs list, space separated
required:
- name
Domain:
type: object
properties:
name:
type: string
required:
- name
Endpoints:
type: object
properties:
knownNodes:
type: string
format: uri
channels:
type: string
format: uri
libraries:
type: string
format: uri
ErrorDetail:
type: object
properties:
detail:
type: string
required:
- detail
FederationChoiceEnum:
enum:
- Person
- Tombstone
- Application
- Group
- Organization
- Service
type: string
description: |-
* `Person` - Person
* `Tombstone` - Tombstone
* `Application` - Application
* `Group` - Group
* `Organization` - Organization
* `Service` - Service
Fetch:
type: object
properties:
id:
type: integer
readOnly: true
url:
type: string
format: uri
readOnly: true
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
status:
allOf:
- $ref: "#/components/schemas/FetchStatusEnum"
readOnly: true
detail:
type: object
additionalProperties: {}
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
fetch_date:
type: string
format: date-time
readOnly: true
nullable: true
required:
- actor
- creation_date
- detail
- fetch_date
- id
- status
- url
FetchRequest:
type: object
properties:
object:
type: string
writeOnly: true
minLength: 1
force:
type: boolean
writeOnly: true
default: false
required:
- object
FetchStatusEnum:
enum:
- pending
- errored
- finished
- skipped
type: string
description: |-
* `pending` - Pending
* `errored` - Errored
* `finished` - Finished
* `skipped` - Skipped
Filter:
type: object
properties:
type:
type: string
label:
type: string
help_text:
type: string
fields:
type: string
readOnly: true
required:
- fields
- help_text
- label
- type
FormatEnum:
enum:
- json
type: string
description: "* `json` - json"
FullActor:
type: object
properties:
fid:
type: string
format: uri
url:
type: string
format: uri
domain:
type: string
creation_date:
type: string
format: date-time
last_fetch_date:
type: string
format: date-time
name:
type: string
preferred_username:
type: string
full_username:
type: string
type:
type: string
is_local:
type: boolean
is_channel:
type: boolean
readOnly: true
manually_approves_followers:
type: boolean
user:
$ref: "#/components/schemas/UserBasic"
summary:
$ref: "#/components/schemas/Content"
icon:
$ref: "#/components/schemas/Attachment"
required:
- creation_date
- domain
- fid
- full_username
- icon
- is_channel
- is_local
- last_fetch_date
- manually_approves_followers
- name
- preferred_username
- summary
- type
- url
- user
GlobalPreference:
type: object
properties:
section:
type: string
readOnly: true
name:
type: string
readOnly: true
identifier:
type: string
readOnly: true
default:
type: string
description: |-
Return the default value to use when validating data if no input
is provided for this field.
If a default has not been set for this field then this will simply
raise `SkipField`, indicating that no value should be set in the
validated data for this field.
readOnly: true
value:
type: string
verbose_name:
type: string
readOnly: true
help_text:
type: string
readOnly: true
additional_data:
type: object
additionalProperties: {}
readOnly: true
field:
type: object
additionalProperties: {}
readOnly: true
required:
- additional_data
- default
- field
- help_text
- identifier
- name
- section
- value
- verbose_name
GlobalPreferenceRequest:
type: object
properties:
value:
type: string
required:
- value
Ident:
type: object
properties:
type:
type: string
id:
type: string
required:
- id
- type
ImportStatusEnum:
enum:
- draft
- pending
- finished
- errored
- skipped
type: string
description: |-
* `draft` - Draft
* `pending` - Pending
* `finished` - Finished
* `errored` - Errored
* `skipped` - Skipped
InboxItem:
type: object
properties:
id:
type: integer
readOnly: true
type:
allOf:
- $ref: "#/components/schemas/InboxItemTypeEnum"
readOnly: true
activity:
$ref: "#/components/schemas/Activity"
is_read:
type: boolean
required:
- activity
- id
- type
InboxItemRequest:
type: object
properties:
activity:
$ref: "#/components/schemas/ActivityRequest"
is_read:
type: boolean
required:
- activity
InboxItemTypeEnum:
enum:
- to
- cc
type: string
description: |-
* `to` - to
* `cc` - cc
InlineActor:
type: object
properties:
full_username:
type: string
preferred_username:
type: string
domain:
type: string
required:
- domain
- full_username
- preferred_username
InlineActorRequest:
type: object
properties:
full_username:
type: string
minLength: 1
preferred_username:
type: string
minLength: 1
domain:
type: string
minLength: 1
required:
- domain
- full_username
- preferred_username
InlineSubscription:
type: object
properties:
uuid:
type: string
format: uuid
channel:
type: string
format: uuid
required:
- channel
- uuid
Library:
type: object
properties:
fid:
type: string
format: uri
maxLength: 500
uuid:
type: string
format: uuid
actor:
$ref: "#/components/schemas/APIActor"
name:
type: string
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
creation_date:
type: string
format: date-time
uploads_count:
type: integer
readOnly: true
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
follow:
allOf:
- $ref: "#/components/schemas/NestedLibraryFollow"
nullable: true
latest_scan:
allOf:
- $ref: "#/components/schemas/LibraryScan"
nullable: true
required:
- actor
- fid
- name
- uploads_count
LibraryFollow:
type: object
properties:
creation_date:
type: string
format: date-time
readOnly: true
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
target:
$ref: "#/components/schemas/Library"
approved:
type: boolean
readOnly: true
nullable: true
required:
- actor
- approved
- creation_date
- target
- uuid
LibraryFollowRequest:
type: object
properties:
target:
type: string
format: uuid
required:
- target
LibraryForOwner:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
fid:
type: string
format: uri
readOnly: true
name:
type: string
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
uploads_count:
type: integer
readOnly: true
size:
type: integer
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
required:
- actor
- creation_date
- fid
- name
- size
- uploads_count
- uuid
LibraryForOwnerRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
required:
- name
LibraryPrivacyLevelEnum:
enum:
- me
- instance
- everyone
type: string
description: |-
* `me` - Only me
* `instance` - Everyone on my instance, and my followers
* `everyone` - Everyone, including people on other instances
LibraryRequest:
type: object
properties:
fid:
type: string
format: uri
minLength: 1
maxLength: 500
uuid:
type: string
format: uuid
actor:
$ref: "#/components/schemas/APIActorRequest"
name:
type: string
minLength: 1
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
creation_date:
type: string
format: date-time
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
follow:
allOf:
- $ref: "#/components/schemas/NestedLibraryFollowRequest"
nullable: true
latest_scan:
allOf:
- $ref: "#/components/schemas/LibraryScanRequest"
nullable: true
required:
- actor
- fid
- name
LibraryScan:
type: object
properties:
total_files:
type: integer
maximum: 2147483647
minimum: 0
processed_files:
type: integer
maximum: 2147483647
minimum: 0
errored_files:
type: integer
maximum: 2147483647
minimum: 0
status:
type: string
maxLength: 25
creation_date:
type: string
format: date-time
modification_date:
type: string
format: date-time
nullable: true
LibraryScanRequest:
type: object
properties:
total_files:
type: integer
maximum: 2147483647
minimum: 0
processed_files:
type: integer
maximum: 2147483647
minimum: 0
errored_files:
type: integer
maximum: 2147483647
minimum: 0
status:
type: string
minLength: 1
maxLength: 25
creation_date:
type: string
format: date-time
modification_date:
type: string
format: date-time
nullable: true
License:
type: object
properties:
id:
type: string
readOnly: true
url:
type: string
format: uri
code:
type: string
name:
type: string
redistribute:
type: boolean
derivative:
type: boolean
commercial:
type: boolean
attribution:
type: boolean
copyleft:
type: boolean
required:
- attribution
- code
- commercial
- copyleft
- derivative
- id
- name
- redistribute
- url
Listening:
type: object
properties:
id:
type: integer
readOnly: true
user:
allOf:
- $ref: "#/components/schemas/UserBasic"
readOnly: true
track:
allOf:
- $ref: "#/components/schemas/Track"
readOnly: true
creation_date:
type: string
format: date-time
nullable: true
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
required:
- actor
- id
- track
- user
ListeningWrite:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: integer
nullable: true
track:
type: integer
creation_date:
type: string
format: date-time
nullable: true
required:
- id
- track
ListeningWriteRequest:
type: object
properties:
user:
type: integer
nullable: true
track:
type: integer
creation_date:
type: string
format: date-time
nullable: true
required:
- track
ManageActor:
type: object
properties:
id:
type: integer
readOnly: true
url:
type: string
format: uri
nullable: true
maxLength: 500
fid:
type: string
format: uri
maxLength: 500
preferred_username:
type: string
nullable: true
maxLength: 200
full_username:
type: string
readOnly: true
domain:
type: string
name:
type: string
nullable: true
maxLength: 200
summary:
type: string
nullable: true
maxLength: 500
type:
$ref: "#/components/schemas/FederationChoiceEnum"
creation_date:
type: string
format: date-time
readOnly: true
last_fetch_date:
type: string
format: date-time
inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
outbox_url:
type: string
format: uri
nullable: true
maxLength: 500
shared_inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
manually_approves_followers:
type: boolean
nullable: true
is_local:
type: boolean
readOnly: true
uploads_count:
type: integer
readOnly: true
user:
allOf:
- $ref: "#/components/schemas/ManageUser"
nullable: true
instance_policy:
type: integer
readOnly: true
required:
- creation_date
- domain
- fid
- full_username
- id
- instance_policy
- is_local
- preferred_username
- uploads_count
- user
ManageActorRequest:
type: object
properties:
url:
type: string
format: uri
nullable: true
maxLength: 500
fid:
type: string
format: uri
minLength: 1
maxLength: 500
preferred_username:
type: string
nullable: true
maxLength: 200
domain:
type: string
minLength: 1
name:
type: string
nullable: true
maxLength: 200
summary:
type: string
nullable: true
maxLength: 500
type:
$ref: "#/components/schemas/FederationChoiceEnum"
last_fetch_date:
type: string
format: date-time
inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
outbox_url:
type: string
format: uri
nullable: true
maxLength: 500
shared_inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
manually_approves_followers:
type: boolean
nullable: true
user:
allOf:
- $ref: "#/components/schemas/ManageUserRequest"
nullable: true
required:
- domain
- fid
- preferred_username
- user
ManageAlbum:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
creation_date:
type: string
format: date-time
release_date:
type: string
format: date
nullable: true
cover:
$ref: "#/components/schemas/CoverField"
domain:
type: string
is_local:
type: boolean
readOnly: true
tracks_count:
type: integer
readOnly: true
artist:
$ref: "#/components/schemas/ManageNestedArtist"
attributed_to:
$ref: "#/components/schemas/ManageBaseActor"
tags:
type: array
items:
type: string
readOnly: true
required:
- artist
- attributed_to
- cover
- domain
- id
- is_local
- tags
- title
- tracks_count
ManageAlbumRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
minLength: 1
creation_date:
type: string
format: date-time
release_date:
type: string
format: date
nullable: true
cover:
$ref: "#/components/schemas/CoverFieldRequest"
domain:
type: string
minLength: 1
artist:
$ref: "#/components/schemas/ManageNestedArtistRequest"
attributed_to:
$ref: "#/components/schemas/ManageBaseActorRequest"
required:
- artist
- attributed_to
- cover
- domain
- title
ManageArtist:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
name:
type: string
creation_date:
type: string
format: date-time
domain:
type: string
is_local:
type: boolean
readOnly: true
tracks_count:
type: integer
readOnly: true
albums_count:
type: integer
readOnly: true
attributed_to:
$ref: "#/components/schemas/ManageBaseActor"
tags:
type: array
items:
type: string
readOnly: true
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
channel:
type: string
readOnly: true
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
required:
- albums_count
- attributed_to
- channel
- cover
- domain
- id
- is_local
- name
- tags
- tracks_count
ManageArtistRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
name:
type: string
minLength: 1
creation_date:
type: string
format: date-time
domain:
type: string
minLength: 1
attributed_to:
$ref: "#/components/schemas/ManageBaseActorRequest"
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
required:
- attributed_to
- cover
- domain
- name
ManageBaseActor:
type: object
properties:
id:
type: integer
readOnly: true
url:
type: string
format: uri
nullable: true
maxLength: 500
fid:
type: string
format: uri
maxLength: 500
preferred_username:
type: string
nullable: true
maxLength: 200
full_username:
type: string
readOnly: true
domain:
type: string
name:
type: string
nullable: true
maxLength: 200
summary:
type: string
nullable: true
maxLength: 500
type:
$ref: "#/components/schemas/FederationChoiceEnum"
creation_date:
type: string
format: date-time
readOnly: true
last_fetch_date:
type: string
format: date-time
inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
outbox_url:
type: string
format: uri
nullable: true
maxLength: 500
shared_inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
manually_approves_followers:
type: boolean
nullable: true
is_local:
type: boolean
readOnly: true
required:
- creation_date
- domain
- fid
- full_username
- id
- is_local
- preferred_username
ManageBaseActorRequest:
type: object
properties:
url:
type: string
format: uri
nullable: true
maxLength: 500
fid:
type: string
format: uri
minLength: 1
maxLength: 500
preferred_username:
type: string
nullable: true
maxLength: 200
domain:
type: string
minLength: 1
name:
type: string
nullable: true
maxLength: 200
summary:
type: string
nullable: true
maxLength: 500
type:
$ref: "#/components/schemas/FederationChoiceEnum"
last_fetch_date:
type: string
format: date-time
inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
outbox_url:
type: string
format: uri
nullable: true
maxLength: 500
shared_inbox_url:
type: string
format: uri
nullable: true
maxLength: 500
manually_approves_followers:
type: boolean
nullable: true
required:
- domain
- fid
- preferred_username
ManageBaseNote:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
summary:
type: string
maxLength: 50000
author:
allOf:
- $ref: "#/components/schemas/ManageBaseActor"
readOnly: true
required:
- author
- creation_date
- id
- summary
- uuid
ManageBaseNoteRequest:
type: object
properties:
summary:
type: string
minLength: 1
maxLength: 50000
required:
- summary
ManageChannel:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
artist:
$ref: "#/components/schemas/ManageArtist"
attributed_to:
$ref: "#/components/schemas/ManageBaseActor"
actor:
$ref: "#/components/schemas/ManageBaseActor"
rss_url:
type: string
format: uri
readOnly: true
nullable: true
metadata:
type: object
additionalProperties: {}
readOnly: true
required:
- actor
- artist
- attributed_to
- creation_date
- id
- metadata
- rss_url
- uuid
ManageDomain:
type: object
properties:
name:
type: string
format: uri
maxLength: 255
creation_date:
type: string
format: date-time
readOnly: true
actors_count:
type: integer
readOnly: true
outbox_activities_count:
type: integer
readOnly: true
nodeinfo:
type: object
additionalProperties: {}
readOnly: true
nodeinfo_fetch_date:
type: string
format: date-time
readOnly: true
nullable: true
instance_policy:
type: integer
readOnly: true
allowed:
type: boolean
nullable: true
required:
- actors_count
- creation_date
- instance_policy
- name
- nodeinfo
- nodeinfo_fetch_date
- outbox_activities_count
ManageDomainRequest:
type: object
properties:
name:
type: string
minLength: 1
format: uri
maxLength: 255
allowed:
type: boolean
nullable: true
required:
- name
ManageDomainUpdate:
type: object
properties:
name:
type: string
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
actors_count:
type: integer
readOnly: true
outbox_activities_count:
type: integer
readOnly: true
nodeinfo:
type: object
additionalProperties: {}
readOnly: true
nodeinfo_fetch_date:
type: string
format: date-time
readOnly: true
nullable: true
instance_policy:
type: integer
readOnly: true
allowed:
type: boolean
nullable: true
required:
- actors_count
- creation_date
- instance_policy
- name
- nodeinfo
- nodeinfo_fetch_date
- outbox_activities_count
ManageDomainUpdateRequest:
type: object
properties:
allowed:
type: boolean
nullable: true
ManageInstancePolicy:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
target:
$ref: "#/components/schemas/ManageTarget"
creation_date:
type: string
format: date-time
readOnly: true
actor:
type: string
format: email
readOnly: true
summary:
type: string
nullable: true
maxLength: 10000
is_active:
type: boolean
block_all:
type: boolean
silence_activity:
type: boolean
silence_notifications:
type: boolean
reject_media:
type: boolean
required:
- actor
- creation_date
- id
- target
- uuid
ManageInstancePolicyRequest:
type: object
properties:
target:
$ref: "#/components/schemas/ManageTargetRequest"
summary:
type: string
nullable: true
maxLength: 10000
is_active:
type: boolean
block_all:
type: boolean
silence_activity:
type: boolean
silence_notifications:
type: boolean
reject_media:
type: boolean
required:
- target
ManageInvitation:
type: object
properties:
id:
type: integer
readOnly: true
owner:
$ref: "#/components/schemas/ManageUserSimple"
invited_user:
$ref: "#/components/schemas/ManageUserSimple"
code:
type: string
nullable: true
expiration_date:
type: string
format: date-time
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
users:
type: array
items:
$ref: "#/components/schemas/ManageUserSimple"
required:
- creation_date
- expiration_date
- id
ManageInvitationRequest:
type: object
properties:
owner:
$ref: "#/components/schemas/ManageUserSimpleRequest"
invited_user:
$ref: "#/components/schemas/ManageUserSimpleRequest"
code:
type: string
nullable: true
minLength: 1
users:
type: array
items:
$ref: "#/components/schemas/ManageUserSimpleRequest"
ManageLibrary:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
fid:
type: string
format: uri
readOnly: true
url:
type: string
format: uri
readOnly: true
nullable: true
name:
type: string
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
domain:
type: string
is_local:
type: boolean
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
uploads_count:
type: integer
readOnly: true
followers_count:
type: integer
readOnly: true
followers_url:
type: string
format: uri
maxLength: 500
actor:
$ref: "#/components/schemas/ManageBaseActor"
required:
- actor
- creation_date
- domain
- fid
- followers_count
- followers_url
- id
- is_local
- name
- uploads_count
- url
- uuid
ManageLibraryRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
domain:
type: string
minLength: 1
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
followers_url:
type: string
format: uri
minLength: 1
maxLength: 500
actor:
$ref: "#/components/schemas/ManageBaseActorRequest"
required:
- actor
- domain
- followers_url
- name
ManageNestedArtist:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
name:
type: string
creation_date:
type: string
format: date-time
domain:
type: string
is_local:
type: boolean
readOnly: true
required:
- domain
- id
- is_local
- name
ManageNestedArtistRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
name:
type: string
minLength: 1
creation_date:
type: string
format: date-time
domain:
type: string
minLength: 1
required:
- domain
- name
ManageNestedLibrary:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
fid:
type: string
format: uri
maxLength: 500
url:
type: string
format: uri
nullable: true
maxLength: 500
name:
type: string
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
domain:
type: string
is_local:
type: boolean
readOnly: true
creation_date:
type: string
format: date-time
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
followers_url:
type: string
format: uri
maxLength: 500
actor:
$ref: "#/components/schemas/ManageBaseActor"
required:
- actor
- domain
- fid
- followers_url
- id
- is_local
- name
ManageNestedLibraryRequest:
type: object
properties:
uuid:
type: string
format: uuid
fid:
type: string
format: uri
minLength: 1
maxLength: 500
url:
type: string
format: uri
nullable: true
maxLength: 500
name:
type: string
minLength: 1
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
domain:
type: string
minLength: 1
creation_date:
type: string
format: date-time
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
followers_url:
type: string
format: uri
minLength: 1
maxLength: 500
actor:
$ref: "#/components/schemas/ManageBaseActorRequest"
required:
- actor
- domain
- fid
- followers_url
- name
ManageNestedTrack:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
creation_date:
type: string
format: date-time
position:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
disc_number:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
domain:
type: string
is_local:
type: boolean
readOnly: true
copyright:
type: string
nullable: true
license:
type: string
nullable: true
required:
- domain
- id
- is_local
- title
ManageNestedTrackRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
minLength: 1
creation_date:
type: string
format: date-time
position:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
disc_number:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
domain:
type: string
minLength: 1
copyright:
type: string
nullable: true
license:
type: string
minLength: 1
nullable: true
required:
- domain
- title
ManageNote:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
summary:
type: string
maxLength: 50000
author:
allOf:
- $ref: "#/components/schemas/ManageBaseActor"
readOnly: true
target:
type: object
additionalProperties: {}
required:
- author
- creation_date
- id
- summary
- target
- uuid
ManageNoteRequest:
type: object
properties:
summary:
type: string
minLength: 1
maxLength: 50000
target:
type: object
additionalProperties: {}
required:
- summary
- target
ManageReport:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
fid:
type: string
format: uri
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
handled_date:
type: string
format: date-time
readOnly: true
nullable: true
summary:
type: string
readOnly: true
nullable: true
type:
$ref: "#/components/schemas/ReportTypeEnum"
target:
type: object
additionalProperties: {}
target_state:
type: object
additionalProperties: {}
readOnly: true
nullable: true
is_handled:
type: boolean
assigned_to:
allOf:
- $ref: "#/components/schemas/ManageBaseActor"
nullable: true
target_owner:
$ref: "#/components/schemas/ManageBaseActor"
submitter:
$ref: "#/components/schemas/ManageBaseActor"
submitter_email:
type: string
format: email
readOnly: true
nullable: true
notes:
type: array
items:
$ref: "#/components/schemas/ManageBaseNote"
nullable: true
default: []
required:
- creation_date
- fid
- handled_date
- id
- submitter_email
- summary
- target
- target_state
- type
- uuid
ManageReportRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ReportTypeEnum"
target:
type: object
additionalProperties: {}
is_handled:
type: boolean
assigned_to:
allOf:
- $ref: "#/components/schemas/ManageBaseActorRequest"
nullable: true
target_owner:
$ref: "#/components/schemas/ManageBaseActorRequest"
submitter:
$ref: "#/components/schemas/ManageBaseActorRequest"
notes:
type: array
items:
$ref: "#/components/schemas/ManageBaseNoteRequest"
nullable: true
default: []
required:
- target
- type
ManageTag:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 100
creation_date:
type: string
format: date-time
tracks_count:
type: integer
readOnly: true
albums_count:
type: integer
readOnly: true
artists_count:
type: integer
readOnly: true
required:
- albums_count
- artists_count
- id
- name
- tracks_count
ManageTagRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
creation_date:
type: string
format: date-time
required:
- name
ManageTarget:
type: object
properties:
type:
$ref: "#/components/schemas/ManageTargetTypeEnum"
id:
type: string
required:
- id
- type
ManageTargetRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ManageTargetTypeEnum"
id:
type: string
minLength: 1
required:
- id
- type
ManageTargetTypeEnum:
enum:
- domain
- actor
type: string
description: |-
* `domain` - domain
* `actor` - actor
ManageTrack:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
creation_date:
type: string
format: date-time
position:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
disc_number:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
domain:
type: string
is_local:
type: boolean
readOnly: true
copyright:
type: string
nullable: true
license:
type: string
nullable: true
artist:
$ref: "#/components/schemas/ManageNestedArtist"
album:
allOf:
- $ref: "#/components/schemas/ManageTrackAlbum"
nullable: true
attributed_to:
allOf:
- $ref: "#/components/schemas/ManageBaseActor"
nullable: true
uploads_count:
type: integer
readOnly: true
tags:
type: array
items:
type: string
readOnly: true
cover:
$ref: "#/components/schemas/CoverField"
required:
- album
- artist
- attributed_to
- cover
- domain
- id
- is_local
- tags
- title
- uploads_count
ManageTrackAlbum:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
creation_date:
type: string
format: date-time
release_date:
type: string
format: date
nullable: true
cover:
$ref: "#/components/schemas/CoverField"
domain:
type: string
is_local:
type: boolean
readOnly: true
tracks_count:
type: integer
readOnly: true
artist:
$ref: "#/components/schemas/ManageNestedArtist"
required:
- artist
- cover
- domain
- id
- is_local
- title
- tracks_count
ManageTrackAlbumRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
minLength: 1
creation_date:
type: string
format: date-time
release_date:
type: string
format: date
nullable: true
cover:
$ref: "#/components/schemas/CoverFieldRequest"
domain:
type: string
minLength: 1
artist:
$ref: "#/components/schemas/ManageNestedArtistRequest"
required:
- artist
- cover
- domain
- title
ManageTrackRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
minLength: 1
creation_date:
type: string
format: date-time
position:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
disc_number:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
domain:
type: string
minLength: 1
copyright:
type: string
nullable: true
license:
type: string
minLength: 1
nullable: true
artist:
$ref: "#/components/schemas/ManageNestedArtistRequest"
album:
allOf:
- $ref: "#/components/schemas/ManageTrackAlbumRequest"
nullable: true
attributed_to:
allOf:
- $ref: "#/components/schemas/ManageBaseActorRequest"
nullable: true
cover:
$ref: "#/components/schemas/CoverFieldRequest"
required:
- album
- artist
- attributed_to
- cover
- domain
- title
ManageUpload:
type: object
properties:
id:
type: integer
readOnly: true
uuid:
type: string
format: uuid
fid:
type: string
format: uri
nullable: true
maxLength: 500
domain:
type: string
is_local:
type: boolean
readOnly: true
audio_file:
type: string
format: uri
listen_url:
type: string
readOnly: true
source:
type: string
nullable: true
maxLength: 500
filename:
type: string
readOnly: true
mimetype:
type: string
nullable: true
maxLength: 200
duration:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: true
bitrate:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: true
size:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: true
creation_date:
type: string
format: date-time
accessed_date:
type: string
format: date-time
nullable: true
modification_date:
type: string
format: date-time
nullable: true
metadata:
type: object
additionalProperties: {}
import_date:
type: string
format: date-time
nullable: true
import_details:
type: object
additionalProperties: {}
import_status:
$ref: "#/components/schemas/ImportStatusEnum"
import_metadata:
type: object
additionalProperties: {}
import_reference:
type: string
maxLength: 50
track:
$ref: "#/components/schemas/ManageNestedTrack"
library:
$ref: "#/components/schemas/ManageNestedLibrary"
required:
- audio_file
- domain
- filename
- id
- is_local
- library
- listen_url
- track
ManageUploadRequest:
type: object
properties:
uuid:
type: string
format: uuid
fid:
type: string
format: uri
nullable: true
maxLength: 500
domain:
type: string
minLength: 1
audio_file:
type: string
format: binary
source:
type: string
nullable: true
maxLength: 500
mimetype:
type: string
nullable: true
maxLength: 200
duration:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: true
bitrate:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: true
size:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: true
creation_date:
type: string
format: date-time
accessed_date:
type: string
format: date-time
nullable: true
modification_date:
type: string
format: date-time
nullable: true
metadata:
type: object
additionalProperties: {}
import_date:
type: string
format: date-time
nullable: true
import_details:
type: object
additionalProperties: {}
import_status:
$ref: "#/components/schemas/ImportStatusEnum"
import_metadata:
type: object
additionalProperties: {}
import_reference:
type: string
minLength: 1
maxLength: 50
track:
$ref: "#/components/schemas/ManageNestedTrackRequest"
library:
$ref: "#/components/schemas/ManageNestedLibraryRequest"
required:
- audio_file
- domain
- library
- track
ManageUser:
type: object
properties:
id:
type: integer
readOnly: true
username:
type: string
readOnly: true
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
actor:
type: object
additionalProperties: {}
readOnly: true
email:
type: string
format: email
readOnly: true
title: Email address
name:
type: string
title: Name of User
maxLength: 255
is_active:
type: boolean
title: Active
description:
Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
is_staff:
type: boolean
title: Staff status
description: Designates whether the user can log into this admin site.
is_superuser:
type: boolean
title: Superuser status
description:
Designates that this user has all permissions without explicitly
assigning them.
date_joined:
type: string
format: date-time
readOnly: true
last_activity:
type: string
format: date-time
readOnly: true
nullable: true
privacy_level:
allOf:
- $ref: "#/components/schemas/PrivacyLevelEnum"
readOnly: true
upload_quota:
type: integer
nullable: true
full_username:
type: string
readOnly: true
required:
- actor
- date_joined
- email
- full_username
- id
- last_activity
- privacy_level
- username
ManageUserRequest:
type: object
properties:
name:
type: string
title: Name of User
maxLength: 255
is_active:
type: boolean
title: Active
description:
Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
is_staff:
type: boolean
title: Staff status
description: Designates whether the user can log into this admin site.
is_superuser:
type: boolean
title: Superuser status
description:
Designates that this user has all permissions without explicitly
assigning them.
upload_quota:
type: integer
nullable: true
ManageUserRequestRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ManageUserRequestTypeEnum"
status:
$ref: "#/components/schemas/ManageUserRequestStatusEnum"
assigned_to:
$ref: "#/components/schemas/ManageBaseActorRequest"
submitter:
$ref: "#/components/schemas/ManageBaseActorRequest"
required:
- assigned_to
- submitter
- type
ManageUserRequestStatusEnum:
enum:
- pending
- refused
- approved
type: string
description: |-
* `pending` - Pending
* `refused` - Refused
* `approved` - Approved
ManageUserRequestTypeEnum:
enum:
- signup
type: string
description: "* `signup` - Sign-up"
ManageUserSimple:
type: object
properties:
id:
type: integer
readOnly: true
username:
type: string
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
name:
type: string
title: Name of User
maxLength: 255
is_active:
type: boolean
title: Active
description:
Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
is_staff:
type: boolean
title: Staff status
description: Designates whether the user can log into this admin site.
is_superuser:
type: boolean
title: Superuser status
description:
Designates that this user has all permissions without explicitly
assigning them.
date_joined:
type: string
format: date-time
last_activity:
type: string
format: date-time
nullable: true
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
upload_quota:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
required:
- id
- username
ManageUserSimpleRequest:
type: object
properties:
username:
type: string
minLength: 1
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
name:
type: string
title: Name of User
maxLength: 255
is_active:
type: boolean
title: Active
description:
Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
is_staff:
type: boolean
title: Staff status
description: Designates whether the user can log into this admin site.
is_superuser:
type: boolean
title: Superuser status
description:
Designates that this user has all permissions without explicitly
assigning them.
date_joined:
type: string
format: date-time
last_activity:
type: string
format: date-time
nullable: true
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
upload_quota:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
required:
- username
Metadata20:
type: object
properties:
actorId:
type: string
private:
type: boolean
readOnly: true
shortDescription:
type: string
readOnly: true
longDescription:
type: string
readOnly: true
contactEmail:
type: string
readOnly: true
nodeName:
type: string
readOnly: true
banner:
type: string
readOnly: true
defaultUploadQuota:
type: integer
readOnly: true
supportedUploadExtensions:
type: array
items:
type: string
allowList:
allOf:
- $ref: "#/components/schemas/AllowListStat"
readOnly: true
funkwhaleSupportMessageEnabled:
type: boolean
readOnly: true
instanceSupportMessage:
type: string
readOnly: true
usage:
$ref: "#/components/schemas/MetadataUsage"
library:
allOf:
- $ref: "#/components/schemas/NodeInfoLibrary"
readOnly: true
reportTypes:
type: array
items:
$ref: "#/components/schemas/ReportType"
endpoints:
$ref: "#/components/schemas/Endpoints"
rules:
type: string
readOnly: true
terms:
type: string
readOnly: true
required:
- actorId
- allowList
- banner
- contactEmail
- defaultUploadQuota
- endpoints
- funkwhaleSupportMessageEnabled
- instanceSupportMessage
- library
- longDescription
- nodeName
- private
- reportTypes
- rules
- shortDescription
- supportedUploadExtensions
- terms
MetadataUsage:
type: object
properties:
favorites:
$ref: "#/components/schemas/MetadataUsageFavorite"
listenings:
$ref: "#/components/schemas/TotalCount"
downloads:
$ref: "#/components/schemas/TotalCount"
required:
- downloads
- favorites
- listenings
MetadataUsageFavorite:
type: object
properties:
tracks:
allOf:
- $ref: "#/components/schemas/TotalCount"
readOnly: true
required:
- tracks
ModerationTarget:
type: object
properties:
type:
$ref: "#/components/schemas/ModerationTargetTypeEnum"
id:
type: string
required:
- id
- type
ModerationTargetRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ModerationTargetTypeEnum"
id:
type: string
minLength: 1
required:
- id
- type
ModerationTargetTypeEnum:
enum:
- artist
type: string
description: "* `artist` - artist"
NestedLibraryFollow:
type: object
properties:
creation_date:
type: string
format: date-time
uuid:
type: string
format: uuid
fid:
type: string
format: uri
nullable: true
maxLength: 500
approved:
type: boolean
nullable: true
modification_date:
type: string
format: date-time
readOnly: true
required:
- modification_date
NestedLibraryFollowRequest:
type: object
properties:
creation_date:
type: string
format: date-time
uuid:
type: string
format: uuid
fid:
type: string
format: uri
nullable: true
maxLength: 500
approved:
type: boolean
nullable: true
NodeInfo20:
type: object
properties:
version:
type: string
readOnly: true
software:
$ref: "#/components/schemas/Software"
protocols:
type: array
items: {}
readOnly: true
services:
allOf:
- $ref: "#/components/schemas/Services"
default:
inbound: []
outbound: []
openRegistrations:
type: boolean
readOnly: true
usage:
allOf:
- $ref: "#/components/schemas/Usage"
readOnly: true
metadata:
allOf:
- $ref: "#/components/schemas/Metadata20"
readOnly: true
required:
- metadata
- openRegistrations
- protocols
- software
- usage
- version
NodeInfoLibrary:
type: object
properties:
federationEnabled:
type: boolean
anonymousCanListen:
type: boolean
tracks:
allOf:
- $ref: "#/components/schemas/TotalCount"
default:
total: 0
artists:
allOf:
- $ref: "#/components/schemas/TotalCount"
default:
total: 0
albums:
allOf:
- $ref: "#/components/schemas/TotalCount"
default:
total: 0
music:
allOf:
- $ref: "#/components/schemas/TotalHours"
default:
hours: 0
required:
- anonymousCanListen
- federationEnabled
Oembed:
type: object
properties:
format:
$ref: "#/components/schemas/FormatEnum"
url:
type: string
format: uri
maxheight:
type: integer
maxwidth:
type: integer
required:
- format
- url
PaginatedAPIMutationList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/APIMutation"
PaginatedAlbumList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Album"
PaginatedApplicationList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Application"
PaginatedArtistWithAlbumsList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ArtistWithAlbums"
PaginatedChannelList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Channel"
PaginatedDomainList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Domain"
PaginatedFetchList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Fetch"
PaginatedInboxItemList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/InboxItem"
PaginatedLibraryFollowList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/LibraryFollow"
PaginatedLibraryForOwnerList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/LibraryForOwner"
PaginatedLibraryList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Library"
PaginatedLicenseList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/License"
PaginatedListeningList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Listening"
PaginatedManageActorList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageActor"
PaginatedManageAlbumList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageAlbum"
PaginatedManageArtistList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageArtist"
PaginatedManageChannelList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageChannel"
PaginatedManageDomainList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageDomain"
PaginatedManageInstancePolicyList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageInstancePolicy"
PaginatedManageInvitationList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageInvitation"
PaginatedManageLibraryList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageLibrary"
PaginatedManageNoteList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageNote"
PaginatedManageReportList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageReport"
PaginatedManageTagList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageTag"
PaginatedManageTrackList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageTrack"
PaginatedManageUploadList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageUpload"
PaginatedManageUserList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageUser"
PaginatedManageUserRequestList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/ManageUserRequest"
PaginatedPlaylistList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Playlist"
PaginatedPlaylistTrackList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/PlaylistTrack"
PaginatedRadioList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Radio"
PaginatedSubscriptionList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Subscription"
PaginatedTagList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Tag"
PaginatedTrackList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/Track"
PaginatedUploadForOwnerList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/UploadForOwner"
PaginatedUserFilterList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/UserFilter"
PaginatedUserTrackFavoriteList:
type: object
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: "#/components/schemas/UserTrackFavorite"
PasswordChange:
type: object
properties:
old_password:
type: string
maxLength: 128
new_password1:
type: string
maxLength: 128
new_password2:
type: string
maxLength: 128
required:
- new_password1
- new_password2
- old_password
PasswordChangeRequest:
type: object
properties:
old_password:
type: string
minLength: 1
maxLength: 128
new_password1:
type: string
minLength: 1
maxLength: 128
new_password2:
type: string
minLength: 1
maxLength: 128
required:
- new_password1
- new_password2
- old_password
PasswordReset:
type: object
description: Serializer for requesting a password reset e-mail.
properties:
email:
type: string
format: email
required:
- email
PasswordResetConfirm:
type: object
description: Serializer for confirming a password reset attempt.
properties:
new_password1:
type: string
maxLength: 128
new_password2:
type: string
maxLength: 128
uid:
type: string
token:
type: string
required:
- new_password1
- new_password2
- token
- uid
PasswordResetConfirmRequest:
type: object
description: Serializer for confirming a password reset attempt.
properties:
new_password1:
type: string
minLength: 1
maxLength: 128
new_password2:
type: string
minLength: 1
maxLength: 128
uid:
type: string
minLength: 1
token:
type: string
minLength: 1
required:
- new_password1
- new_password2
- token
- uid
PasswordResetRequest:
type: object
description: Serializer for requesting a password reset e-mail.
properties:
email:
type: string
format: email
minLength: 1
required:
- email
PatchedApplicationRequest:
type: object
properties:
client_id:
type: string
minLength: 1
maxLength: 100
name:
type: string
maxLength: 255
scopes:
type: string
minLength: 1
PatchedChannelUpdateRequest:
type: object
properties:
cover:
type: string
format: uuid
writeOnly: true
nullable: true
name:
type: string
minLength: 1
maxLength: 200
description:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
tags:
type: array
items:
type: string
minLength: 1
minItems: 0
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
metadata:
type: object
additionalProperties: {}
PatchedGlobalPreferenceRequest:
type: object
properties:
value:
type: string
required:
- value
PatchedInboxItemRequest:
type: object
properties:
activity:
$ref: "#/components/schemas/ActivityRequest"
is_read:
type: boolean
PatchedLibraryForOwnerRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
PatchedManageDomainUpdateRequest:
type: object
properties:
allowed:
type: boolean
nullable: true
PatchedManageInstancePolicyRequest:
type: object
properties:
target:
$ref: "#/components/schemas/ManageTargetRequest"
summary:
type: string
nullable: true
maxLength: 10000
is_active:
type: boolean
block_all:
type: boolean
silence_activity:
type: boolean
silence_notifications:
type: boolean
reject_media:
type: boolean
PatchedManageInvitationRequest:
type: object
properties:
owner:
$ref: "#/components/schemas/ManageUserSimpleRequest"
invited_user:
$ref: "#/components/schemas/ManageUserSimpleRequest"
code:
type: string
nullable: true
minLength: 1
users:
type: array
items:
$ref: "#/components/schemas/ManageUserSimpleRequest"
PatchedManageLibraryRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
description:
type: string
nullable: true
maxLength: 5000
domain:
type: string
minLength: 1
privacy_level:
$ref: "#/components/schemas/LibraryPrivacyLevelEnum"
followers_url:
type: string
format: uri
minLength: 1
maxLength: 500
actor:
$ref: "#/components/schemas/ManageBaseActorRequest"
PatchedManageReportRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ReportTypeEnum"
target:
type: object
additionalProperties: {}
is_handled:
type: boolean
assigned_to:
allOf:
- $ref: "#/components/schemas/ManageBaseActorRequest"
nullable: true
target_owner:
$ref: "#/components/schemas/ManageBaseActorRequest"
submitter:
$ref: "#/components/schemas/ManageBaseActorRequest"
notes:
type: array
items:
$ref: "#/components/schemas/ManageBaseNoteRequest"
nullable: true
default: []
PatchedManageUserRequest:
type: object
properties:
name:
type: string
title: Name of User
maxLength: 255
is_active:
type: boolean
title: Active
description:
Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
is_staff:
type: boolean
title: Staff status
description: Designates whether the user can log into this admin site.
is_superuser:
type: boolean
title: Superuser status
description:
Designates that this user has all permissions without explicitly
assigning them.
upload_quota:
type: integer
nullable: true
PatchedManageUserRequestRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ManageUserRequestTypeEnum"
status:
$ref: "#/components/schemas/ManageUserRequestStatusEnum"
assigned_to:
$ref: "#/components/schemas/ManageBaseActorRequest"
submitter:
$ref: "#/components/schemas/ManageBaseActorRequest"
PatchedPlaylistRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 50
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
PatchedRadioRequest:
type: object
properties:
is_public:
type: boolean
name:
type: string
minLength: 1
maxLength: 100
config:
type: object
additionalProperties: {}
description:
type: string
PatchedUploadForOwnerRequest:
type: object
properties:
filename:
type: string
minLength: 1
track:
allOf:
- $ref: "#/components/schemas/TrackRequest"
nullable: true
library:
type: string
format: uuid
channel:
type: string
format: uuid
import_status:
allOf:
- $ref: "#/components/schemas/ImportStatusEnum"
default: pending
import_metadata:
type: object
additionalProperties: {}
import_reference:
type: string
minLength: 1
maxLength: 50
source:
type: string
nullable: true
maxLength: 500
audio_file:
type: string
format: binary
writeOnly: true
PatchedUserDetailsRequest:
type: object
description: User model w/o password
properties:
username:
type: string
minLength: 1
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
PatchedUserWriteRequest:
type: object
properties:
name:
type: string
title: Name of User
maxLength: 255
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
avatar:
type: string
format: uuid
writeOnly: true
instance_support_message_display_date:
type: string
format: date-time
nullable: true
funkwhale_support_message_display_date:
type: string
format: date-time
nullable: true
summary:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
Playlist:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 50
user:
allOf:
- $ref: "#/components/schemas/UserBasic"
readOnly: true
modification_date:
type: string
format: date-time
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
tracks_count:
type: integer
readOnly: true
album_covers:
type: array
items:
type: string
readOnly: true
duration:
type: integer
readOnly: true
is_playable:
type: boolean
readOnly: true
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
required:
- actor
- album_covers
- creation_date
- duration
- id
- is_playable
- modification_date
- name
- tracks_count
- user
PlaylistAddManyRequest:
type: object
properties:
tracks:
type: array
items:
type: integer
allow_duplicates:
type: boolean
required:
- tracks
PlaylistRequest:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 50
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
required:
- name
PlaylistTrack:
type: object
properties:
track:
type: string
readOnly: true
index:
type: integer
maximum: 2147483647
minimum: 0
nullable: true
creation_date:
type: string
format: date-time
required:
- track
PrivacyLevelEnum:
enum:
- me
- followers
- instance
- everyone
type: string
description: |-
* `me` - Only me
* `followers` - Me and my followers
* `instance` - Everyone on my instance, and my followers
* `everyone` - Everyone, including people on other instances
Radio:
type: object
properties:
id:
type: integer
readOnly: true
is_public:
type: boolean
name:
type: string
maxLength: 100
creation_date:
type: string
format: date-time
readOnly: true
user:
allOf:
- $ref: "#/components/schemas/UserBasic"
readOnly: true
config:
type: object
additionalProperties: {}
description:
type: string
required:
- config
- creation_date
- id
- name
- user
RadioRequest:
type: object
properties:
is_public:
type: boolean
name:
type: string
minLength: 1
maxLength: 100
config:
type: object
additionalProperties: {}
description:
type: string
required:
- config
- name
RadioSession:
type: object
properties:
id:
type: integer
readOnly: true
radio_type:
type: string
maxLength: 50
related_object_id:
type: string
nullable: true
user:
type: integer
nullable: true
creation_date:
type: string
format: date-time
custom_radio:
type: integer
nullable: true
config:
type: object
additionalProperties: {}
nullable: true
required:
- id
- radio_type
RadioSessionRequest:
type: object
properties:
radio_type:
type: string
minLength: 1
maxLength: 50
related_object_id:
type: string
nullable: true
minLength: 1
user:
type: integer
nullable: true
creation_date:
type: string
format: date-time
custom_radio:
type: integer
nullable: true
config:
type: object
additionalProperties: {}
nullable: true
required:
- radio_type
RadioSessionTrackSerializerCreate:
type: object
properties:
session:
type: integer
count:
type: integer
nullable: true
required:
- session
RadioSessionTrackSerializerCreateRequest:
type: object
properties:
session:
type: integer
count:
type: integer
nullable: true
required:
- session
RateLimit:
type: object
properties:
enabled:
type: boolean
ident:
$ref: "#/components/schemas/Ident"
scopes:
type: array
items:
$ref: "#/components/schemas/Scopes"
required:
- enabled
- ident
- scopes
Register:
type: object
properties:
username:
type: string
maxLength: 150
minLength: 1
email:
type: string
format: email
invitation:
type: string
nullable: true
required:
- email
- username
RegisterRequest:
type: object
properties:
username:
type: string
minLength: 1
maxLength: 150
email:
type: string
format: email
minLength: 1
password1:
type: string
writeOnly: true
minLength: 1
password2:
type: string
writeOnly: true
minLength: 1
invitation:
type: string
nullable: true
required:
- email
- password1
- password2
- username
Report:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
summary:
type: string
nullable: true
maxLength: 50000
creation_date:
type: string
format: date-time
readOnly: true
handled_date:
type: string
format: date-time
readOnly: true
nullable: true
is_handled:
type: boolean
readOnly: true
submitter_email:
type: string
format: email
nullable: true
maxLength: 254
target:
type: object
additionalProperties: {}
type:
$ref: "#/components/schemas/ReportTypeEnum"
required:
- creation_date
- handled_date
- is_handled
- target
- type
- uuid
ReportRequest:
type: object
properties:
summary:
type: string
nullable: true
maxLength: 50000
submitter_email:
type: string
format: email
nullable: true
minLength: 1
maxLength: 254
target:
type: object
additionalProperties: {}
type:
$ref: "#/components/schemas/ReportTypeEnum"
required:
- target
- type
ReportType:
type: object
properties:
type:
type: string
label:
type: string
anonymous:
type: boolean
required:
- anonymous
- label
- type
ReportTypeEnum:
enum:
- takedown_request
- invalid_metadata
- illegal_content
- offensive_content
- other
type: string
description: |-
* `takedown_request` - Takedown request
* `invalid_metadata` - Invalid metadata
* `illegal_content` - Illegal content
* `offensive_content` - Offensive content
* `other` - Other
Scopes:
type: object
properties:
id:
type: string
rate:
type: string
description:
type: string
limit:
type: integer
duration:
type: integer
remaining:
type: integer
available:
type: integer
available_seconds:
type: integer
reset:
type: integer
reset_seconds:
type: integer
required:
- available
- available_seconds
- description
- duration
- id
- limit
- rate
- remaining
- reset
- reset_seconds
SearchResult:
type: object
properties:
artists:
type: array
items:
$ref: "#/components/schemas/ArtistWithAlbums"
tracks:
type: array
items:
$ref: "#/components/schemas/Track"
albums:
type: array
items:
$ref: "#/components/schemas/Album"
tags:
type: array
items:
$ref: "#/components/schemas/Tag"
required:
- albums
- artists
- tags
- tracks
Services:
type: object
properties:
inbound:
type: array
items:
type: string
default: []
outbound:
type: array
items:
type: string
default: []
SimpleArtist:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
name:
type: string
creation_date:
type: string
format: date-time
modification_date:
type: string
format: date-time
is_local:
type: boolean
readOnly: true
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
description:
allOf:
- $ref: "#/components/schemas/Content"
nullable: true
attachment_cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
channel:
type: string
format: uuid
nullable: true
required:
- id
- is_local
- name
SimpleArtistRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
name:
type: string
minLength: 1
creation_date:
type: string
format: date-time
modification_date:
type: string
format: date-time
content_category:
$ref: "#/components/schemas/ContentCategoryEnum"
description:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
attachment_cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
channel:
type: string
format: uuid
nullable: true
required:
- name
SimpleChannelArtist:
type: object
properties:
id:
type: integer
fid:
type: string
format: uri
mbid:
type: string
name:
type: string
creation_date:
type: string
format: date-time
modification_date:
type: string
format: date-time
is_local:
type: boolean
content_category:
type: string
description:
allOf:
- $ref: "#/components/schemas/Content"
nullable: true
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
channel:
type: string
format: uuid
nullable: true
tracks_count:
type: integer
tags:
type: array
items:
type: string
required:
- content_category
- creation_date
- fid
- id
- is_local
- mbid
- modification_date
- name
SimpleChannelArtistRequest:
type: object
properties:
id:
type: integer
fid:
type: string
format: uri
minLength: 1
mbid:
type: string
minLength: 1
name:
type: string
minLength: 1
creation_date:
type: string
format: date-time
modification_date:
type: string
format: date-time
is_local:
type: boolean
content_category:
type: string
minLength: 1
description:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
channel:
type: string
format: uuid
nullable: true
tracks_count:
type: integer
tags:
type: array
items:
type: string
minLength: 1
required:
- content_category
- creation_date
- fid
- id
- is_local
- mbid
- modification_date
- name
SimpleFavorite:
type: object
properties:
id:
type: integer
track:
type: integer
required:
- id
- track
Software:
type: object
properties:
name:
type: string
readOnly: true
version:
type: string
required:
- name
- version
SpaManifest:
type: object
properties:
name:
type: string
default: Funkwhale
short_name:
type: string
default: Funkwhale
display:
type: string
background_color:
type: string
lang:
type: string
categories:
type: array
items:
type: string
description:
type: string
icons:
type: array
items:
$ref: "#/components/schemas/SpaManifestIcon"
start_url:
type: string
prefer_related_applications:
type: boolean
related_applications:
type: array
items:
$ref: "#/components/schemas/SpaManifestRelatedApplications"
shortcuts:
type: array
items:
$ref: "#/components/schemas/SpaManifestShortcut"
SpaManifestIcon:
type: object
properties:
src:
type: string
sizes:
type: string
type:
type: string
required:
- sizes
- src
- type
SpaManifestRelatedApplications:
type: object
properties:
platform:
type: string
url:
type: string
format: uri
id:
type: string
required:
- id
- platform
- url
SpaManifestShortcut:
type: object
properties:
name:
type: string
url:
type: string
icons:
type: array
items:
$ref: "#/components/schemas/SpaManifestIcon"
required:
- name
- url
Subscription:
type: object
properties:
approved:
type: boolean
readOnly: true
fid:
type: string
format: uri
readOnly: true
uuid:
type: string
format: uuid
readOnly: true
creation_date:
type: string
format: date-time
readOnly: true
required:
- approved
- creation_date
- fid
- uuid
Tag:
type: object
properties:
name:
type: string
maxLength: 100
creation_date:
type: string
format: date-time
required:
- name
TextPreview:
type: object
properties:
rendered:
type: string
readOnly: true
required:
- rendered
TextPreviewRequest:
type: object
properties:
text:
type: string
writeOnly: true
minLength: 1
required:
- text
TotalCount:
type: object
properties:
total:
type: integer
readOnly: true
required:
- total
TotalHours:
type: object
properties:
hours:
type: integer
readOnly: true
required:
- hours
Track:
type: object
properties:
artist:
$ref: "#/components/schemas/SimpleArtist"
album:
allOf:
- $ref: "#/components/schemas/TrackAlbum"
readOnly: true
uploads:
type: array
items:
type: object
readOnly: true
listen_url:
type: string
format: uri
readOnly: true
tags:
type: array
items:
type: string
readOnly: true
attributed_to:
allOf:
- $ref: "#/components/schemas/APIActor"
nullable: true
id:
type: integer
fid:
type: string
format: uri
mbid:
type: string
format: uuid
title:
type: string
creation_date:
type: string
format: date-time
is_local:
type: boolean
position:
type: integer
disc_number:
type: integer
downloads_count:
type: integer
copyright:
type: string
license:
type: string
readOnly: true
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
is_playable:
type: boolean
readOnly: true
required:
- album
- artist
- attributed_to
- copyright
- cover
- creation_date
- disc_number
- downloads_count
- fid
- id
- is_local
- is_playable
- license
- listen_url
- mbid
- position
- tags
- title
- uploads
TrackAlbum:
type: object
properties:
id:
type: integer
readOnly: true
fid:
type: string
format: uri
nullable: true
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
artist:
$ref: "#/components/schemas/SimpleArtist"
release_date:
type: string
format: date
nullable: true
cover:
allOf:
- $ref: "#/components/schemas/CoverField"
nullable: true
creation_date:
type: string
format: date-time
is_local:
type: boolean
readOnly: true
tracks_count:
type: integer
readOnly: true
required:
- artist
- cover
- id
- is_local
- title
- tracks_count
TrackAlbumRequest:
type: object
properties:
fid:
type: string
format: uri
nullable: true
minLength: 1
maxLength: 500
mbid:
type: string
format: uuid
nullable: true
title:
type: string
minLength: 1
artist:
$ref: "#/components/schemas/SimpleArtistRequest"
release_date:
type: string
format: date
nullable: true
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
creation_date:
type: string
format: date-time
required:
- artist
- cover
- title
TrackMetadata:
type: object
properties:
title:
type: string
nullable: true
position:
type: string
nullable: true
disc_number:
type: string
nullable: true
copyright:
type: string
nullable: true
license:
type: string
nullable: true
mbid:
type: string
format: uuid
nullable: true
tags:
type: string
nullable: true
description:
type: string
nullable: true
album:
type: string
artists:
type: string
cover_data:
type: string
required:
- album
- artists
TrackRequest:
type: object
properties:
artist:
$ref: "#/components/schemas/SimpleArtistRequest"
attributed_to:
allOf:
- $ref: "#/components/schemas/APIActorRequest"
nullable: true
id:
type: integer
fid:
type: string
format: uri
minLength: 1
mbid:
type: string
format: uuid
title:
type: string
minLength: 1
creation_date:
type: string
format: date-time
is_local:
type: boolean
position:
type: integer
disc_number:
type: integer
downloads_count:
type: integer
copyright:
type: string
minLength: 1
cover:
allOf:
- $ref: "#/components/schemas/CoverFieldRequest"
nullable: true
required:
- artist
- attributed_to
- copyright
- cover
- creation_date
- disc_number
- downloads_count
- fid
- id
- is_local
- mbid
- position
- title
UploadForOwner:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
filename:
type: string
creation_date:
type: string
format: date-time
readOnly: true
mimetype:
type: string
readOnly: true
nullable: true
track:
allOf:
- $ref: "#/components/schemas/Track"
nullable: true
library:
$ref: "#/components/schemas/LibraryForOwner"
channel:
$ref: "#/components/schemas/Channel"
duration:
type: integer
readOnly: true
nullable: true
bitrate:
type: integer
readOnly: true
nullable: true
size:
type: integer
readOnly: true
nullable: true
import_date:
type: string
format: date-time
readOnly: true
nullable: true
import_status:
allOf:
- $ref: "#/components/schemas/ImportStatusEnum"
default: pending
import_details:
type: object
additionalProperties: {}
readOnly: true
import_metadata:
type: object
additionalProperties: {}
import_reference:
type: string
maxLength: 50
metadata:
type: object
additionalProperties: {}
readOnly: true
source:
type: string
nullable: true
maxLength: 500
required:
- bitrate
- creation_date
- duration
- import_date
- import_details
- metadata
- mimetype
- size
- uuid
UploadForOwnerRequest:
type: object
properties:
filename:
type: string
minLength: 1
track:
allOf:
- $ref: "#/components/schemas/TrackRequest"
nullable: true
library:
type: string
format: uuid
channel:
type: string
format: uuid
import_status:
allOf:
- $ref: "#/components/schemas/ImportStatusEnum"
default: pending
import_metadata:
type: object
additionalProperties: {}
import_reference:
type: string
minLength: 1
maxLength: 50
source:
type: string
nullable: true
maxLength: 500
audio_file:
type: string
format: binary
writeOnly: true
required:
- audio_file
Usage:
type: object
properties:
users:
$ref: "#/components/schemas/UsersUsage"
localPosts:
type: integer
localComments:
type: integer
required:
- users
UserBasic:
type: object
properties:
id:
type: integer
readOnly: true
username:
type: string
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
name:
type: string
title: Name of User
maxLength: 255
date_joined:
type: string
format: date-time
avatar:
allOf:
- $ref: "#/components/schemas/Attachment"
nullable: true
required:
- avatar
- id
- username
UserBasicRequest:
type: object
properties:
username:
type: string
minLength: 1
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
name:
type: string
title: Name of User
maxLength: 255
date_joined:
type: string
format: date-time
avatar:
allOf:
- $ref: "#/components/schemas/AttachmentRequest"
nullable: true
required:
- avatar
- username
UserDetails:
type: object
description: User model w/o password
properties:
pk:
type: integer
readOnly: true
title: ID
username:
type: string
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
readOnly: true
title: Email address
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
required:
- email
- pk
- username
UserDetailsRequest:
type: object
description: User model w/o password
properties:
username:
type: string
minLength: 1
description:
Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
required:
- username
UserFilter:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
target:
$ref: "#/components/schemas/ModerationTarget"
creation_date:
type: string
format: date-time
readOnly: true
required:
- creation_date
- target
- uuid
UserFilterRequest:
type: object
properties:
target:
$ref: "#/components/schemas/ModerationTargetRequest"
required:
- target
UserTrackFavorite:
type: object
properties:
id:
type: integer
readOnly: true
user:
allOf:
- $ref: "#/components/schemas/UserBasic"
readOnly: true
track:
allOf:
- $ref: "#/components/schemas/Track"
readOnly: true
creation_date:
type: string
format: date-time
actor:
allOf:
- $ref: "#/components/schemas/APIActor"
readOnly: true
required:
- actor
- id
- track
- user
UserTrackFavoriteWrite:
type: object
properties:
id:
type: integer
readOnly: true
track:
type: integer
creation_date:
type: string
format: date-time
required:
- id
- track
UserTrackFavoriteWriteRequest:
type: object
properties:
track:
type: integer
creation_date:
type: string
format: date-time
required:
- track
UserWrite:
type: object
properties:
name:
type: string
title: Name of User
maxLength: 255
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
instance_support_message_display_date:
type: string
format: date-time
nullable: true
funkwhale_support_message_display_date:
type: string
format: date-time
nullable: true
summary:
allOf:
- $ref: "#/components/schemas/Content"
nullable: true
UserWriteRequest:
type: object
properties:
name:
type: string
title: Name of User
maxLength: 255
privacy_level:
$ref: "#/components/schemas/PrivacyLevelEnum"
avatar:
type: string
format: uuid
writeOnly: true
instance_support_message_display_date:
type: string
format: date-time
nullable: true
funkwhale_support_message_display_date:
type: string
format: date-time
nullable: true
summary:
allOf:
- $ref: "#/components/schemas/ContentRequest"
nullable: true
required:
- avatar
UsersUsage:
type: object
properties:
total:
type: integer
activeHalfyear:
type: integer
readOnly: true
activeMonth:
type: integer
readOnly: true
required:
- activeHalfyear
- activeMonth
- total
VerifyEmailRequest:
type: object
properties:
key:
type: string
writeOnly: true
minLength: 1
required:
- key
securitySchemes:
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