The PeerTube API is a RESTful HTTP API that lets clients list, retrieve, create, update, and delete resources on a PeerTube instance, including videos, channels, playlists, user accounts, abuse reports, plugins, configuration settings, and server jobs, and also supports search queries and playback metric submission.
name(path, required) — The username or handle of the account
GET
/api/v1/accounts/{name}/followers
List followers of an account
name(path, required) — The username or handle of the account
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort followers by criteria
search(query) — Plain text search, applied to various parts of the model depending on endpoint
GET
/api/v1/accounts/{name}/ratings
List ratings of an account
name(path, required) — The username or handle of the account
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
rating(query) — Optionally filter which ratings to retrieve
GET
/api/v1/accounts/{name}/video-channel-syncs
List the synchronizations of video channels of an account
name(path, required) — The username or handle of the account
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
GET
/api/v1/accounts/{name}/video-channels
List video channels of an account
name(path, required) — The username or handle of the account
withStats(query) — include daily view statistics for the last 30 days and total views (only if authentified as the account user)
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
GET
/api/v1/accounts/{name}/video-playlists
List playlists of an account
name(path, required) — The username or handle of the account
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
search(query) — Plain text search, applied to various parts of the model depending on endpoint
playlistType(query)
GET
/api/v1/accounts/{name}/videos
List videos of an account
name(path, required) — The username or handle of the account
categoryOneOf(query) — category id of the video (see [/videos/categories](#operation/getCategories))
isLive(query) — whether or not the video is a live
tagsOneOf(query) — tag(s) of the video
tagsAllOf(query) — tag(s) of the video, where all should be present in the video
licenceOneOf(query) — licence id of the video (see [/videos/licences](#operation/getLicences))
languageOneOf(query) — language id of the video (see [/videos/languages](#operation/getLanguages)). Use `_unknown` to filter on videos that don't have a video language
nsfw(query) — whether to include nsfw videos, if any
isLocal(query) — **PeerTube >= 4.0** Display only local or remote videos
include(query) — **PeerTube >= 4.0** Include additional videos in results (can be combined using bitwise or operator) - `0` NONE - `1` NOT_PUBLISHED_STATE - `2` BLACKLISTED - `4` BLOCKED_OWNER - `8` FILES
privacyOneOf(query) — **PeerTube >= 4.0** Display only videos in this specific privacy/privacies
hasHLSFiles(query) — **PeerTube >= 4.0** Display only videos that have HLS files
hasWebtorrentFiles(query) — **PeerTube >= 4.0** Display only videos that have WebTorrent files
skipCount(query) — if you don't need the `total` in the response
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query)
GET
/api/v1/blocklist/status
Get block status of accounts/hosts
accounts(query) — Check if these accounts are blocked
hosts(query) — Check if these hosts are blocked
GET
/api/v1/config
Get instance public configuration
GET
/api/v1/config/about
Get instance "About" information
DELETE
/api/v1/config/custom
Delete instance runtime configuration
GET
/api/v1/config/custom
Get instance runtime configuration
PUT
/api/v1/config/custom
Set instance runtime configuration
GET
/api/v1/custom-pages/homepage/instance
Get instance custom homepage
PUT
/api/v1/custom-pages/homepage/instance
Set instance custom homepage
POST
/api/v1/jobs/pause
Pause job queue
GET
/api/v1/jobs/{state}
List instance jobs
state(path, required) — The state of the job ('' for for no filter)
jobType(query) — job type
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/metrics/playback
Create playback metrics
GET
/api/v1/oauth-clients/local
Login prerequisite
GET
/api/v1/plugins
List plugins
pluginType(query)
uninstalled(query)
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
GET
/api/v1/plugins/available
List available plugins
search(query)
pluginType(query)
currentPeerTubeEngine(query)
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/plugins/install
Install a plugin
POST
/api/v1/plugins/uninstall
Uninstall a plugin
POST
/api/v1/plugins/update
Update a plugin
GET
/api/v1/plugins/{npmName}
Get a plugin
npmName(path, required) — name of the plugin/theme on npmjs.com or in its package.json
GET
/api/v1/plugins/{npmName}/public-settings
Get a plugin's public settings
npmName(path, required) — name of the plugin/theme on npmjs.com or in its package.json
GET
/api/v1/plugins/{npmName}/registered-settings
Get a plugin's registered settings
npmName(path, required) — name of the plugin/theme on npmjs.com or in its package.json
PUT
/api/v1/plugins/{npmName}/settings
Set a plugin's settings
npmName(path, required) — name of the plugin/theme on npmjs.com or in its package.json
GET
/api/v1/search/video-channels
Search channels
search(query, required) — String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete channel information and interact with it.
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
searchTarget(query) — If the administrator enabled search index support, you can override the default search target. **Warning**: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information: * If the current user has the ability to make a remote URI search (this information is available in the config endpoint), then reuse the search API to make a search using the object URI so PeerTube instance fetches the remote object and fill its database. After that, you can use the classic REST API endpoints to fetch the complete object or interact with it * If the current user doesn't have the ability to make a remote URI search, then redirect the user on the origin instance or fetch the data from the origin instance API
sort(query) — Sort column
GET
/api/v1/search/video-playlists
Search playlists
search(query, required) — String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete playlist information and interact with it.
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
searchTarget(query) — If the administrator enabled search index support, you can override the default search target. **Warning**: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information: * If the current user has the ability to make a remote URI search (this information is available in the config endpoint), then reuse the search API to make a search using the object URI so PeerTube instance fetches the remote object and fill its database. After that, you can use the classic REST API endpoints to fetch the complete object or interact with it * If the current user doesn't have the ability to make a remote URI search, then redirect the user on the origin instance or fetch the data from the origin instance API
sort(query) — Sort column
GET
/api/v1/search/videos
Search videos
search(query, required) — String to search. If the user can make a remote URI search, and the string is an URI then the PeerTube instance will fetch the remote object and add it to its database. Then, you can use the REST API to fetch the complete video information and interact with it.
categoryOneOf(query) — category id of the video (see [/videos/categories](#operation/getCategories))
isLive(query) — whether or not the video is a live
tagsOneOf(query) — tag(s) of the video
tagsAllOf(query) — tag(s) of the video, where all should be present in the video
licenceOneOf(query) — licence id of the video (see [/videos/licences](#operation/getLicences))
languageOneOf(query) — language id of the video (see [/videos/languages](#operation/getLanguages)). Use `_unknown` to filter on videos that don't have a video language
nsfw(query) — whether to include nsfw videos, if any
isLocal(query) — **PeerTube >= 4.0** Display only local or remote videos
include(query) — **PeerTube >= 4.0** Include additional videos in results (can be combined using bitwise or operator) - `0` NONE - `1` NOT_PUBLISHED_STATE - `2` BLACKLISTED - `4` BLOCKED_OWNER - `8` FILES
privacyOneOf(query) — **PeerTube >= 4.0** Display only videos in this specific privacy/privacies
uuids(query) — Find videos with specific UUIDs
hasHLSFiles(query) — **PeerTube >= 4.0** Display only videos that have HLS files
hasWebtorrentFiles(query) — **PeerTube >= 4.0** Display only videos that have WebTorrent files
skipCount(query) — if you don't need the `total` in the response
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
searchTarget(query) — If the administrator enabled search index support, you can override the default search target. **Warning**: If you choose to make an index search, PeerTube will get results from a third party service. It means the instance may not yet know the objects you fetched. If you want to load video/channel information: * If the current user has the ability to make a remote URI search (this information is available in the config endpoint), then reuse the search API to make a search using the object URI so PeerTube instance fetches the remote object and fill its database. After that, you can use the classic REST API endpoints to fetch the complete object or interact with it * If the current user doesn't have the ability to make a remote URI search, then redirect the user on the origin instance or fetch the data from the origin instance API
sort(query) — Sort videos by criteria (prefixing with `-` means `DESC` order):
startDate(query) — Get videos that are published after this date
endDate(query) — Get videos that are published before this date
originallyPublishedStartDate(query) — Get videos that are originally published after this date
originallyPublishedEndDate(query) — Get videos that are originally published before this date
durationMin(query) — Get videos that have this minimum duration
durationMax(query) — Get videos that have this maximum duration
GET
/api/v1/server/audit-logs
Get instance audit logs
GET
/api/v1/server/blocklist/accounts
List account blocks
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/server/blocklist/accounts
Block an account
DELETE
/api/v1/server/blocklist/accounts/{accountName}
Unblock an account by its handle
accountName(path, required) — account to unblock, in the form `username@domain`
GET
/api/v1/server/blocklist/servers
List server blocks
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/server/blocklist/servers
Block a server
DELETE
/api/v1/server/blocklist/servers/{host}
Unblock a server by its domain
host(path, required) — server domain to unblock
GET
/api/v1/server/followers
List instances following the server
state(query)
actorType(query)
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
DELETE
/api/v1/server/followers/{nameWithHost}
Remove or reject a follower to your server
nameWithHost(path, required) — The remote actor handle to remove from your followers
POST
/api/v1/server/followers/{nameWithHost}/accept
Accept a pending follower to your server
nameWithHost(path, required) — The remote actor handle to remove from your followers
POST
/api/v1/server/followers/{nameWithHost}/reject
Reject a pending follower to your server
nameWithHost(path, required) — The remote actor handle to remove from your followers
GET
/api/v1/server/following
List instances followed by the server
state(query)
actorType(query)
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/server/following
Follow a list of actors (PeerTube instance, channel or account)
DELETE
/api/v1/server/following/{hostOrHandle}
Unfollow an actor (PeerTube instance, channel or account)
hostOrHandle(path, required) — The hostOrHandle to unfollow
GET
/api/v1/server/logs
Get instance logs
POST
/api/v1/server/logs/client
Send client log
GET
/api/v1/server/redundancy/videos
List videos being mirrored
target(query, required) — direction of the mirror
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort abuses by criteria
POST
/api/v1/server/redundancy/videos
Mirror a video
DELETE
/api/v1/server/redundancy/videos/{redundancyId}
Delete a mirror done on a video
redundancyId(path, required) — id of an existing redundancy on a video
PUT
/api/v1/server/redundancy/{host}
Update a server redundancy policy
host(path, required) — server domain to mirror
GET
/api/v1/server/stats
Get instance stats
GET
/api/v1/users
List users
search(query) — Plain text search that will match with user usernames or emails
blocked(query) — Filter results down to (un)banned users
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort users by criteria
POST
/api/v1/users
Create a user
POST
/api/v1/users/ask-send-verify-email
Resend user verification link
GET
/api/v1/users/me
Get my user information
PUT
/api/v1/users/me
Update my user information
GET
/api/v1/users/me/abuses
List my abuses
id(query) — only list the report with this id
state(query)
sort(query) — Sort abuses by criteria
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
DELETE
/api/v1/users/me/avatar
Delete my avatar
POST
/api/v1/users/me/avatar/pick
Update my user avatar
GET
/api/v1/users/me/history/videos
List watched videos history
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
search(query) — Plain text search, applied to various parts of the model depending on endpoint
POST
/api/v1/users/me/history/videos/remove
Clear video history
DELETE
/api/v1/users/me/history/videos/{videoId}
Delete history element
videoId(path, required)
PUT
/api/v1/users/me/notification-settings
Update my notification settings
GET
/api/v1/users/me/notifications
List my notifications
unread(query) — only list unread notifications
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/users/me/notifications/read
Mark notifications as read by their id
POST
/api/v1/users/me/notifications/read-all
Mark all my notification as read
GET
/api/v1/users/me/subscriptions
Get my user subscriptions
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
POST
/api/v1/users/me/subscriptions
Add subscription to my user
GET
/api/v1/users/me/subscriptions/exist
Get if subscriptions exist for my user
uris(query, required) — list of uris to check if each is part of the user subscriptions
GET
/api/v1/users/me/subscriptions/videos
List videos of subscriptions of my user
categoryOneOf(query) — category id of the video (see [/videos/categories](#operation/getCategories))
isLive(query) — whether or not the video is a live
tagsOneOf(query) — tag(s) of the video
tagsAllOf(query) — tag(s) of the video, where all should be present in the video
licenceOneOf(query) — licence id of the video (see [/videos/licences](#operation/getLicences))
languageOneOf(query) — language id of the video (see [/videos/languages](#operation/getLanguages)). Use `_unknown` to filter on videos that don't have a video language
nsfw(query) — whether to include nsfw videos, if any
isLocal(query) — **PeerTube >= 4.0** Display only local or remote videos
include(query) — **PeerTube >= 4.0** Include additional videos in results (can be combined using bitwise or operator) - `0` NONE - `1` NOT_PUBLISHED_STATE - `2` BLACKLISTED - `4` BLOCKED_OWNER - `8` FILES
privacyOneOf(query) — **PeerTube >= 4.0** Display only videos in this specific privacy/privacies
hasHLSFiles(query) — **PeerTube >= 4.0** Display only videos that have HLS files
hasWebtorrentFiles(query) — **PeerTube >= 4.0** Display only videos that have WebTorrent files
skipCount(query) — if you don't need the `total` in the response
channelHandle(path, required) — The video channel handle
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort column
playlistType(query)
GET
/api/v1/video-channels/{channelHandle}/videos
List videos of a video channel
channelHandle(path, required) — The video channel handle
categoryOneOf(query) — category id of the video (see [/videos/categories](#operation/getCategories))
isLive(query) — whether or not the video is a live
tagsOneOf(query) — tag(s) of the video
tagsAllOf(query) — tag(s) of the video, where all should be present in the video
licenceOneOf(query) — licence id of the video (see [/videos/licences](#operation/getLicences))
languageOneOf(query) — language id of the video (see [/videos/languages](#operation/getLanguages)). Use `_unknown` to filter on videos that don't have a video language
nsfw(query) — whether to include nsfw videos, if any
isLocal(query) — **PeerTube >= 4.0** Display only local or remote videos
include(query) — **PeerTube >= 4.0** Include additional videos in results (can be combined using bitwise or operator) - `0` NONE - `1` NOT_PUBLISHED_STATE - `2` BLACKLISTED - `4` BLOCKED_OWNER - `8` FILES
privacyOneOf(query) — **PeerTube >= 4.0** Display only videos in this specific privacy/privacies
hasHLSFiles(query) — **PeerTube >= 4.0** Display only videos that have HLS files
hasWebtorrentFiles(query) — **PeerTube >= 4.0** Display only videos that have WebTorrent files
skipCount(query) — if you don't need the `total` in the response
playlistElementId(path, required) — Playlist element id
GET
/api/v1/videos
List videos
categoryOneOf(query) — category id of the video (see [/videos/categories](#operation/getCategories))
isLive(query) — whether or not the video is a live
tagsOneOf(query) — tag(s) of the video
tagsAllOf(query) — tag(s) of the video, where all should be present in the video
licenceOneOf(query) — licence id of the video (see [/videos/licences](#operation/getLicences))
languageOneOf(query) — language id of the video (see [/videos/languages](#operation/getLanguages)). Use `_unknown` to filter on videos that don't have a video language
nsfw(query) — whether to include nsfw videos, if any
isLocal(query) — **PeerTube >= 4.0** Display only local or remote videos
include(query) — **PeerTube >= 4.0** Include additional videos in results (can be combined using bitwise or operator) - `0` NONE - `1` NOT_PUBLISHED_STATE - `2` BLACKLISTED - `4` BLOCKED_OWNER - `8` FILES
privacyOneOf(query) — **PeerTube >= 4.0** Display only videos in this specific privacy/privacies
hasHLSFiles(query) — **PeerTube >= 4.0** Display only videos that have HLS files
hasWebtorrentFiles(query) — **PeerTube >= 4.0** Display only videos that have WebTorrent files
skipCount(query) — if you don't need the `total` in the response
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query)
GET
/api/v1/videos/blacklist
List video blocks
type(query) — list only blocks that match this type: - `1`: manual block - `2`: automatic block that needs review
search(query) — plain search that will match with video titles, and more
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort blocklists by criteria
GET
/api/v1/videos/categories
List available video categories
POST
/api/v1/videos/imports
Import a video
DELETE
/api/v1/videos/imports/{id}
Delete video import
id(path, required) — Entity id
POST
/api/v1/videos/imports/{id}/cancel
Cancel video import
id(path, required) — Entity id
GET
/api/v1/videos/languages
List available video languages
GET
/api/v1/videos/licences
List available video licences
POST
/api/v1/videos/live
Create a live
GET
/api/v1/videos/live/{id}
Get information about a live
id(path, required) — The object id, uuid or short uuid
PUT
/api/v1/videos/live/{id}
Update information about a live
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/live/{id}/sessions
List live sessions
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/ownership
List video ownership changes
POST
/api/v1/videos/ownership/{id}/accept
Accept ownership change request
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/ownership/{id}/refuse
Refuse ownership change request
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/privacies
List available video privacy policies
POST
/api/v1/videos/upload
Upload a video
DELETE
/api/v1/videos/upload-resumable
Cancel the resumable upload of a video, deleting any data uploaded so far
upload_id(query, required) — Created session id to proceed with. If you didn't send chunks in the last 12 hours, it is not valid anymore and the upload session has already been deleted with its data ;-)
Content-Length(header, required)
POST
/api/v1/videos/upload-resumable
Initialize the resumable upload of a video
X-Upload-Content-Length(header, required) — Number of bytes that will be uploaded in subsequent requests. Set this value to the size of the file you are uploading.
X-Upload-Content-Type(header, required) — MIME type of the file that you are uploading. Depending on your instance settings, acceptable values might vary.
PUT
/api/v1/videos/upload-resumable
Send chunk for the resumable upload of a video
upload_id(query, required) — Created session id to proceed with. If you didn't send chunks in the last hour, it is not valid anymore and you need to initialize a new upload.
Content-Range(header, required) — Specifies the bytes in the file that the request is uploading. For example, a value of `bytes 0-262143/1000000` shows that the request is sending the first 262144 bytes (256 x 1024) in a 2,469,036 byte file.
Content-Length(header, required) — Size of the chunk that the request is sending. Remember that larger chunks are more efficient. PeerTube's web client uses chunks varying from 1048576 bytes (~1MB) and increases or reduces size depending on connection health.
DELETE
/api/v1/videos/{id}
Delete a video
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/{id}
Get a video
id(path, required) — The object id, uuid or short uuid
PUT
/api/v1/videos/{id}
Update a video
id(path, required) — The object id, uuid or short uuid
DELETE
/api/v1/videos/{id}/blacklist
Unblock a video by its id
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/{id}/blacklist
Block a video
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/{id}/captions
List captions of a video
id(path, required) — The object id, uuid or short uuid
PUT
/api/v1/videos/{id}/captions/{captionLanguage}
Add or replace a video caption
id(path, required) — The object id, uuid or short uuid
captionLanguage(path, required) — The caption language
GET
/api/v1/videos/{id}/comment-threads
List threads of a video
id(path, required) — The object id, uuid or short uuid
start(query) — Offset used to paginate results
count(query, limit) — Number of items to return
sort(query) — Sort comments by criteria
POST
/api/v1/videos/{id}/comment-threads
Create a thread
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/{id}/comment-threads/{threadId}
Get a thread
id(path, required) — The object id, uuid or short uuid
threadId(path, required) — The thread id (root comment id)
DELETE
/api/v1/videos/{id}/comments/{commentId}
Delete a comment or a reply
id(path, required) — The object id, uuid or short uuid
commentId(path, required) — The comment id
POST
/api/v1/videos/{id}/comments/{commentId}
Reply to a thread of a video
id(path, required) — The object id, uuid or short uuid
commentId(path, required) — The comment id
GET
/api/v1/videos/{id}/description
Get complete video description
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/{id}/give-ownership
Request ownership change
id(path, required) — The object id, uuid or short uuid
DELETE
/api/v1/videos/{id}/hls
Delete video HLS files
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/{id}/live-session
Get live session of a replay
id(path, required) — The object id, uuid or short uuid
PUT
/api/v1/videos/{id}/rate
Like/dislike a video
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/{id}/source
Get video source file metadata
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/{id}/stats/overall
Get overall stats of a video
id(path, required) — The object id, uuid or short uuid
startDate(query) — Filter stats by start date
endDate(query) — Filter stats by end date
GET
/api/v1/videos/{id}/stats/retention
Get retention stats of a video
id(path, required) — The object id, uuid or short uuid
GET
/api/v1/videos/{id}/stats/timeseries/{metric}
Get timeserie stats of a video
id(path, required) — The object id, uuid or short uuid
metric(path, required) — The metric to get
startDate(query) — Filter stats by start date
endDate(query) — Filter stats by end date
POST
/api/v1/videos/{id}/studio/edit
Create a studio task
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/{id}/token
Request video token
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/{id}/transcoding
Create a transcoding job
id(path, required) — The object id, uuid or short uuid
POST
/api/v1/videos/{id}/views
Notify user is watching a video
id(path, required) — The object id, uuid or short uuid
PUT
/api/v1/videos/{id}/watching
Set watching progress of a video
id(path, required) — The object id, uuid or short uuid
DELETE
/api/v1/videos/{id}/webtorrent
Delete video WebTorrent files
id(path, required) — The object id, uuid or short uuid
GET
/feeds/subscriptions.{format}
List videos of subscriptions tied to a token
format(path, required) — format expected (we focus on making `rss` the most featureful ; it serves [Media RSS](https://www.rssboard.org/media-rss))
accountId(query, required) — limit listing to a specific account
videoFileToken(query) — Video file token [generated](#operation/requestVideoToken) by PeerTube so you don't need to provide an OAuth token in the request header.
reinjectVideoFileToken(query) — Ask the server to reinject videoFileToken in URLs in m3u8 playlist
GET
/static/streaming-playlists/hls/{filename}
Get public HLS video file
filename(path, required) — Filename
GET
/static/webseed/private/{filename}
Get private WebTorrent video file
filename(path, required) — Filename
videoFileToken(query) — Video file token [generated](#operation/requestVideoToken) by PeerTube so you don't need to provide an OAuth token in the request header.
GET
/static/webseed/{filename}
Get public WebTorrent video file
filename(path, required) — Filename
186 endpoints auto-detected
Authentication
This API requires authentication: OAuth.
curl -X GET \
"https://peertube2.cpy.re/api/v1/abuses/{abuseId}/messages"