Skip to main content

PinePods API (0.1.0)

Download OpenAPI specification:Download

License: GPL-3.0-or-later

HTTP API for the PinePods podcast server. Most endpoints require an Api-Key header tied to a user account; admin-only endpoints additionally require an admin (or web) key. This reference is generated directly from the backend source, so it stays in sync with the running code.

health

Health and instance checks (no auth)

Health check endpoint with database and Redis status GET /api/health

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "database": true,
  • "redis": true,
  • "timestamp": "2019-08-24T14:15:22Z"
}

PinePods instance check endpoint - matches Python API exactly GET /api/pinepods_check

Responses

Response samples

Content type
application/json
{
  • "status_code": 0,
  • "pinepods_instance": true
}

auth

Authentication, sessions, MFA, and OIDC

Oidc callback

query Parameters
code
string or null
state
string or null
error
string or null
error_description
string or null

Responses

Store oidc state

Request Body schema: application/json
required
state
required
string
client_id
required
string
origin_url
string or null
code_verifier
string or null

Responses

Request samples

Content type
application/json
{
  • "state": "string",
  • "client_id": "string",
  • "origin_url": "string",
  • "code_verifier": "string"
}

Response samples

Content type
application/json
null

Get config

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "api_url": "string",
  • "proxy_url": "string",
  • "proxy_host": "string",
  • "proxy_port": "string",
  • "proxy_protocol": "string",
  • "reverse_proxy": "string",
  • "people_url": "string"
}

Create first admin

Request Body schema: application/json
required
username
required
string
password
required
string
email
required
string
fullname
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "email": "string",
  • "fullname": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "user_id": 0
}

First login done

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get auto complete seconds

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get key

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "retrieved_key": "string",
  • "mfa_required": true,
  • "user_id": 0,
  • "mfa_session_token": "string"
}

Get theme

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get user

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "retrieved_id": 0
}

Import opml

Authorizations:
api_key
Request Body schema: application/json
required
podcasts
required
Array of strings
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcasts": [
    ],
  • "user_id": 0
}

Response samples

Content type
application/json
null

Import progress

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get public oidc providers

Responses

Response samples

Content type
application/json
{
  • "providers": [
    ],
  • "disable_standard_login": true
}

Reset password create code

Request Body schema: application/json
required
email
required
string
username
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "code_created": true
}

Get self service status

Responses

Response samples

Content type
application/json
{
  • "status": true,
  • "first_admin_created": true
}

Setup time info

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
timezone
required
string
hour_pref
required
integer <int32>
date_format
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "timezone": "string",
  • "hour_pref": 0,
  • "date_format": "string"
}

Response samples

Content type
application/json
null

Update auto complete seconds

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
seconds
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "seconds": 0
}

Response samples

Content type
application/json
null

Update date format

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
date_format
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "date_format": "string"
}

Response samples

Content type
application/json
null

Update time format

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
hour_pref
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "hour_pref": 0
}

Response samples

Content type
application/json
null

Update timezone

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
timezone
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "timezone": "string"
}

Response samples

Content type
application/json
null

User admin check

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get user details by id

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserID": 0,
  • "Fullname": "string",
  • "Username": "string",
  • "Email": "string",
  • "Hashed_PW": "string",
  • "Salt": "string"
}

Verify and reset password

Request Body schema: application/json
required
reset_code
required
string
email
required
string
new_password
required
string

Responses

Request samples

Content type
application/json
{
  • "reset_code": "string",
  • "email": "string",
  • "new_password": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Verify api key endpoint

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "status": "string"
}

Verify mfa and get key

Request Body schema: application/json
required
mfa_session_token
required
string
mfa_code
required
string

Responses

Request samples

Content type
application/json
{
  • "mfa_session_token": "string",
  • "mfa_code": "string"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "retrieved_key": "string",
  • "verified": true
}

podcasts

Podcast subscriptions, episodes, queue, and playback

Add podcast

Authorizations:
api_key
Request Body schema: application/json
required
required
object (PodcastValues)
podcast_index_id
integer or null <int64>

Responses

Request samples

Content type
application/json
{
  • "podcast_values": {
    },
  • "podcast_index_id": 0
}

Response samples

Content type
application/json
{
  • "success": true,
  • "podcast_id": 0,
  • "first_episode_id": 0
}

Check episode in db

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
query Parameters
episode_title
required
string
episode_url
required
string

Responses

Response samples

Content type
application/json
{
  • "episode_in_db": true
}

Check podcast

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
podcast_name
required
string
podcast_url
required
string

