openapi: 3.0.3
info:
title: PeerTube Abuses Accounts API
version: 8.1.0
contact:
name: PeerTube Community
url: https://joinpeertube.org
license:
name: AGPLv3.0
url: https://github.com/Chocobozzz/PeerTube/blob/master/LICENSE
x-logo:
url: https://joinpeertube.org/img/brand.png
altText: PeerTube Project Homepage
description: "The PeerTube API is built on HTTP(S) and is RESTful. You can use your favorite\nHTTP/REST library for your programming language to use PeerTube.\n\nSee the [REST API quick start](https://docs.joinpeertube.org/api/rest-getting-started) for a few\nexamples of using the PeerTube API.\n\n# Authentication\n\nWhen you sign up for an account on a PeerTube instance, you are given the possibility\nto generate sessions on it, and authenticate there using an access token. Only __one\naccess token can currently be used at a time__.\n\n## Roles\n\nAccounts are given permissions based on their role. There are three roles on\nPeerTube: Administrator, Moderator, and User. See the [roles guide](https://docs.joinpeertube.org/admin/managing-users#roles) for a detail of their permissions.\n\n# Errors\n\nThe API uses standard HTTP status codes to indicate the success or failure\nof the API call, completed by a [RFC7807-compliant](https://tools.ietf.org/html/rfc7807) response body.\n\n```\nHTTP 1.1 404 Not Found\nContent-Type: application/problem+json; charset=utf-8\n\n{\n \"detail\": \"Video not found\",\n \"docs\": \"https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo\",\n \"status\": 404,\n \"title\": \"Not Found\",\n \"type\": \"about:blank\"\n}\n```\n\nWe provide error `type` (following RFC7807) and `code` (internal PeerTube code) values for [a growing number of cases](https://github.com/Chocobozzz/PeerTube/blob/develop/packages/models/src/server/server-error-code.enum.ts),\nbut it is still optional. Types are used to disambiguate errors that bear the same status code\nand are non-obvious:\n\n```\nHTTP 1.1 403 Forbidden\nContent-Type: application/problem+json; charset=utf-8\n\n{\n \"detail\": \"Cannot get this video regarding follow constraints\",\n \"docs\": \"https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo\",\n \"status\": 403,\n \"title\": \"Forbidden\",\n \"type\": \"https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/does_not_respect_follow_constraints\"\n}\n```\n\nHere a 403 error could otherwise mean that the video is private or blocklisted.\n\n### Validation errors\n\nEach parameter is evaluated on its own against a set of rules before the route validator\nproceeds with potential testing involving parameter combinations. Errors coming from validation\nerrors appear earlier and benefit from a more detailed error description:\n\n```\nHTTP 1.1 400 Bad Request\nContent-Type: application/problem+json; charset=utf-8\n\n{\n \"detail\": \"Incorrect request parameters: id\",\n \"docs\": \"https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo\",\n \"instance\": \"/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180\",\n \"invalid-params\": {\n \"id\": {\n \"location\": \"params\",\n \"msg\": \"Invalid value\",\n \"param\": \"id\",\n \"value\": \"9c9de5e8-0a1e-484a-b099-e80766180\"\n }\n },\n \"status\": 400,\n \"title\": \"Bad Request\",\n \"type\": \"about:blank\"\n}\n```\n\nWhere `id` is the name of the field concerned by the error, within the route definition.\n`invalid-params.<field>.location` can be either 'params', 'body', 'header', 'query' or 'cookies', and\n`invalid-params.<field>.value` reports the value that didn't pass validation whose `invalid-params.<field>.msg`\nis about.\n\n### Deprecated error fields\n\nSome fields could be included with previous versions. They are still included but their use is deprecated:\n- `error`: superseded by `detail`\n\n# Rate limits\n\nWe are rate-limiting all endpoints of PeerTube's API. Custom values can be set by administrators:\n\n| Endpoint (prefix: `/api/v1`) | Calls | Time frame |\n|------------------------------|---------------|--------------|\n| `/*` | 50 | 10 seconds |\n| `POST /users/token` | 15 | 5 minutes |\n| `POST /users/register` | 2<sup>*</sup> | 5 minutes |\n| `POST /users/ask-send-verify-email` | 3 | 5 minutes |\n\nDepending on the endpoint, <sup>*</sup>failed requests are not taken into account. A service\nlimit is announced by a `429 Too Many Requests` status code.\n\nYou can get details about the current state of your rate limit by reading the\nfollowing headers:\n\n| Header | Description |\n|-------------------------|------------------------------------------------------------|\n| `X-RateLimit-Limit` | Number of max requests allowed in the current time period |\n| `X-RateLimit-Remaining` | Number of remaining requests in the current time period |\n| `X-RateLimit-Reset` | Timestamp of end of current time period as UNIX timestamp |\n| `Retry-After` | Seconds to delay after the first `429` is received |\n\n# CORS\n\nThis API features [Cross-Origin Resource Sharing (CORS)](https://fetch.spec.whatwg.org/),\nallowing cross-domain communication from the browser for some routes:\n\n| Endpoint |\n|------------------------- ---|\n| `/api/*` |\n| `/download/*` |\n| `/lazy-static/*` |\n| `/.well-known/webfinger` |\n\nIn addition, all routes serving ActivityPub are CORS-enabled for all origins.\n"
servers:
- url: https://peertube2.cpy.re
description: Live Test Server (live data - latest nightly version)
- url: https://peertube3.cpy.re
description: Live Test Server (live data - latest RC version)
- url: https://peertube.cpy.re
description: Live Test Server (live data - stable version)
tags:
- name: Accounts
description: 'Accounts encompass remote accounts discovered across the federation, and correspond to the main Actor, along with video channels a user can create, which are also Actors.
When a comment is posted, it is done with your Account''s Actor.
'
paths:
/api/v1/accounts/{name}:
get:
tags:
- Accounts
summary: Get an account
operationId: getAccount
parameters:
- $ref: '#/components/parameters/name'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'404':
description: account not found
/api/v1/accounts/{name}/videos:
get:
tags:
- Accounts
summary: List videos of an account
operationId: getAccountVideos
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/skipCount'
- $ref: '#/components/parameters/videosSort'
- $ref: '#/components/parameters/nsfw'
- $ref: '#/components/parameters/nsfwFlagsIncluded'
- $ref: '#/components/parameters/nsfwFlagsExcluded'
- $ref: '#/components/parameters/isLive'
- $ref: '#/components/parameters/includeScheduledLive'
- $ref: '#/components/parameters/categoryOneOf'
- $ref: '#/components/parameters/licenceOneOf'
- $ref: '#/components/parameters/languageOneOf'
- $ref: '#/components/parameters/tagsOneOf'
- $ref: '#/components/parameters/tagsAllOf'
- $ref: '#/components/parameters/isLocal'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/hasHLSFiles'
- $ref: '#/components/parameters/hasWebVideoFiles'
- $ref: '#/components/parameters/host'
- $ref: '#/components/parameters/autoTagOneOfVideo'
- $ref: '#/components/parameters/stateOneOfVideo'
- $ref: '#/components/parameters/privacyOneOf'
- $ref: '#/components/parameters/excludeAlreadyWatched'
- $ref: '#/components/parameters/search'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/VideoListResponse'
x-codeSamples:
- lang: JavaScript
source: "fetch('https://peertube2.cpy.re/api/v1/accounts/{name}/videos')\n.then(function(response) {\n return response.json()\n}).then(function(data) {\n console.log(data)\n})\n"
- lang: Shell
source: '## DEPENDENCIES: jq
curl -s https://peertube2.cpy.re/api/v1/accounts/{name}/videos | jq
'
- lang: Ruby
source: 'require ''net/http''
require ''json''
uri = URI.parse("https://peertube2.cpy.re/api/v1/accounts/{name}/videos")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
response = http.get(uri.request_uri)
puts JSON.parse(response.read_body)
'
- lang: Python
source: 'import requests
r = requests.get("https://peertube2.cpy.re/api/v1//accounts/{name}/videos")
json = r.json()
print(json)
'
/api/v1/accounts/{name}/followers:
get:
tags:
- Accounts
summary: List followers of an account
security:
- OAuth2: []
operationId: getAccountFollowers
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/followersSort'
- $ref: '#/components/parameters/search'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
total:
type: integer
example: 1
data:
type: array
items:
$ref: '#/components/schemas/Follow'
/api/v1/accounts:
get:
tags:
- Accounts
summary: List accounts
operationId: getAccounts
parameters:
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/sort'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
total:
type: integer
example: 1
data:
type: array
items:
$ref: '#/components/schemas/Account'
/api/v1/accounts/{name}/video-playlists:
get:
summary: List playlists of an account
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/videoPlaylistType'
- $ref: '#/components/parameters/includeCollaborations'
- name: channelNameOneOf
in: query
required: false
description: '**PeerTube >= 8.0** Filter on playlists that are published on a channel with one of these names'
schema:
oneOf:
- type: string
- type: array
items:
type: string
style: form
explode: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
total:
type: integer
example: 1
data:
type: array
items:
$ref: '#/components/schemas/VideoPlaylist'
/api/v1/accounts/{name}/video-channels:
get:
summary: List video channels of an account
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/name'
- name: withStats
in: query
description: include daily view statistics for the last 30 days and total views (only if authenticated as the account user)
schema:
type: boolean
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/includeCollaborations'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/VideoChannelList'
/api/v1/accounts/{name}/video-channel-syncs:
get:
summary: List the synchronizations of video channels of an account
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/includeCollaborations'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/VideoChannelSyncList'
/api/v1/accounts/{name}/ratings:
get:
summary: List ratings of an account
security:
- OAuth2: []
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/sort'
- name: rating
in: query
required: false
description: Optionally filter which ratings to retrieve
schema:
type: string
enum:
- like
- dislike
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/VideoRating'
components:
schemas:
VideoPlaylistTypeConstant:
properties:
id:
$ref: '#/components/schemas/VideoPlaylistTypeSet'
label:
type: string
VideoPlaylistTypeSet:
type: integer
enum:
- 1
- 2
description: The video playlist type (Regular = `1`, Watch Later = `2`)
VideoConstantNumber-Licence:
properties:
id:
$ref: '#/components/schemas/VideoLicenceSet'
label:
type: string
example: Attribution - Share Alike
VideoStateConstant:
properties:
id:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
description: 'The video state:
- `1`: Published
- `2`: To transcode
- `3`: To import
- `4`: Waiting for live stream
- `5`: Live ended
- `6`: To move to an external storage (object storage...)
- `7`: Transcoding failed
- `8`: Moving to an external storage failed
- `9`: To edit using studio edition feature
'
label:
type: string
VideoConstantString-Language:
properties:
id:
$ref: '#/components/schemas/VideoLanguageSet'
label:
type: string
example: English
VideoListResponse:
properties:
total:
type: integer
example: 1
data:
type: array
maxItems: 100
items:
$ref: '#/components/schemas/Video'
Actor:
properties:
id:
$ref: '#/components/schemas/id'
url:
type: string
format: url
name:
description: immutable name of the actor, used to find or mention it
allOf:
- $ref: '#/components/schemas/username'
avatars:
type: array
items:
$ref: '#/components/schemas/ActorImage'
host:
type: string
format: hostname
description: server on which the actor is resident
hostRedundancyAllowed:
type: boolean
nullable: true
description: whether this actor's host allows redundancy of its videos
followingCount:
type: integer
minimum: 0
description: number of actors subscribed to by this actor, as seen by this instance
followersCount:
type: integer
minimum: 0
description: number of followers of this actor, as seen by this instance
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
Thumbnail:
properties:
fileUrl:
type: string
width:
type: integer
height:
type: integer
aspectRatio:
type: string
example: '16:9'
User:
properties:
id:
$ref: '#/components/schemas/id'
VideoChannelSync:
type: object
properties:
id:
$ref: '#/components/schemas/id'
state:
type: object
properties:
id:
type: integer
example: 2
label:
type: string
example: PROCESSING
externalChannelUrl:
type: string
example: https://youtube.com/c/UC_myfancychannel
createdAt:
type: string
format: date-time
lastSyncAt:
type: string
format: date-time
nullable: true
channel:
$ref: '#/components/schemas/VideoChannel'
VideoChannelList:
properties:
total:
type: integer
example: 1
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/VideoChannel'
- $ref: '#/components/schemas/Actor'
VideoPrivacyConstant:
properties:
id:
$ref: '#/components/schemas/VideoPrivacySet'
label:
type: string
id:
type: integer
minimum: 1
example: 42
VideoRating:
properties:
video:
$ref: '#/components/schemas/Video'
rating:
type: string
enum:
- like
- dislike
- none
description: Rating of the video
required:
- video
- rating
VideoScheduledUpdate:
properties:
privacy:
$ref: '#/components/schemas/VideoPrivacySet'
updateAt:
type: string
format: date-time
description: When to update the video
required:
- updateAt
Video:
properties:
id:
description: object id for the video
allOf:
- $ref: '#/components/schemas/id'
uuid:
description: universal identifier for the video, that can be used across instances
allOf:
- $ref: '#/components/schemas/UUIDv4'
shortUUID:
allOf:
- $ref: '#/components/schemas/shortUUID'
isLive:
type: boolean
liveSchedules:
type: array
items:
$ref: '#/components/schemas/LiveSchedule'
createdAt:
type: string
format: date-time
example: '2017-10-01T10:52:46.396000+00:00'
description: time at which the video object was first drafted
publishedAt:
type: string
format: date-time
example: '2018-10-01T10:52:46.396000+00:00'
description: time at which the video was marked as ready for playback (with restrictions depending on `privacy`). Usually set after a `state` evolution.
updatedAt:
type: string
format: date-time
example: '2021-05-04T08:01:01.502000+00:00'
description: last time the video's metadata was modified
originallyPublishedAt:
type: string
nullable: true
format: date-time
example: '2010-10-01T10:52:46.396000+00:00'
description: used to represent a date of first publication, prior to the practical publication date of `publishedAt`
category:
allOf:
- $ref: '#/components/schemas/VideoConstantNumber-Category'
description: category in which the video is classified
licence:
allOf:
- $ref: '#/components/schemas/VideoConstantNumber-Licence'
description: licence under which the video is distributed
language:
allOf:
- $ref: '#/components/schemas/VideoConstantString-Language'
description: main language used in the video
privacy:
allOf:
- $ref: '#/components/schemas/VideoPrivacyConstant'
description: privacy policy used to distribute the video
truncatedDescription:
type: string
nullable: true
example: '**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\r\n\r\n
**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\r\n*A decentralized video hosting network, based on fr...
'
minLength: 3
maxLength: 250
description: 'truncated description of the video, written in Markdown.
'
duration:
type: integer
example: 1419
format: seconds
description: duration of the video in seconds
aspectRatio:
type: number
nullable: true
format: float
example: 1.778
description: '**PeerTube >= 6.1** Aspect ratio of the video stream'
isLocal:
type: boolean
name:
type: string
description: title of the video
example: What is PeerTube?
minLength: 3
maxLength: 120
thumbnailPath:
description: Deprecated in PeerTube v8.1, use thumbnails instead
deprecated: true
type: string
previewPath:
description: Deprecated in PeerTube v8.1, use thumbnails instead
deprecated: true
type: string
thumbnails:
description: '**PeerTube >= 8.1** Array of thumbnails for the video'
type: array
items:
$ref: '#/components/schemas/Thumbnail'
embedPath:
type: string
example: /videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee
views:
type: integer
example: 1337
likes:
type: integer
example: 42
dislikes:
type: integer
example: 7
comments:
description: '**PeerTube >= 7.2** Number of comments on the video'
type: integer
nsfw:
type: boolean
nsfwFlags:
allOf:
- $ref: '#/components/schemas/NSFWFlag'
nsfwSummary:
type: string
description: '**PeerTube >= 7.2** More information about the sensitive content of the video'
waitTranscoding:
type: boolean
nullable: true
state:
allOf:
- $ref: '#/components/schemas/VideoStateConstant'
description: represents the internal state of the video processing within the PeerTube instance
scheduledUpdate:
nullable: true
allOf:
- $ref: '#/components/schemas/VideoScheduledUpdate'
blacklisted:
nullable: true
type: boolean
blacklistedReason:
nullable: true
type: string
account:
$ref: '#/components/schemas/AccountSummary'
channel:
$ref: '#/components/schemas/VideoChannelSummary'
userHistory:
nullable: true
type: object
properties:
currentTime:
type: integer
username:
type: string
description: immutable name of the user, used to find or mention its actor
example: chocobozzz
pattern: /^[a-z0-9._]+$/
minLength: 1
maxLength: 50
LiveSchedule:
properties:
startAt:
type: string
format: date-time
description: Date when the stream is scheduled to air at
ActorImage:
properties:
path:
description: Deprecated in PeerTube v8.0, use fileUrl instead
deprecated: true
type: string
fileUrl:
description: '**PeerTube >= 7.1**'
type: string
width:
type: integer
height:
type: integer
description: '**PeerTube >= 7.3**'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
VideoChannel:
allOf:
- $ref: '#/components/schemas/Actor'
- type: object
properties:
displayName:
type: string
description: editable name of the channel, displayed in its representations
example: Videos of Framasoft
minLength: 1
maxLength: 120
description:
type: string
nullable: true
example: Videos made with <3 by Framasoft
minLength: 3
maxLength: 1000
support:
type: string
nullable: true
description: text shown by default on all videos of this channel, to tell the audience how to support it
example: Please support our work on https://soutenir.framasoft.org/en/ <3
minLength: 3
maxLength: 1000
isLocal:
type: boolean
updatedAt:
type: string
format: date-time
banners:
type: array
items:
$ref: '#/components/schemas/ActorImage'
ownerAccount:
$ref: '#/components/schemas/Account'
VideoPlaylistPrivacySet:
type: integer
enum:
- 1
- 2
- 3
description: Video playlist privacy policy (see [/video-playlists/privacies](#operation/getPlaylistPrivacyPolicies))
VideoLanguageSet:
type: string
description: language id of the video (see [/videos/languages](#operation/getLanguages))
example: en
shortUUID:
type: string
description: translation of a uuid v4 with a bigger alphabet to have a shorter uuid
example: 2y84q2MQUMWPbiEcxNXMgC
VideoChannelSummary:
properties:
id:
$ref: '#/components/schemas/id'
name:
type: string
displayName:
type: string
url:
type: string
format: url
host:
type: string
format: hostname
avatars:
type: array
items:
$ref: '#/components/schemas/ActorImage'
Follow:
properties:
id:
$ref: '#/components/schemas/id'
follower:
$ref: '#/components/schemas/Actor'
following:
$ref: '#/components/schemas/Actor'
score:
type: number
description: score reflecting the reachability of the actor, with steps of `10` and a base score of `1000`.
state:
type: string
enum:
- pending
- accepted
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
VideoChannelSyncList:
type: object
properties:
total:
type: integer
example: 1
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/VideoChannelSync'
UUIDv4:
type: string
format: uuid
example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
minLength: 36
maxLength: 36
VideoPlaylist:
properties:
id:
$ref: '#/components/schemas/id'
uuid:
$ref: '#/components/schemas/UUIDv4'
shortUUID:
allOf:
- $ref: '#/components/schemas/shortUUID'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
description:
type: string
minLength: 3
maxLength: 1000
displayName:
type: string
minLength: 1
maxLength: 120
isLocal:
type: boolean
videoLength:
type: integer
minimum: 0
thumbnailPath:
description: Deprecated in PeerTube v8.1, use thumbnails instead
deprecated: true
type: string
thumbnails:
description: '**PeerTube >= 8.1** Array of thumbnails for the playlist'
type: array
items:
$ref: '#/components/schemas/Thumbnail'
privacy:
$ref: '#/components/schemas/VideoPlaylistPrivacyConstant'
type:
$ref: '#/components/schemas/VideoPlaylistTypeConstant'
ownerAccount:
$ref: '#/components/schemas/AccountSummary'
videoChannel:
$ref: '#/components/schemas/VideoChannelSummary'
videoChannelPosition:
type: integer
minimum: 1
description: Position of the playlist in the channel
VideoPrivacySet:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
description: privacy id of the video (see [/videos/privacies](#operation/getVideoPrivacyPolicies))
VideoConstantNumber-Category:
properties:
id:
$ref: '#/components/schemas/VideoCategorySet'
label:
type: string
example: Science & Technology
NSFWFlag:
type: integer
enum:
- 0
- 1
- 2
- 4
description: '
NSFW flags (can be combined using bitwise or operator)
- `0` NONE
- `1` VIOLENT
- `2` EXPLICIT_SEX
'
VideoLicenceSet:
type: integer
description: licence id of the video (see [/videos/licences](#operation/getLicences))
example: 2
AccountSummary:
properties:
id:
type: integer
name:
type: string
displayName:
type: string
url:
type: string
format: url
host:
type: string
format: hostname
avatars:
type: array
items:
$ref: '#/components/schemas/ActorImage'
VideoPlaylistPrivacyConstant:
properties:
id:
$ref: '#/components/schemas/VideoPlaylistPrivacySet'
label:
type: string
VideoCategorySet:
type: integer
description: category id of the video (see [/videos/categories](#operation/getCategories))
example: 15
Account:
allOf:
- $ref: '#/components/schemas/Actor'
- properties:
userId:
description: object id for the user tied to this account
nullable: true
allOf:
- $ref: '#/components/schemas/User/properties/id'
displayName:
type: string
description: editable name of the account, displayed in its representations
minLength: 3
maxLength: 120
description:
type: string
nullable: true
description: text or bio displayed on the account's profile
parameters:
videoPlaylistType:
name: playlistType
in: query
required: false
schema:
$ref: '#/components/schemas/VideoPlaylistTypeSet'
autoTagOneOfVideo:
name: autoTagOneOf
in: query
required: false
description: '**PeerTube >= 6.2** **Admins and moderators only** filter on videos that contain one of these automatic tags'
schema:
oneOf:
- type: string
- type: arr
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/peertube/refs/heads/main/openapi/peertube-accounts-api-openapi.yml