Download OpenAPI specification:Download
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.
| state required | string |
| client_id required | string |
| origin_url | string or null |
| code_verifier | string or null |
{- "state": "string",
- "client_id": "string",
- "origin_url": "string",
- "code_verifier": "string"
}null| username required | string |
| password required | string |
| email required | string |
| fullname required | string |
{- "username": "string",
- "password": "string",
- "email": "string",
- "fullname": "string"
}{- "message": "string",
- "user_id": 0
}{- "providers": [
- {
- "provider_id": 0,
- "provider_name": "string",
- "client_id": "string",
- "authorization_url": "string",
- "scope": "string",
- "button_color": "string",
- "button_text": "string",
- "button_text_color": "string",
- "icon_svg": "string"
}
], - "disable_standard_login": true
}| user_id required | integer <int32> |
| timezone required | string |
| hour_pref required | integer <int32> |
| date_format required | string |
{- "user_id": 0,
- "timezone": "string",
- "hour_pref": 0,
- "date_format": "string"
}null| reset_code required | string |
| email required | string |
| new_password required | string |
{- "reset_code": "string",
- "email": "string",
- "new_password": "string"
}{- "message": "string"
}| mfa_session_token required | string |
| mfa_code required | string |
{- "mfa_session_token": "string",
- "mfa_code": "string"
}{- "status": "string",
- "retrieved_key": "string",
- "verified": true
}required | object (PodcastValues) |
| podcast_index_id | integer or null <int64> |
{- "podcast_values": {
- "pod_title": "string",
- "pod_artwork": "string",
- "pod_author": "string",
- "categories": {
- "property1": "string",
- "property2": "string"
}, - "pod_description": "string",
- "pod_episode_count": 0,
- "pod_feed_url": "string",
- "pod_website": "string",
- "pod_explicit": true,
- "user_id": 0
}, - "podcast_index_id": 0
}{- "success": true,
- "podcast_id": 0,
- "first_episode_id": 0
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}null| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "podcast_id": 0,
- "user_id": 0,
- "is_youtube": true
}null| user_id required | integer <int32> |
{- "downloaded_episodes": [
- {
- "podcastid": 0,
- "podcastname": "string",
- "artworkurl": "string",
- "episodeid": 0,
- "episodetitle": "string",
- "episodepubdate": "string",
- "episodedescription": "string",
- "episodeartwork": "string",
- "episodeurl": "string",
- "episodeduration": 0,
- "podcastindexid": 0,
- "websiteurl": "string",
- "downloadedlocation": "string",
- "listenduration": 0,
- "completed": true,
- "saved": true,
- "queued": true,
- "downloaded": true,
- "is_youtube": true,
- "is_video": true
}
]
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}null| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
{- "podcast_id": 0,
- "user_id": 0
}{- "auto_download": true
}| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
{- "podcast_id": 0,
- "user_id": 0
}{- "auto_play_next": true
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| person_episode | boolean or null |
| is_youtube | boolean or null |
{- "episode_id": 0,
- "user_id": 0,
- "person_episode": true,
- "is_youtube": true
}null| episode_id required | integer <int32> |
| playlist_id required | integer <int32> |
| user_id required | integer <int32> |
{- "episode_id": 0,
- "playlist_id": 0,
- "user_id": 0
}{- "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
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
{- "episode_id": 0,
- "user_id": 0
}{- "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
}| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "podcast_id": 0,
- "user_id": 0,
- "is_youtube": true
}{- "playback_speed": 0.1,
- "start_skip": 0,
- "end_skip": 0,
- "playback_speed_customized": true
}| 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 |
{- "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
}{- "data": [
- {
- "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
}
]
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}null| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube | boolean |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
{- "user_id": 0,
- "podcast_id": 0
}{- "is_favorite": true
}| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
{- "user_id": 0,
- "podcast_id": 0
}{- "enabled": true
}| user_id required | integer <int32> |
| 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 |
{- "podcasts": [
- {
- "podcastid": 0,
- "podcastname": "string",
- "artworkurl": "string",
- "episode_count": 0
}
]
}| 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 |
| filter | string or null |
| search | string or null |
{- "episodes": [
- {
- "podcastid": 0,
- "podcastname": "string",
- "artworkurl": "string",
- "episodeid": 0,
- "episodetitle": "string",
- "episodepubdate": "string",
- "episodedescription": "string",
- "episodeartwork": "string",
- "episodeurl": "string",
- "episodeduration": 0,
- "podcastindexid": 0,
- "websiteurl": "string",
- "downloadedlocation": "string",
- "listenduration": 0,
- "completed": true,
- "saved": true,
- "queued": true,
- "downloaded": true,
- "is_youtube": true,
- "is_video": true
}
], - "total": 0
}| 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 |
{- "episodes": [
- {
- "podcastname": "string",
- "Episodetitle": "string",
- "Episodepubdate": "string",
- "Episodedescription": "string",
- "Episodeartwork": "string",
- "Episodeurl": "string",
- "Episodeduration": 0,
- "Listenduration": 0,
- "Episodeid": 0,
- "Completed": true,
- "saved": true,
- "queued": true,
- "downloaded": true,
- "is_youtube": true,
- "is_video": true
}
], - "total": 0
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube required | boolean |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}{- "data": "string"
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| listen_duration required | number <double> |
| is_youtube | boolean |
{- "episode_id": 0,
- "user_id": 0,
- "listen_duration": 0.1,
- "is_youtube": true
}null| episode_id required | integer <int32> |
| episode_pos required | number <float> |
| user_id required | integer <int32> |
| is_youtube required | boolean |
{- "episode_id": 0,
- "episode_pos": 0.1,
- "user_id": 0,
- "is_youtube": true
}{- "detail": "string"
}| user_id required | integer <int32> |
| podcast_name required | string |
| podcast_url required | string |
{- "user_id": 0,
- "podcast_name": "string",
- "podcast_url": "string"
}{- "success": true
}| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
{- "user_id": 0,
- "podcast_id": 0
}{- "success": true
}| user_id required | integer <int32> |
| podcast_name required | string |
| podcast_url required | string |
{- "user_id": 0,
- "podcast_name": "string",
- "podcast_url": "string"
}null| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube required | boolean |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}{- "data": "string"
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube required | boolean |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}{- "detail": "string"
}| user_id required | integer <int32> |
| channel_name required | string |
| channel_url required | string |
{- "user_id": 0,
- "channel_name": "string",
- "channel_url": "string"
}null| user_id required | integer <int32> |
| episode_ids required | Array of integers <int32> [ items <int32 > ] |
{- "episode_ids": [
- 0
]
}{- "message": "string"
}| user_id required | integer <int32> |
| limit | integer or null <int64> |
| offset | integer or null <int64> |
| since | string or null |
{- "episodes": [
- {
- "podcastid": 0,
- "podcastname": "string",
- "episodetitle": "string",
- "episodepubdate": "string",
- "episodedescription": "string",
- "episodeartwork": "string",
- "episodeurl": "string",
- "episodeduration": 0,
- "listenduration": 0,
- "episodeid": 0,
- "completed": true,
- "saved": true,
- "queued": true,
- "downloaded": true,
- "is_youtube": true,
- "is_video": true
}
], - "total": 0
}{- "pods": [
- {
- "podcastid": 0,
- "podcastname": "string",
- "artworkurl": "string",
- "description": "string",
- "episodecount": 0,
- "websiteurl": "string",
- "feedurl": "string",
- "author": "string",
- "categories": {
- "property1": "string",
- "property2": "string"
}, - "explicit": true,
- "podcastindexid": 0,
- "is_favorite": true,
- "is_video": true
}
]
}{- "pods": [
- {
- "podcastid": 0,
- "podcastname": "string",
- "artworkurl": "string",
- "description": "string",
- "episodecount": 0,
- "websiteurl": "string",
- "feedurl": "string",
- "author": "string",
- "categories": {
- "property1": "string",
- "property2": "string"
}, - "explicit": true,
- "podcastindexid": 0,
- "play_count": 0,
- "episodes_played": 0,
- "oldest_episode_date": "string",
- "is_youtube": true,
- "is_video": true,
- "is_favorite": true
}
]
}| episode_id required | integer <int32> |
| user_id required | integer <int32> |
| is_youtube required | boolean |
{- "episode_id": 0,
- "user_id": 0,
- "is_youtube": true
}{- "detail": "string"
}| user_id required | integer <int32> |
| 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 |
{- "saved_episodes": [
- {
- "episodetitle": "string",
- "podcastname": "string",
- "episodepubdate": "string",
- "episodedescription": "string",
- "episodeartwork": "string",
- "episodeurl": "string",
- "episodeduration": 0,
- "listenduration": 0,
- "episodeid": 0,
- "websiteurl": "string",
- "completed": true,
- "saved": true,
- "queued": true,
- "downloaded": true,
- "is_youtube": true,
- "podcastid": 0,
- "savedate": "string"
}
], - "total": 0
}| limit | integer or null <int64> |
| offset | integer or null <int64> |
| filter | string or null |
| search_term required | string |
| user_id required | integer <int32> |
| categories | Array of strings or null |
{- "search_term": "string",
- "user_id": 0,
- "categories": [
- "string"
]
}{- "data": [
- null
], - "total": 0
}| episode_id required | integer <int32> |
| new_duration required | integer <int32> |
| is_youtube required | boolean |
{- "episode_id": 0,
- "new_duration": 0,
- "is_youtube": true
}null| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
| feed_cutoff_days required | integer <int32> |
{- "podcast_id": 0,
- "user_id": 0,
- "feed_cutoff_days": 0
}null| 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> |
{- "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
}{- "success": true,
- "message": "string"
}| user_id required | integer <int32> |
| 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 |
null| podcast_id required | integer <int32> |
| secondary_podcast_ids required | Array of integers <int32> [ items <int32 > ] |
{- "secondary_podcast_ids": [
- 0
]
}{- "success": true,
- "message": "string"
}| episode_ids required | Array of integers <int32> [ items <int32 > ] |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_ids": [
- 0
], - "user_id": 0,
- "is_youtube": true
}{- "message": "string",
- "processed_count": 0,
- "failed_count": 0
}| episode_ids required | Array of integers <int32> [ items <int32 > ] |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_ids": [
- 0
], - "user_id": 0,
- "is_youtube": true
}{- "message": "string",
- "processed_count": 0,
- "failed_count": 0
}| episode_ids required | Array of integers <int32> [ items <int32 > ] |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_ids": [
- 0
], - "user_id": 0,
- "is_youtube": true
}{- "message": "string",
- "processed_count": 0,
- "failed_count": 0
}| episode_ids required | Array of integers <int32> [ items <int32 > ] |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_ids": [
- 0
], - "user_id": 0,
- "is_youtube": true
}{- "message": "string",
- "processed_count": 0,
- "failed_count": 0
}| episode_ids required | Array of integers <int32> [ items <int32 > ] |
| user_id required | integer <int32> |
| is_youtube | boolean or null |
{- "episode_ids": [
- 0
], - "user_id": 0,
- "is_youtube": true
}{- "message": "string",
- "processed_count": 0,
- "failed_count": 0
}| 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 |
{- "user_id": 0,
- "name": "string",
- "description": "string",
- "podcast_ids": [
- 0
], - "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"
}{- "detail": "string",
- "playlist_id": 0
}| user_id required | integer <int32> |
| playlist_id required | integer <int32> |
{- "user_id": 0,
- "playlist_id": 0
}{- "detail": "string"
}| 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 |
{- "user_id": 0,
- "playlist_id": 0,
- "name": "string",
- "description": "string",
- "podcast_ids": [
- 0
], - "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"
}{- "detail": "string"
}| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
| category required | string |
{- "podcast_id": 0,
- "user_id": 0,
- "category": "string"
}null| 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> |
{- "feed_url": "string",
- "user_id": 0,
- "username": "string",
- "password": "string",
- "youtube_channel": true,
- "feed_cutoff": 0
}null| gpodder_url required | string |
| gpodder_username required | string |
| gpodder_password required | string |
{- "gpodder_url": "string",
- "gpodder_username": "string",
- "gpodder_password": "string"
}null| fullname required | string |
| username required | string |
| email required | string |
| hash_pw required | string |
{- "fullname": "string",
- "username": "string",
- "email": "string",
- "hash_pw": "string"
}null| user_id required | integer <int32> |
| token required | string |
| poll_endpoint required | string |
| nextcloud_url required | string |
{- "user_id": 0,
- "token": "string",
- "poll_endpoint": "string",
- "nextcloud_url": "string"
}null| 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 |
{- "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"
}null| fullname required | string |
| username required | string |
| email required | string |
| hash_pw required | string |
{- "fullname": "string",
- "username": "string",
- "email": "string",
- "hash_pw": "string"
}null| podcast_id required | integer <int32> |
| start_skip | integer <int32> |
| end_skip | integer <int32> |
| user_id required | integer <int32> |
{- "podcast_id": 0,
- "start_skip": 0,
- "end_skip": 0,
- "user_id": 0
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
{- "user_id": 0,
- "podcast_id": 0
}null| user_id required | integer <int32> |
| rssonly required | boolean |
| podcast_ids | Array of integers or null <int32> [ items <int32 > ] |
{- "user_id": 0,
- "rssonly": true,
- "podcast_ids": [
- 0
]
}null| podcast_id required | integer <int32> |
| auto_download required | boolean |
| user_id required | integer <int32> |
{- "podcast_id": 0,
- "auto_download": true,
- "user_id": 0
}null| podcast_id required | integer <int32> |
| auto_play_next required | boolean |
| user_id required | integer <int32> |
{- "podcast_id": 0,
- "auto_play_next": true,
- "user_id": 0
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
| ignore required | boolean |
{- "user_id": 0,
- "podcast_id": 0,
- "ignore": true
}null| user_id required | integer <int32> |
| nextcloud_url required | string |
{- "user_id": 0,
- "nextcloud_url": "string"
}null| user_id required | integer <int32> |
| person_id required | integer <int32> |
| person_name required | string |
| person_img required | string |
| podcast_id required | integer <int32> |
{- "person_name": "string",
- "person_img": "string",
- "podcast_id": 0
}null| user_id required | integer <int32> |
| person_id required | integer <int32> |
| person_name required | string |
{- "person_name": "string"
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
{- "user_id": 0,
- "podcast_id": 0
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
| use_podcast_covers required | boolean |
{- "user_id": 0,
- "podcast_id": 0,
- "use_podcast_covers": true
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
| playback_speed required | number <double> |
{- "user_id": 0,
- "podcast_id": 0,
- "playback_speed": 0.1
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
| is_favorite required | boolean |
{- "user_id": 0,
- "podcast_id": 0,
- "is_favorite": true
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
| enabled required | boolean |
{- "user_id": 0,
- "podcast_id": 0,
- "enabled": true
}null| podcast_id required | integer <int32> |
| user_id required | integer <int32> |
| category required | string |
{- "podcast_id": 0,
- "user_id": 0,
- "category": "string"
}nullrequired | object (EmailSettings) | ||||||||||||||||
| |||||||||||||||||
{- "email_settings": {
- "server_name": "string",
- "server_port": 0,
- "from_email": "string",
- "send_mode": "string",
- "encryption": "string",
- "auth_required": 0,
- "email_username": "string",
- "email_password": "string"
}
}null| user_id required | integer <int32> |
| cron_schedule required | string |
| enabled required | boolean |
| retention_count | integer or null <int32> |
{- "user_id": 0,
- "cron_schedule": "string",
- "enabled": true,
- "retention_count": 0
}null| to_email required | string |
| subject required | string |
| message required | string |
{- "to_email": "string",
- "subject": "string",
- "message": "string"
}null| 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 |
{- "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"
}null| provider_id required | integer <int32> |
| 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 |
{- "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"
}null| user_id required | integer <int32> |
| podcast_id required | integer <int32> |
| podcast_index_id required | integer <int32> |
{- "user_id": 0,
- "podcast_id": 0,
- "podcast_index_id": 0
}null| 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 |
{- "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"
}null| 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 |
{- "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"
}null| user_id required | integer <int32> |
| use_podcast_covers required | boolean |
| podcast_id | integer or null <int32> |
{- "user_id": 0,
- "use_podcast_covers": true,
- "podcast_id": 0
}null| user_id required | integer <int32> |
| playback_speed required | number <double> |
{- "user_id": 0,
- "playback_speed": 0.1
}null| gpodder_url required | string |
| gpodder_username required | string |
| gpodder_password required | string |
{- "gpodder_url": "string",
- "gpodder_username": "string",
- "gpodder_password": "string"
}null| device_name required | string |
| device_type required | string |
| device_caption | string or null |
{- "device_name": "string",
- "device_type": "string",
- "device_caption": "string"
}null{- "server_url": "string",
- "sync_type": "string",
- "sync_enabled": true,
- "server_devices": [
- {
- "id": "string",
- "caption": "string",
- "device_type": "string",
- "subscriptions": 0
}
], - "total_devices": 0,
- "server_subscriptions": [
- {
- "url": "string",
- "title": "string",
- "description": "string"
}
], - "total_subscriptions": 0,
- "recent_episode_actions": [
- {
- "podcast": "string",
- "episode": "string",
- "action": "string",
- "timestamp": "string",
- "position": 0,
- "device": "string"
}
], - "total_episode_actions": 0,
- "connection_status": "string",
- "last_sync_timestamp": "string",
- "api_endpoints_tested": [
- {
- "endpoint": "string",
- "status": "string",
- "response_time_ms": 0,
- "error": "string"
}
]
}[- {
- "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"
}
][- {
- "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"
}
]{- "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"
}| 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 |
{- "user_id": 0,
- "directory_path": "string",
- "podcast_name": "string",
- "description": "string",
- "author": "string",
- "explicit": true
}null