Responses

Response samples

Content type
application/json
{
  • "exists": true
}

Clear all queue

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "data": "string"
}

Delete episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Download all podcast

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Download episode list

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "downloaded_episodes": [
    ]
}

Download podcast

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Download status

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Fetch podcast feed

Authorizations:
api_key
query Parameters
podcast_feed
required
string

Responses

Response samples

Content type
application/json
null

Fetch podcasting 2 data

Authorizations:
api_key
query Parameters
episode_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Fetch podcasting 2 pod data

Authorizations:
api_key
query Parameters
podcast_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Fetch transcript

Authorizations:
api_key
Request Body schema: application/json
required
url
required
string

Responses

Request samples

Content type
application/json
{
  • "url": "string"
}

Response samples

Content type
application/json
null

Get auto download status

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "auto_download": true
}

Get auto play next status

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "auto_play_next": true
}

Get episode id ep name

Authorizations:
api_key
query Parameters
episode_url
required
string
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get episode metadata

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
person_episode
boolean or null
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "person_episode": true,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Get extended stats

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get feed cutoff days

Authorizations:
api_key
query Parameters
podcast_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0,
  • "feed_cutoff_days": 0
}

Get next playlist episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
playlist_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "playlist_id": 0,
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "episodetitle": "string",
  • "podcastname": "string",
  • "episodepubdate": "string",
  • "episodedescription": "string",
  • "episodeartwork": "string",
  • "episodeurl": "string",
  • "queueposition": 0,
  • "episodeduration": 0,
  • "queuedate": "string",
  • "listenduration": 0,
  • "episodeid": 0,
  • "completed": true,
  • "saved": true,
  • "queued": true,
  • "downloaded": true,
  • "is_youtube": true,
  • "is_video": true
}

Get next podcast episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "episodetitle": "string",
  • "podcastname": "string",
  • "episodepubdate": "string",
  • "episodedescription": "string",
  • "episodeartwork": "string",
  • "episodeurl": "string",
  • "queueposition": 0,
  • "episodeduration": 0,
  • "queuedate": "string",
  • "listenduration": 0,
  • "episodeid": 0,
  • "completed": true,
  • "saved": true,
  • "queued": true,
  • "downloaded": true,
  • "is_youtube": true,
  • "is_video": true
}

Get pinepods version

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Get play episode details

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "playback_speed": 0.1,
  • "start_skip": 0,
  • "end_skip": 0,
  • "playback_speed_customized": true
}

Get playback speed

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
integer or null <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
null

Get playlist episodes

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
playlist_id
required
integer <int32>
limit
integer or null <int64>
offset
integer or null <int64>

Responses

Response samples

Content type
application/json
null

Get playlists

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get podcast details

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get podcast details dynamic

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
podcast_title
required
string
podcast_url
required
string
podcast_index_id
required
integer <int32>
added
required
boolean
display_only
boolean or null

Responses

Response samples

Content type
application/json
{
  • "podcastid": 0,
  • "podcastname": "string",
  • "feedurl": "string",
  • "description": "string",
  • "author": "string",
  • "artworkurl": "string",
  • "explicit": true,
  • "episodecount": 0,
  • "categories": null,
  • "websiteurl": "string",
  • "podcastindexid": 0,
  • "is_youtube": true
}

Get podcast id

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
podcast_feed
required
string
podcast_title
required
string

Responses

Response samples

Content type
application/json
null

Get podcast id from ep id

Authorizations:
api_key
query Parameters
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Response samples

Content type
application/json
null

Get podcast id from ep name

Authorizations:
api_key
query Parameters
episode_name
required
string
episode_url
required
string
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get queued episodes

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get rss key

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get stats

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get time info

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "timezone": "string",
  • "hour_pref": 0,
  • "date_format": "string"
}

Home overview

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Increment listen time

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Increment played

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Mark episode completed

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Mark episode uncompleted

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Get podcast favorite status

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
{
  • "is_favorite": true
}

Get notification status

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
{
  • "enabled": true
}

Get podcast download summary

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>
sort_by
string or null
sort_order
string or null
filter
string or null
search
string or null

Responses

Response samples

Content type
application/json
{
  • "podcasts": [
    ]
}

Get podcast downloads paged

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
podcast_id
required
integer <int32>
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>
sort_by
string or null
sort_order
string or null
filter
string or null
search
string or null

Responses

Response samples

Content type
application/json
{
  • "episodes": [
    ],
  • "total": 0
}

Podcast episodes

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
podcast_id
required
integer <int32>
limit
integer or null <int64>
offset
integer or null <int64>
sort_by
string or null
sort_order
string or null
search
string or null
filter
string or null

Responses

Response samples

Content type
application/json
{
  • "episodes": [
    ],
  • "total": 0
}

Get podpeople discover

Authorizations:
api_key
query Parameters
kind
required
string
limit
integer or null <int32>

Responses

Response samples

Content type
application/json
null

Get host podcasts

Authorizations:
api_key
query Parameters
hostname
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "podcasts": [
    ]
}

Queue episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
required
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "data": "string"
}

Record listen duration

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
listen_duration
required
number <double>
is_youtube
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "listen_duration": 0.1,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Add history

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
episode_pos
required
number <float>
user_id
required
integer <int32>
is_youtube
required
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "episode_pos": 0.1,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Remove podcast

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_name
required
string
podcast_url
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_name": "string",
  • "podcast_url": "string"
}

Response samples

Content type
application/json
{
  • "success": true
}

Remove podcast id

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
{
  • "success": true
}

Remove podcast by name

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_name
required
string
podcast_url
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_name": "string",
  • "podcast_url": "string"
}

Response samples

Content type
application/json
null

Remove queued episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
required
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "data": "string"
}

Remove saved episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
required
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Remove youtube channel

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
channel_name
required
string
channel_url
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "channel_name": "string",
  • "channel_url": "string"
}

Response samples

Content type
application/json
null

Reorder queue

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
Request Body schema: application/json
required
episode_ids
required
Array of integers <int32> [ items <int32 > ]

Responses

Request samples

Content type
application/json
{
  • "episode_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Return episodes

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>
since
string or null

Responses

Response samples

Content type
application/json
{
  • "episodes": [
    ],
  • "total": 0
}

Return pods

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "pods": [
    ]
}

Return pods extra

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "pods": [
    ]
}

Save episode

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
user_id
required
integer <int32>
is_youtube
required
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Get saved episodes

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>
sort_by
string or null
sort_order
string or null
filter
string or null
search
string or null

Responses

Response samples

Content type
application/json
{
  • "saved_episodes": [
    ],
  • "total": 0
}

Search data

Authorizations:
api_key
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>
filter
string or null
Request Body schema: application/json
required
search_term
required
string
user_id
required
integer <int32>
categories
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "search_term": "string",
  • "user_id": 0,
  • "categories": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

Stream episode

Authorizations:
api_key
path Parameters
episode_id
required
integer <int32>
query Parameters
api_key
required
string
user_id
required
integer <int32>
type
string or null

Responses

Update episode duration

Authorizations:
api_key
Request Body schema: application/json
required
episode_id
required
integer <int32>
new_duration
required
integer <int32>
is_youtube
required
boolean

Responses

Request samples

Content type
application/json
{
  • "episode_id": 0,
  • "new_duration": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
null

Update feed cutoff days

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>
feed_cutoff_days
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0,
  • "feed_cutoff_days": 0
}

Response samples

Content type
application/json
null

Update podcast info

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
feed_url
string or null
username
string or null
password
string or null
podcast_name
string or null
description
string or null
author
string or null
artwork_url
string or null
website_url
string or null
podcast_index_id
integer or null <int64>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "feed_url": "string",
  • "username": "string",
  • "password": "string",
  • "podcast_name": "string",
  • "description": "string",
  • "author": "string",
  • "artwork_url": "string",
  • "website_url": "string",
  • "podcast_index_id": 0
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

User history

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>
sort_by
string or null
sort_order
string or null
filter
string or null
search
string or null

Responses

Response samples

Content type
application/json
null

Youtube episodes

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Merge podcasts

Authorizations:
api_key
path Parameters
podcast_id
required
integer <int32>
Request Body schema: application/json
required
secondary_podcast_ids
required
Array of integers <int32> [ items <int32 > ]

Responses

Request samples

Content type
application/json
{
  • "secondary_podcast_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

Get merged podcasts

Authorizations:
api_key
path Parameters
podcast_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "merged_podcast_ids": [
    ]
}

Unmerge podcast

Authorizations:
api_key
path Parameters
podcast_id
required
integer <int32>
target_podcast_id
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

episodes

Episode actions: download, save, share, bulk ops

Bulk delete downloaded episodes

Authorizations:
api_key
Request Body schema: application/json
required
episode_ids
required
Array of integers <int32> [ items <int32 > ]
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_ids": [
    ],
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "processed_count": 0,
  • "failed_count": 0
}

Bulk download episodes

Authorizations:
api_key
Request Body schema: application/json
required
episode_ids
required
Array of integers <int32> [ items <int32 > ]
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_ids": [
    ],
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "processed_count": 0,
  • "failed_count": 0
}

Bulk mark episodes completed

Authorizations:
api_key
Request Body schema: application/json
required
episode_ids
required
Array of integers <int32> [ items <int32 > ]
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_ids": [
    ],
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "processed_count": 0,
  • "failed_count": 0
}

Bulk queue episodes

Authorizations:
api_key
Request Body schema: application/json
required
episode_ids
required
Array of integers <int32> [ items <int32 > ]
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_ids": [
    ],
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "processed_count": 0,
  • "failed_count": 0
}

Bulk save episodes

Authorizations:
api_key
Request Body schema: application/json
required
episode_ids
required
Array of integers <int32> [ items <int32 > ]
user_id
required
integer <int32>
is_youtube
boolean or null

Responses

Request samples

Content type
application/json
{
  • "episode_ids": [
    ],
  • "user_id": 0,
  • "is_youtube": true
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "processed_count": 0,
  • "failed_count": 0
}

Get episode by url key

path Parameters
url_key
required
string

Responses

Response samples

Content type
application/json
null

Share episode

Authorizations:
api_key
path Parameters
episode_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Download an episode media file

Authorizations:
api_key
path Parameters
episode_id
required
integer <int32>

Episode ID to download

query Parameters
api_key
string

API key (alternative to the Api-Key header)

Responses

playlists

Smart and manual playlists

Create a playlist

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
name
required
string
description
string or null
podcast_ids
Array of integers or null <int32> [ items <int32 > ]
include_unplayed
required
boolean
include_partially_played
required
boolean
include_played
required
boolean
play_progress_min
number or null <double>
play_progress_max
number or null <double>
time_filter_hours
integer or null <int32>
min_duration
integer or null <int32>
max_duration
integer or null <int32>
sort_order
required
string
group_by_podcast
required
boolean
max_episodes
integer or null <int32>
icon_name
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "name": "string",
  • "description": "string",
  • "podcast_ids": [
    ],
  • "include_unplayed": true,
  • "include_partially_played": true,
  • "include_played": true,
  • "play_progress_min": 0,
  • "play_progress_max": 0,
  • "time_filter_hours": 0,
  • "min_duration": 0,
  • "max_duration": 0,
  • "sort_order": "string",
  • "group_by_podcast": true,
  • "max_episodes": 0,
  • "icon_name": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string",
  • "playlist_id": 0
}

Delete a playlist

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
playlist_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "playlist_id": 0
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Update a playlist

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
playlist_id
required
integer <int32>
name
required
string
description
string or null
podcast_ids
Array of integers or null <int32> [ items <int32 > ]
include_unplayed
required
boolean
include_partially_played
required
boolean
include_played
required
boolean
play_progress_min
number or null <double>
play_progress_max
number or null <double>
time_filter_hours
integer or null <int32>
min_duration
integer or null <int32>
max_duration
integer or null <int32>
sort_order
required
string
group_by_podcast
required
boolean
max_episodes
integer or null <int32>
icon_name
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "playlist_id": 0,
  • "name": "string",
  • "description": "string",
  • "podcast_ids": [
    ],
  • "include_unplayed": true,
  • "include_partially_played": true,
  • "include_played": true,
  • "play_progress_min": 0,
  • "play_progress_max": 0,
  • "time_filter_hours": 0,
  • "min_duration": 0,
  • "max_duration": 0,
  • "sort_order": "string",
  • "group_by_podcast": true,
  • "max_episodes": 0,
  • "icon_name": "string"
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

settings

User and server settings

Add category

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>
category
required
string

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0,
  • "category": "string"
}

Response samples

Content type
application/json
null

Add custom podcast

Authorizations:
api_key
Request Body schema: application/json
required
feed_url
required
string
user_id
required
integer <int32>
username
string or null
password
string or null
youtube_channel
boolean or null
feed_cutoff
integer or null <int32>

Responses

Request samples

Content type
application/json
{
  • "feed_url": "string",
  • "user_id": 0,
  • "username": "string",
  • "password": "string",
  • "youtube_channel": true,
  • "feed_cutoff": 0
}

Response samples

Content type
application/json
null

Add gpodder server

Authorizations:
api_key
Request Body schema: application/json
required
gpodder_url
required
string
gpodder_username
required
string
gpodder_password
required
string

Responses

Request samples

Content type
application/json
{
  • "gpodder_url": "string",
  • "gpodder_username": "string",
  • "gpodder_password": "string"
}

Response samples

Content type
application/json
null

Add login user

Authorizations:
api_key
Request Body schema: application/json
required
fullname
required
string
username
required
string
email
required
string
hash_pw
required
string

Responses

Request samples

Content type
application/json
{
  • "fullname": "string",
  • "username": "string",
  • "email": "string",
  • "hash_pw": "string"
}

Response samples

Content type
application/json
null

Add nextcloud server

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
token
required
string
poll_endpoint
required
string
nextcloud_url
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "token": "string",
  • "poll_endpoint": "string",
  • "nextcloud_url": "string"
}

Response samples

Content type
application/json
null

Add oidc provider

Authorizations:
api_key
Request Body schema: application/json
required
provider_name
required
string
client_id
required
string
client_secret
required
string
authorization_url
required
string
token_url
required
string
user_info_url
required
string
button_text
required
string
scope
required
string
button_color
required
string
button_text_color
required
string
icon_svg
string or null
name_claim
string or null
email_claim
string or null
username_claim
string or null
roles_claim
string or null
user_role
string or null
admin_role
string or null

Responses

Request samples

Content type
application/json
{
  • "provider_name": "string",
  • "client_id": "string",
  • "client_secret": "string",
  • "authorization_url": "string",
  • "token_url": "string",
  • "user_info_url": "string",
  • "button_text": "string",
  • "scope": "string",
  • "button_color": "string",
  • "button_text_color": "string",
  • "icon_svg": "string",
  • "name_claim": "string",
  • "email_claim": "string",
  • "username_claim": "string",
  • "roles_claim": "string",
  • "user_role": "string",
  • "admin_role": "string"
}

Response samples

Content type
application/json
null

Add user

Authorizations:
api_key
Request Body schema: application/json
required
fullname
required
string
username
required
string
email
required
string
hash_pw
required
string

Responses

Request samples

Content type
application/json
{
  • "fullname": "string",
  • "username": "string",
  • "email": "string",
  • "hash_pw": "string"
}

Response samples

Content type
application/json
null

Adjust skip times

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
start_skip
integer <int32>
end_skip
integer <int32>
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "start_skip": 0,
  • "end_skip": 0,
  • "user_id": 0
}

Response samples

Content type
application/json
null

Self service status

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Backup server

Authorizations:
api_key
Request Body schema: application/json
required
database_pass
required
string

Responses

Request samples

Content type
application/json
{
  • "database_pass": "string"
}

Backup user

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Check gpodder settings

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Check mfa enabled

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Clear podcast playback speed

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
null

Create api key

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
rssonly
required
boolean
podcast_ids
Array of integers or null <int32> [ items <int32 > ]

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "rssonly": true,
  • "podcast_ids": [
    ]
}

Response samples

Content type
application/json
null

Delete api key

Authorizations:
api_key
Request Body schema: application/json
required
api_id
required
string

Responses

Request samples

Content type
application/json
{
  • "api_id": "string"
}

Response samples

Content type
application/json
null

Delete backup file

Authorizations:
api_key
Request Body schema: application/json
required
backup_filename
required
string

Responses

Request samples

Content type
application/json
{
  • "backup_filename": "string"
}

Response samples

Content type
application/json
null

Delete mfa

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Download status

Authorizations:
api_key

Responses

Enable auto download

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
auto_download
required
boolean
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "auto_download": true,
  • "user_id": 0
}

Response samples

Content type
application/json
null

Enable auto play next

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
auto_play_next
required
boolean
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "auto_play_next": true,
  • "user_id": 0
}

Response samples

Content type
application/json
null

Enable disable downloads

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Enable disable guest

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Enable disable self service

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Generate mfa secret

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get api info

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get available languages

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "languages": [
    ]
}

Get email settings

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "Emailsettingsid": 0,
  • "ServerName": "string",
  • "ServerPort": 0,
  • "FromEmail": "string",
  • "SendMode": "string",
  • "Encryption": "string",
  • "AuthRequired": 0,
  • "Username": "string",
  • "Password": "string"
}

Get gpodder settings

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get ignored podcasts

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Response samples

Content type
application/json
null

Get scheduled backup

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Response samples

Content type
application/json
null

Get server default language

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Get unmatched podcasts

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Response samples

Content type
application/json
null

Get user info

Authorizations:
api_key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get user language

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "language": "string"
}

Guest status

Authorizations:
api_key

Responses

Ignore podcast index id

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
ignore
required
boolean

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "ignore": true
}

Response samples

Content type
application/json
null

Initiate nextcloud login

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
nextcloud_url
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "nextcloud_url": "string"
}

Response samples

Content type
application/json
null

List backup files

Authorizations:
api_key
Request Body schema: application/json
required
object (ListBackupFilesRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
null

List oidc providers

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Manual backup to directory

Authorizations:
api_key
Request Body schema: application/json
required
object (ManualBackupRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
null

Get my user info

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get person episodes

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
person_id
required
integer <int32>
query Parameters
limit
integer or null <int64>
offset
integer or null <int64>

Responses

Response samples

Content type
application/json
null

Get host feed

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
query Parameters
name
required
string
person_id
integer or null <int32>
include_podcasts
boolean or null

Responses

Response samples

Content type
application/json
null

Subscribe to person

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
person_id
required
integer <int32>
Request Body schema: application/json
required
person_name
required
string
person_img
required
string
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "person_name": "string",
  • "person_img": "string",
  • "podcast_id": 0
}

Response samples

Content type
application/json
null

Get person subscriptions

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Unsubscribe from person

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
person_id
required
integer <int32>
Request Body schema: application/json
required
person_name
required
string

Responses

Request samples

Content type
application/json
{
  • "person_name": "string"
}

Response samples

Content type
application/json
null

Clear podcast cover preference

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
null

Set podcast cover preference

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
use_podcast_covers
required
boolean

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "use_podcast_covers": true
}

Response samples

Content type
application/json
null

Set podcast playback speed

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
playback_speed
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "playback_speed": 0.1
}

Response samples

Content type
application/json
null

Toggle podcast favorite

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
is_favorite
required
boolean

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "is_favorite": true
}

Response samples

Content type
application/json
null

Toggle podcast notifications

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "enabled": true
}

Response samples

Content type
application/json
null

Remove category

Authorizations:
api_key
Request Body schema: application/json
required
podcast_id
required
integer <int32>
user_id
required
integer <int32>
category
required
string

Responses

Request samples

Content type
application/json
{
  • "podcast_id": 0,
  • "user_id": 0,
  • "category": "string"
}

Response samples

Content type
application/json
null

Remove oidc provider

Authorizations:
api_key
Request Body schema: text/plain
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Remove podcast sync

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0
}

Response samples

Content type
application/json
null

Restore from backup file

Authorizations:
api_key
Request Body schema: application/json
required
backup_filename
required
string

Responses

Request samples

Content type
application/json
{
  • "backup_filename": "string"
}

Response samples

Content type
application/json
null

Restore server

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Uploaded file

string

Responses

Response samples

Content type
application/json
null

Rss feed status

Authorizations:
api_key

Responses

Get user rss key

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Save email settings

Authorizations:
api_key
Request Body schema: application/json
required
required
object (EmailSettings)
server_name
required
string
server_port
required
integer <int32>
from_email
required
string
send_mode
required
string
encryption
required
string
auth_required
required
integer <int32>
email_username
required
string
email_password
required
string

Responses

Request samples

Content type
application/json
{
  • "email_settings": {
    }
}

Response samples

Content type
application/json
null

Save mfa secret

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
mfa_secret
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "mfa_secret": "string"
}

Response samples

Content type
application/json
null

Schedule backup

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
cron_schedule
required
string
enabled
required
boolean
retention_count
integer or null <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "cron_schedule": "string",
  • "enabled": true,
  • "retention_count": 0
}

Response samples

Content type
application/json
null

Send email

Authorizations:
api_key
Request Body schema: application/json
required
to_email
required
string
subject
required
string
message
required
string

Responses

Request samples

Content type
application/json
{
  • "to_email": "string",
  • "subject": "string",
  • "message": "string"
}

Response samples

Content type
application/json
null

Send test email

Authorizations:
api_key
Request Body schema: application/json
required
server_name
required
string
server_port
required
string
from_email
required
string
encryption
required
string
auth_required
required
boolean
email_username
required
string
email_password
required
string
to_email
required
string
message
required
string

Responses

Request samples

Content type
application/json
{
  • "server_name": "string",
  • "server_port": "string",
  • "from_email": "string",
  • "encryption": "string",
  • "auth_required": true,
  • "email_username": "string",
  • "email_password": "string",
  • "to_email": "string",
  • "message": "string"
}

Response samples

Content type
application/json
null

Set fullname

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Set password

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>
Request Body schema: application/json
required
hash_pw
required
string

Responses

Request samples

Content type
application/json
{
  • "hash_pw": "string"
}

Response samples

Content type
application/json
null

Get startpage

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Update startpage

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
startpage
string or null

Responses

Response samples

Content type
application/json
null

Toggle rss feeds

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Update oidc provider

Authorizations:
api_key
path Parameters
provider_id
required
integer <int32>
Request Body schema: application/json
required
provider_name
required
string
client_id
required
string
client_secret
required
string
authorization_url
required
string
token_url
required
string
user_info_url
required
string
button_text
required
string
scope
required
string
button_color
required
string
button_text_color
required
string
icon_svg
string or null
name_claim
string or null
email_claim
string or null
username_claim
string or null
roles_claim
string or null
user_role
string or null
admin_role
string or null

Responses

Request samples

Content type
application/json
{
  • "provider_name": "string",
  • "client_id": "string",
  • "client_secret": "string",
  • "authorization_url": "string",
  • "token_url": "string",
  • "user_info_url": "string",
  • "button_text": "string",
  • "scope": "string",
  • "button_color": "string",
  • "button_text_color": "string",
  • "icon_svg": "string",
  • "name_claim": "string",
  • "email_claim": "string",
  • "username_claim": "string",
  • "roles_claim": "string",
  • "user_role": "string",
  • "admin_role": "string"
}

Response samples

Content type
application/json
null

Update podcast index id

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>
podcast_index_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0,
  • "podcast_index_id": 0
}

Response samples

Content type
application/json
null

Update user language

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
language
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "language": "string"
}

Response samples

Content type
application/json
null

Create custom theme

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
name
required
string
background_color
required
string
button_color
required
string
container_button_color
required
string
button_text_color
required
string
text_color
required
string
text_secondary_color
required
string
border_color
required
string
accent_color
required
string
prog_bar_color
required
string
error_color
required
string
bonus_color
required
string
secondary_background
required
string
container_background
required
string
standout_color
required
string
hover_color
required
string
link_color
required
string
thumb_color
required
string
unfilled_color
required
string
check_box_color
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "name": "string",
  • "background_color": "string",
  • "button_color": "string",
  • "container_button_color": "string",
  • "button_text_color": "string",
  • "text_color": "string",
  • "text_secondary_color": "string",
  • "border_color": "string",
  • "accent_color": "string",
  • "prog_bar_color": "string",
  • "error_color": "string",
  • "bonus_color": "string",
  • "secondary_background": "string",
  • "container_background": "string",
  • "standout_color": "string",
  • "hover_color": "string",
  • "link_color": "string",
  • "thumb_color": "string",
  • "unfilled_color": "string",
  • "check_box_color": "string"
}

Response samples

Content type
application/json
null

Delete custom theme

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
theme_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "theme_id": 0
}

Response samples

Content type
application/json
null

Get custom themes

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Delete user

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Final admin

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Get global podcast cover preference

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Get notification settings

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Update notification settings

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
platform
required
string
enabled
required
boolean
ntfy_topic
string or null
ntfy_server_url
string or null
ntfy_username
string or null
ntfy_password
string or null
ntfy_access_token
string or null
gotify_url
string or null
gotify_token
string or null
http_url
string or null
http_token
string or null
http_method
string or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "platform": "string",
  • "enabled": true,
  • "ntfy_topic": "string",
  • "ntfy_server_url": "string",
  • "ntfy_username": "string",
  • "ntfy_password": "string",
  • "ntfy_access_token": "string",
  • "gotify_url": "string",
  • "gotify_token": "string",
  • "http_url": "string",
  • "http_token": "string",
  • "http_method": "string"
}

Response samples

Content type
application/json
null

Set email

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
new_email
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "new_email": "string"
}

Response samples

Content type
application/json
null

Set global podcast cover preference

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
use_podcast_covers
required
boolean
podcast_id
integer or null <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "use_podcast_covers": true,
  • "podcast_id": 0
}

Response samples

Content type
application/json
null

Set isadmin

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
isadmin
required
boolean

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "isadmin": true
}

Response samples

Content type
application/json
null

Set playback speed user

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
playback_speed
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "playback_speed": 0.1
}

Response samples

Content type
application/json
null

Set theme

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
new_theme
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "new_theme": "string"
}

Response samples

Content type
application/json
null

Set username

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
new_username
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "new_username": "string"
}

Response samples

Content type
application/json
null

Test notification

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
platform
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "platform": "string"
}

Response samples

Content type
application/json
null

Verify gpodder auth

Authorizations:
api_key
Request Body schema: application/json
required
gpodder_url
required
string
gpodder_username
required
string
gpodder_password
required
string

Responses

Request samples

Content type
application/json
{
  • "gpodder_url": "string",
  • "gpodder_username": "string",
  • "gpodder_password": "string"
}

Response samples

Content type
application/json
null

Verify mfa

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
mfa_code
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "mfa_code": "string"
}

Response samples

Content type
application/json
null

Verify temp mfa

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
mfa_code
required
string

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "mfa_code": "string"
}

Response samples

Content type
application/json
null

sync

gpodder / Nextcloud synchronization

Gpodder status

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Gpodder toggle

Authorizations:
api_key
Request Body schema: application/json
required
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Response samples

Content type
application/json
null

Gpodder get default device

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Gpodder get all devices

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Gpodder create device

Authorizations:
api_key
Request Body schema: application/json
required
device_name
required
string
device_type
required
string
device_caption
string or null

Responses

Request samples

Content type
application/json
{
  • "device_name": "string",
  • "device_type": "string",
  • "device_caption": "string"
}

Response samples

Content type
application/json
null

Gpodder get user devices

Authorizations:
api_key
path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Gpodder get statistics

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "server_url": "string",
  • "sync_type": "string",
  • "sync_enabled": true,
  • "server_devices": [
    ],
  • "total_devices": 0,
  • "server_subscriptions": [
    ],
  • "total_subscriptions": 0,
  • "recent_episode_actions": [
    ],
  • "total_episode_actions": 0,
  • "connection_status": "string",
  • "last_sync_timestamp": "string",
  • "api_endpoints_tested": [
    ]
}

Gpodder set default

Authorizations:
api_key
path Parameters
device_id
required
string

Responses

Response samples

Content type
application/json
null

Gpodder sync

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Gpodder force sync

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Gpodder test connection

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

tasks

Background tasks and progress

Auto complete episodes

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Cleanup tasks

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Refresh gpodder subscriptions

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Refresh hosts

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Refresh Nextcloud subscriptions

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Refresh all podcasts

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Update playlists

Authorizations:
api_key

Responses

Response samples

Content type
application/json
null

Startup tasks

Request Body schema: application/json
required
api_key
required
string

Responses

Request samples

Content type
application/json
{
  • "api_key": "string"
}

Response samples

Content type
application/json
null

Get active tasks

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get user tasks

path Parameters
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get task status

path Parameters
task_id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "task_type": "string",
  • "user_id": 0,
  • "status": "PENDING",
  • "progress": 0.1,
  • "message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "result": null,
  • "episode_title": "string",
  • "podcast_name": "string"
}

feed

Public RSS feed generation

Get user feed

path Parameters
user_id
required
integer <int32>
query Parameters
api_key
required
string
limit
integer or null <int32>
podcast_id
integer or null <int32>
type
string or null

Responses

proxy

Media and image proxying

Proxy image

query Parameters
url
required
string

Responses

local

Local podcasts and media

Add local podcast

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
directory_path
required
string
podcast_name
required
string
description
string or null
author
string or null
explicit
boolean or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "directory_path": "string",
  • "podcast_name": "string",
  • "description": "string",
  • "author": "string",
  • "explicit": true
}

Response samples

Content type
application/json
null

Add local podcast artwork

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Uploaded file

string

Responses

Response samples

Content type
application/json
null

Detect local cover

Authorizations:
api_key
query Parameters
path
string

Responses

Response samples

Content type
application/json
null

List local directories

Authorizations:
api_key
query Parameters
path
string

Responses

Response samples

Content type
application/json
null

Refresh local podcast

Authorizations:
api_key
Request Body schema: application/json
required
user_id
required
integer <int32>
podcast_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "user_id": 0,
  • "podcast_id": 0
}

Response samples

Content type
application/json
null

youtube

YouTube channel integration

Check youtube channel

Authorizations:
api_key
query Parameters
user_id
required
integer <int32>
channel_name
required
string
channel_url
required
string

Responses

Response samples

Content type
application/json
null

Search youtube channels

Authorizations:
api_key
query Parameters
query
required
string
max_results
integer or null <int32>
user_id
required
integer <int32>

Responses

Response samples

Content type
application/json
null

Subscribe to youtube channel

Authorizations:
api_key
query Parameters
channel_id
required
string
user_id
required
integer <int32>
feed_cutoff
integer or null <int32>

Responses

Response samples

Content type
application/json
null