Introduction
Through the podcaster API you can access your media files, podcast feeds, episodes and statistics.
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization
header with the value "Bearer {YOUR_AUTH_KEY}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your token by visiting your personal key management site. There you can create either a personal code (use as Bearer code which you can (also) use for the live examples on this page) or an OAuth client id. Please do not try to build your own (hosting/podcast) service or an user frontend directly on top of our infrastructure. Always cache your requests.
Endpoints
POST api/webhooks-processing
requires authentication
Example request:
curl --request POST \
"https://www.podcaster.de/api/webhooks-processing" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/webhooks-processing"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/webhooks-processing';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/webhooks-processing'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/generate/waveform/{id}
requires authentication
Example request:
curl --request POST \
"https://www.podcaster.de/api/generate/waveform/modi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/generate/waveform/modi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/generate/waveform/modi';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/generate/waveform/modi'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/generate/silence/{id}
requires authentication
Example request:
curl --request POST \
"https://www.podcaster.de/api/generate/silence/sapiente" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/generate/silence/sapiente"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/generate/silence/sapiente';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/generate/silence/sapiente'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Media
List files
requires authentication
Gets a list of the user´s uploaded (media) files. Accessible with scopes: media,media-read-only
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/media?sort_by=name&sort_dir=desc&filter=%22kreativ%22&strict=1&page[number]=1&page[size]=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/media"
);
const params = {
"sort_by": "name",
"sort_dir": "desc",
"filter": ""kreativ"",
"strict": "1",
"page[number]": "1",
"page[size]": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sort_by' => 'name',
'sort_dir' => 'desc',
'filter' => '"kreativ"',
'strict' => '1',
'page[number]' => '1',
'page[size]' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media'
params = {
'sort_by': 'name',
'sort_dir': 'desc',
'filter': '"kreativ"',
'strict': '1',
'page[number]': '1',
'page[size]': '10',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"count": 7,
"items": [
{
"id": "1600240053",
"name": "1400x1400.png",
"byte": 14644,
"created": "16.09.2020 09:07:33",
"size": "14.3 KB",
"last": "09:07:33 16.09.2020",
"cat": "_default_",
"url": "https://beispiel.podcaster.de/download/1400x1400.png",
"extension": "png",
"mimetype": "image/png",
"type": "image",
"created_date": "16.09.2020",
"created_time": "09:09"
},
{
"id": "1593720040",
"name": "3000x3000.png",
"byte": 93132,
"created": "02.07.2020 22:00:40",
"size": "90.95 KB",
"last": "22:00:40 02.07.2020",
"cat": "logos",
"url": "https://beispiel.podcaster.de/download/3000x3000.png",
"extension": "png",
"mimetype": "image/png",
"type": "image",
"created_date": "02.07.2020",
"created_time": "22:10"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Upload file
requires authentication
Stores a file in the media manager.
Example request:
curl --request POST \
"https://www.podcaster.de/api/media" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "media=@/tmp/phpp9y1bY"
const url = new URL(
"https://www.podcaster.de/api/media"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('media', document.querySelector('input[name="media"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'media',
'contents' => fopen('/tmp/phpp9y1bY', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media'
files = {
'media': open('/tmp/phpp9y1bY', 'rb')}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get file
requires authentication
Gets details for a media file.
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/media/123456789" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/media/123456789"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media/123456789';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media/123456789'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"id": 1600240053,
"name": "1400x1400.png",
"byte": 14644,
"size": "14.3 KB",
"time": "16.09.2020 09:07:33",
"last": "16.09.2020 09:07:33",
"cat": null,
"mimetype": "image/png",
"type": "image",
"info": "PNG image data, 1400 x 1400, 8-bit/color RGBA, non-interlaced",
"mime": "image/png"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete file
requires authentication
Remove a file from the media manager.
Example request:
curl --request DELETE \
"https://www.podcaster.de/api/media/123456789" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/media/123456789"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media/123456789';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media/123456789'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Copy file
requires authentication
Creates a copy of an existing media file with a unique name
Example request:
curl --request POST \
"https://www.podcaster.de/api/media/123456798/copy" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"label\": \"datei_version2.mp3\",
\"category\": \"Audios\"
}"
const url = new URL(
"https://www.podcaster.de/api/media/123456798/copy"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"label": "datei_version2.mp3",
"category": "Audios"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media/123456798/copy';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'label' => 'datei_version2.mp3',
'category' => 'Audios',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media/123456798/copy'
payload = {
"label": "datei_version2.mp3",
"category": "Audios"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get metadata
requires authentication
Retrieves the metadata of a mediafile
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/media/eos/metadata" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id\": 3.63988469
}"
const url = new URL(
"https://www.podcaster.de/api/media/eos/metadata"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id": 3.63988469
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media/eos/metadata';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'id' => 3.63988469,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media/eos/metadata'
payload = {
"id": 3.63988469
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 180
x-ratelimit-remaining: 179
access-control-allow-origin: *
{
"message": "Invalid key supplied"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update metadata
requires authentication
Change a mediafile's metadata
Example request:
curl --request PUT \
"https://www.podcaster.de/api/media/pariatur/metadata" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"image\": 56.01353611
}"
const url = new URL(
"https://www.podcaster.de/api/media/pariatur/metadata"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"image": 56.01353611
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/media/pariatur/metadata';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'image' => 56.01353611,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/media/pariatur/metadata'
payload = {
"image": 56.01353611
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Podcasts
List podcasts
requires authentication
Returns a list of podcasts. Accessible with scopes: feeds,feeds-read-only
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/feeds?page%5Bnumber%5D=1&page%5Bsize%5D=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feeds"
);
const params = {
"page[number]": "1",
"page[size]": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feeds';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[size]' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feeds'
params = {
'page[number]': '1',
'page[size]': '10',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"type": "feed",
"id": "modi",
"links": {
"self": "https://www.podcaster.de/api/feeds/modi",
"rss": "https://yndhnn.podcaster.de/modi.rss",
"web": "",
"logo": ""
},
"attributes": {
"rss": {
"title": "Dolorem rerum placeat consequatur mollitia voluptatem autem ut.",
"description": "Harum laboriosam labore dignissimos nisi quo aut. Ducimus quisquam deleniti voluptas ipsam eos tempora. Distinctio corporis odio dolor consectetur. Ab est quod aut quia nesciunt. Aut excepturi omnis velit rerum ut quas. Voluptatem autem id facere vitae. Voluptate consequatur voluptas aut rerum. Suscipit a neque illum ducimus consectetur et sed. Harum nobis consequuntur sed dolore aperiam. Qui tenetur iure voluptas perferendis quia et vero. A quia tempore molestiae illo alias commodi modi quisquam. Unde sint atque consequatur tempore sit. Minima incidunt et non ex qui consectetur dolor. Vero cupiditate optio odio iusto nulla ducimus. Itaque incidunt ipsum laboriosam consectetur. Modi neque aut blanditiis ad esse est. Doloremque sequi sed consequatur culpa odit. Id aliquid molestiae ullam et aperiam et est. Ut autem ut sunt corporis hic qui tempore. Eum eum praesentium recusandae ratione ipsam. Nesciunt similique occaecati explicabo atque accusamus cupiditate aut. Natus vero deleniti inventore amet. Dignissimos quam optio laboriosam voluptas eius delectus et. Qui reprehenderit recusandae expedita voluptates. Omnis ex veniam eius. Possimus dignissimos sed qui repudiandae consequatur quae. Voluptatem consequatur ad et. Rerum necessitatibus non architecto quia iure. Nemo omnis beatae ducimus in. Enim dignissimos ut sed veritatis. Deleniti et esse non aut mollitia delectus. Numquam enim dolor omnis odit nihil iure nobis. Quo sit repellendus ab odio. Omnis temporibus quasi modi fugit. Rerum eos alias atque veritatis qui. Assumenda debitis eveniet minus eos. Incidunt officia quam consectetur iste. Ut non recusandae aliquid quis voluptatum. Eius beatae aspernatur nemo asperiores impedit alias perspiciatis. Necessitatibus deserunt repudiandae architecto deleniti qui molestiae quaerat. Rerum voluptatem cumque ullam sit repellat temporibus commodi. Sapiente quo veritatis doloribus repellendus enim deserunt. Nemo id voluptatum facilis et. Iusto et labore unde velit est. Esse ratione consequatur laudantium est magni quia. Culpa est dignissimos eum esse qui quis. Minima dignissimos modi et tempora animi voluptatem quaerat. Molestiae ipsa culpa ratione minus culpa facere quia quod. Aut quibusdam esse nobis nisi reiciendis minima. Sed nesciunt at ducimus ipsa. Sunt et ut sed iste laborum. Ut eaque aut vel minus. Incidunt labore doloribus ullam vel perspiciatis. Debitis non rerum natus reprehenderit doloremque. Et nostrum quia delectus ipsa consequatur voluptates. Perspiciatis officia ut omnis id sit soluta natus. Incidunt ab laudantium voluptas. Voluptatem tempora voluptas sint provident ut deserunt amet culpa. Pariatur mollitia exercitationem assumenda dolorem eum. Cupiditate pariatur porro non molestias. Velit qui sint atque. Et est blanditiis vel dicta. Consequuntur placeat possimus laborum temporibus nihil minus. Aspernatur atque quis et labore impedit. Et qui dignissimos fugit ratione ea voluptatem ea. Consectetur porro impedit ratione qui facere quis. Autem cum et et omnis et. Aut explicabo consequatur quos tenetur debitis praesentium. Voluptates minus dolorem necessitatibus aut vel dolor. Ut harum tempora aut eveniet velit. Quo dolor nisi iste doloribus vitae quidem in. Sit voluptatem aut omnis aperiam voluptates. Nostrum asperiores dolor dolor consequatur aliquam repellendus. Velit perferendis illo temporibus quas quasi qui aut architecto. Unde molestiae qui sapiente nihil ut quibusdam officia. Sed dolor molestiae amet aspernatur et eligendi. Dolorem veniam ipsa incidunt. Dolores inventore laudantium qui non est sed voluptatem. Ut ad unde totam enim. Sapiente et autem fugiat odio ut nemo dolores. Iste sapiente corporis aperiam recusandae incidunt. Occaecati enim ipsum expedita repellat ipsam expedita. Et ab aspernatur ut consequatur asperiores cumque. Sed soluta ipsam a. Aperiam corporis voluptates nesciunt vero voluptatem sit similique. Voluptates ex iure enim culpa.",
"copyright": "Possimus expedita sit omnis. Quia voluptate error consectetur architecto consectetur. Sint laudantium explicabo possimus consequatur iure dolore."
},
"logo": ""
},
"shows_count": 1,
"relationships": [
"entry"
]
},
{
"type": "feed",
"id": "nobis saepe",
"links": {
"self": "https://www.podcaster.de/api/feeds/nobis%20saepe",
"rss": "https://e4ecr1.podcaster.de/nobis saepe.rss",
"web": "",
"logo": ""
},
"attributes": {
"rss": {
"title": "Est ut beatae est non corrupti ipsam aperiam.",
"description": "Corrupti repellat animi dolores est soluta. Omnis error itaque earum libero voluptatum. Quidem aut quisquam tenetur architecto ratione. Eius et expedita placeat magnam sed tenetur mollitia. Hic et omnis debitis debitis et magnam sunt. Nemo sed id distinctio quas impedit. Non est dolor recusandae aliquid consectetur. Nostrum voluptas cum enim aut asperiores. Voluptatem rem temporibus omnis. Corporis dolorem consequatur et. Explicabo non et delectus eveniet. Quibusdam sequi assumenda dolores voluptatem voluptas vel. Tenetur rerum quidem et optio. Sed ex modi eveniet consequatur. Dolor aliquid qui eligendi natus incidunt. Debitis placeat minima quia doloribus. Placeat qui veritatis iure accusantium necessitatibus et eligendi. Laudantium explicabo quidem consectetur dolorum rem. Quis voluptas est possimus reiciendis esse quasi officia. Ullam ullam assumenda quisquam atque temporibus dolor. Omnis in aut maxime quibusdam tempore. Fugit magnam sunt voluptatibus eum dolorem fugit. Quia quis et velit in est nisi. Necessitatibus et hic reiciendis est rem. Molestiae praesentium itaque dolores laboriosam enim est voluptas. Aliquid sit optio molestiae culpa aut eaque ea consectetur. Consequatur animi consequatur perspiciatis facere eius ipsam soluta. Nihil architecto sunt quasi accusamus nulla animi ea. Modi consequatur exercitationem amet quisquam dolore inventore. Occaecati itaque et amet eos eius illum ut. Quo id autem dicta omnis consequuntur. Quam aut magnam quo repudiandae expedita veritatis blanditiis. Quibusdam quia vitae omnis architecto ut. Mollitia quo optio magnam ex aliquid et commodi. Aut non voluptatum nesciunt id qui sunt qui incidunt. Aliquid numquam omnis quia ipsa dolor illo quidem. Harum dolorem maiores saepe est velit et magni. Maxime in aut et et illum. Corporis ut similique iusto sit eum eos. Illum ut ut omnis perspiciatis. Voluptatum fugiat dolorum inventore amet labore ut. Qui qui illo suscipit eaque aut ipsa. Est autem ab et omnis non. Error est et voluptatem enim nobis ad. Dolorum maxime nihil delectus. Modi a similique minus commodi. Aspernatur aut quam ea dolores minus. Blanditiis harum dolore voluptatem. Repellendus voluptatibus veritatis quibusdam vitae. Voluptas quaerat ut et. Officia similique saepe et sequi occaecati. Fugit et quod cupiditate. Nulla quis fugit velit quo. Et harum nesciunt unde consectetur id nulla. Nostrum error occaecati nesciunt in omnis. In occaecati pariatur non in eveniet repudiandae. Error commodi sunt voluptas ut facilis harum. Nam sequi facere aperiam labore aliquam perferendis. Quos tenetur dolore ut totam blanditiis. Quis tenetur id consequuntur iure ratione sint sed. Iure exercitationem minima dolores nihil. Dolorem nobis quisquam fugiat explicabo. Corrupti quae similique ea placeat fuga ipsa possimus dignissimos. Incidunt maxime in optio pariatur et asperiores nihil autem. Ut qui nisi quo minima sequi. Voluptates aut quo iste quaerat eius consequuntur voluptatum. Temporibus provident omnis aliquam dolor voluptatibus. Non rerum earum quo ex odit minima. Vitae alias porro temporibus reprehenderit delectus rerum molestiae. Excepturi sed dolorem in dicta. Voluptate et exercitationem nihil ipsam nam. Vitae voluptatem consectetur libero quia placeat minima. Omnis sit consequatur doloremque non suscipit architecto. Exercitationem iure facilis doloremque maiores molestiae. Enim explicabo omnis tenetur officia expedita et accusantium. Rerum omnis blanditiis quis impedit. Aut est esse architecto dolor culpa delectus aut sunt. Ea porro provident atque numquam. Sunt aspernatur velit voluptatem occaecati quibusdam totam earum maiores. Explicabo qui perferendis facere illo provident sint laboriosam possimus. Veritatis veritatis est est. Aut asperiores magnam rem. Ut libero ut dolorem libero et fuga.",
"copyright": "Est est natus velit eveniet. A enim dicta optio deserunt quia architecto et. Quod aliquid id aut qui et veritatis. Quo et ut et saepe debitis asperiores."
},
"logo": ""
},
"shows_count": 1,
"relationships": [
"entry"
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get podcast
requires authentication
Returns information about a podcast (feed). Accessible with scopes: feeds,feeds-read-only
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/feeds/beispiel" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feeds/beispiel"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feeds/beispiel';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feeds/beispiel'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"type": "feed",
"id": "unde nam",
"attributes": {
"rss": {
"title": "Eaque omnis soluta distinctio. Nulla id eum tenetur.",
"description": "Delectus sed et quisquam natus porro ad. Nam placeat atque quibusdam consequatur molestiae. Saepe consectetur ex minima. Omnis aut quis ducimus aut. Numquam aperiam vero nihil quis maiores accusantium harum. Sed ipsum consequuntur quia est quas. Qui nulla excepturi tenetur voluptatem modi sed. A inventore corrupti voluptates placeat natus itaque voluptatibus. Aut rem officiis at sint et molestiae. Consequatur nobis qui nihil tempora. Quia voluptas id et itaque eum et. Id voluptatem alias accusamus et quae minus voluptate quasi. Quasi facere alias voluptatem id occaecati. Consequatur necessitatibus cupiditate officia nesciunt. Maxime eaque quaerat incidunt dolor. Sed ipsa ut voluptates labore ut cum. Nihil qui quo qui sint. Dolor expedita at id sit voluptatibus suscipit ab. Dolor et quia ut repellat in quia. Quas accusantium nemo fugit porro. Optio hic quos et omnis est dicta. Nesciunt delectus numquam repudiandae in eveniet. Sed illum numquam et et. Pariatur rerum mollitia non blanditiis sunt assumenda. Perferendis aspernatur iusto et voluptas quia voluptatem. Aut aliquam fuga cupiditate. Dicta quidem qui est et velit ea minus. Et eius error accusantium et accusantium sapiente. Libero ea enim et totam enim voluptates ut. Corrupti et autem iusto magnam et tempora. Reprehenderit aut temporibus totam repudiandae dolorem non. Et facere occaecati sit aut ducimus neque nobis. Laudantium magni odit ea itaque qui praesentium eveniet. Pariatur quia mollitia delectus sint dignissimos fuga. Aut consequatur omnis voluptas odio facere. Non enim aut hic aspernatur voluptatem explicabo sit. Ex magni recusandae saepe voluptates incidunt. Magnam aliquid mollitia ipsum rerum. Aliquam qui est aliquid earum. Delectus aut ipsum earum corrupti ut quibusdam. Asperiores nisi dolores aliquam. Aut hic ullam animi quaerat non. Velit est nihil molestiae ut quo et qui. Magnam qui minima saepe perferendis voluptate sed. Eius et pariatur ad consequatur cumque eos. Delectus ut ipsa minima similique. Natus perspiciatis reprehenderit quia quos quia repudiandae. Sunt quia non aut velit aliquid. Et assumenda omnis qui nihil est excepturi. Cupiditate voluptatum ut suscipit qui ratione et. Ut vitae consectetur voluptate id amet est. Quia ullam sit qui ut. Aspernatur nihil quisquam rerum odio. Neque non ad rerum consequatur quas esse nam corrupti. Minima ut dolorum quo autem. Vel sed beatae aut tempore id eaque aut. Nulla ad perferendis sit provident. Qui autem deleniti maxime repudiandae sint iusto. Excepturi corporis itaque facere blanditiis et neque. Ad perspiciatis similique aliquam quis. Vel occaecati iure illo neque provident. Ipsam sunt ea nam corporis labore ducimus dolor. Nihil voluptas et suscipit voluptate aut excepturi id. Magnam nihil magni quibusdam similique aut quisquam. Autem est delectus in quis. Et vel corrupti adipisci quo in et voluptates. Aut deleniti dolores sint similique officia. Explicabo autem explicabo adipisci optio non. Debitis harum illum esse qui. Eaque maiores qui sit sapiente reiciendis esse hic debitis. Odio libero nihil tenetur autem. Aspernatur quo impedit non. Sed fugit doloribus nam ipsa. Aut doloribus explicabo animi vel. Quia nobis nesciunt itaque sed ut. Sed quisquam neque omnis. Explicabo quas voluptate velit dolorum. Odio adipisci nulla dignissimos aut quo. Eos quis modi sed consequatur suscipit tenetur sequi. Voluptatum sunt sed omnis. Provident consectetur totam est velit sint praesentium. Voluptas eveniet nihil non sed ipsa ut quae. Nulla harum possimus odit iste qui amet. Harum eligendi quo qui rerum pariatur. Inventore est nostrum voluptate ut earum. Soluta nulla libero aut unde et praesentium. Deserunt quo et et nihil neque vero quae. Numquam velit est aut consequatur placeat aut vel. Repellendus aspernatur delectus non voluptates soluta. Quia et at explicabo dolor itaque dolor incidunt. Eveniet quos est et ipsa non adipisci iste. Explicabo dolor saepe pariatur placeat porro tempora illum numquam.",
"copyright": "Officiis iure autem vel. Et quidem explicabo quia excepturi dolorem dolor voluptatem culpa. Provident occaecati nemo expedita qui adipisci nihil. Minima voluptas consequatur et temporibus adipisci vero. Dolores ab eum voluptatem est."
},
"itunes": {
"subtitle": "Itaque modi est quos incidunt."
},
"googleplay": {
"author": "Jose Stadler",
"description": "Molestiae quo natus ratione quia. Vel minima deleniti quae. Delectus rerum sit repellendus modi minus nam voluptates. Voluptates tenetur commodi omnis assumenda sequi explicabo."
},
"logo": ""
},
"links": {
"self": "https://www.podcaster.de/api/feeds/unde%20nam",
"rss": "https://yhxwzy.podcaster.de/unde nam.rss",
"web": "",
"logo": ""
},
"shows_count": 1,
"relationships": [
"entry"
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete podcast
requires authentication
Caution Removes a podcast. Accessible with scope: feeds
Example request:
curl --request DELETE \
"https://www.podcaster.de/api/feeds/beispiel" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feeds/beispiel"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feeds/beispiel';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feeds/beispiel'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Shows
List episodes
requires authentication
Returns a list of episodes (shows) belonging to a podcast feed. Accessible with scopes: shows,shows-read-only
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/feed/beispiel/shows?page[number]=28&page[size]=12&sortBy=lastUpdate&sortDesc=desc&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"filter\": \"Kurzfilm\"
}"
const url = new URL(
"https://www.podcaster.de/api/feed/beispiel/shows"
);
const params = {
"page[number]": "28",
"page[size]": "12",
"sortBy": "lastUpdate",
"sortDesc": "desc",
"page[number]": "1",
"page[size]": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"filter": "Kurzfilm"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/beispiel/shows';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '28',
'page[size]' => '12',
'sortBy' => 'lastUpdate',
'sortDesc' => 'desc',
'page[number]' => '1',
'page[size]' => '10',
],
'json' => [
'filter' => 'Kurzfilm',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/beispiel/shows'
payload = {
"filter": "Kurzfilm"
}
params = {
'page[number]': '28',
'page[size]': '12',
'sortBy': 'lastUpdate',
'sortDesc': 'desc',
'page[number]': '1',
'page[size]': '10',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()
Example response (200):
{
"data": [
{
"type": "show",
"id": "pod-5ea2082c6bc37297937508",
"feed_id": "Der_Podcast",
"links": {
"self": "https://api.podcaster.sattoaster/api/shows/pod-5ea2082c6bc37297937508?feedId=Der_Podcast",
"web": "https://beispiel.podcaster.de/der_podcast/beispiel-013/",
"logo": "",
"media": ""
},
"attributes": {
"title": "Beispiel #013",
"description": "Dies ist eine Beispiel-Episode für den Podcast-Hostingservice podcaster.de",
"author": "beispiel@kundendomain.me (Fabio Bacigalupo)",
"link": "https://beispiel.podcaster.de/der_podcast/beispiel-013/",
"copyright": "podcaster.de",
"logo": "",
"guid": "pod-5ea2082c6bc37297937508",
"publish_date": "1587677228",
"publish_date_formatted": "23.04.2020, 23:27 Uhr",
"is_published": "0",
"file": "",
"enclosure_url": "",
"itunes": {
"title": "Nur als Entwurf",
"subtitle": "",
"logo": "1587677200",
"summary": "",
"episodeType": "full",
"author": "Fabio Bacigalupo",
"duration": "00:05:08",
"season": "",
"episode": ""
},
"type": "unknown",
"duration_formatted": "5m 8s"
},
"relationships": [
"entry"
]
},
{
"type": "show",
"id": "pod-5cc21955598f7405476263",
"feed_id": "Der_Podcast",
"links": {
"self": "https://api.podcaster.sattoaster/api/shows/pod-5cc21955598f7405476263?feedId=Der_Podcast",
"web": "https://beispiel.podcaster.de/der_podcast/beispiel-folge-xyz-011/",
"logo": "",
"media": ""
},
"attributes": {
"title": "#012 Beispiel-Folge",
"description": "<div>Dies ist eine Beispiel-Episode für den Podcast-Hostingservice podcaster.de <br></div><div></div>\n\nIn der Folge wird erklärt, was ein Podcast ist.",
"author": "beispiel@kundendomain.me (Fabio Bacigalupo)",
"link": "https://beispiel.podcaster.de/der_podcast/beispiel-folge-xyz-011/",
"copyright": "podcaster.de",
"logo": "",
"guid": "pod-5cc21955598f7405476263",
"publish_date": "1557908895",
"publish_date_formatted": "15.05.2019, 10:28 Uhr",
"is_published": 1,
"file": "",
"enclosure_url": "",
"itunes": {
"title": "Beispiel-Folge xyz",
"subtitle": "xyz sagt alles",
"logo": "1555322159",
"summary": "",
"episodeType": "full",
"author": "Fabio Bacigalupo",
"duration": "00:05:08",
"season": "1",
"episode": "10"
},
"type": "unknown",
"duration_formatted": "5m 8s"
},
"relationships": [
"entry"
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get episode
requires authentication
Gets details of an episode. Accessible with scopes: shows,shows-read-only
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/feed/LuchaTrashTalk/show/pod-1234567890?feed_id=beispiel" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feed/LuchaTrashTalk/show/pod-1234567890"
);
const params = {
"feed_id": "beispiel",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/LuchaTrashTalk/show/pod-1234567890';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'feed_id' => 'beispiel',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/LuchaTrashTalk/show/pod-1234567890'
params = {
'feed_id': 'beispiel',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": {
"type": "show",
"id": "pod-5ea2082c6bc37297937508",
"feed_id": "Der_Podcast",
"attributes": {
"title": "Beispiel #013",
"subtitle": "",
"link": "https://beispiel.podcaster.de/der_podcast/beispiel-013/",
"description": "Dies ist eine Beispiel-Episode für den Podcast-Hostingservice podcaster.de",
"author": "beispiel@kundendomain.me (Fabio Bacigalupo)",
"email": "",
"copyright": "podcaster.de",
"itunes": {
"title": "Nur als Entwurf",
"subtitle": "",
"logo": "1587677200",
"summary": "",
"episodeType": "full",
"author": "Fabio Bacigalupo",
"duration": "00:05:08",
"season": "",
"episode": ""
}
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create episode
requires authentication
Adds a new episode. Accessible with scope: shows
Example request:
curl --request POST \
"https://www.podcaster.de/api/feed/beispiel/show" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "guid=repellat"\
--form "title=#21 - Spannende Erkenntnisse über Podcasting"\
--form "author=Maxima Musterfrau"\
--form "copyright=Podcast-Team MM"\
--form "is_public=1"\
--form "description="\
--form "itunes[title]=Spannende Erkenntnisse über Podcasting"\
--form "itunes[subtitle]=Dinge, die Du noch nicht wusstest"\
--form "itunes[summary]=Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt."\
--form "itunes[episode]=21"\
--form "itunes[episodeType]=full"\
--form "itunes[season]=4"\
--form "itunes[logo]=2435456"\
--form "itunes[explicit]=1"\
--form "itunes[author]=Bastian Albert, Fabio Bacigalupo"\
--form "publishing_date=2023-05-01"\
--form "publishing_time=12:10:59"\
--form "link=https://mein-blog-zum.podcast/s-e-u-p"\
--form "show_media=12345"\
--form "podcastindex[transcript]=148.263717687"\
--form "write_metadata="\
--form "media=@/tmp/phpj2LEgF" \
--form "cover=@/tmp/phpftEMY2"
const url = new URL(
"https://www.podcaster.de/api/feed/beispiel/show"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('guid', 'repellat');
body.append('title', '#21 - Spannende Erkenntnisse über Podcasting');
body.append('author', 'Maxima Musterfrau');
body.append('copyright', 'Podcast-Team MM');
body.append('is_public', '1');
body.append('description', '');
body.append('itunes[title]', 'Spannende Erkenntnisse über Podcasting');
body.append('itunes[subtitle]', 'Dinge, die Du noch nicht wusstest');
body.append('itunes[summary]', 'Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.');
body.append('itunes[episode]', '21');
body.append('itunes[episodeType]', 'full');
body.append('itunes[season]', '4');
body.append('itunes[logo]', '2435456');
body.append('itunes[explicit]', '1');
body.append('itunes[author]', 'Bastian Albert, Fabio Bacigalupo');
body.append('publishing_date', '2023-05-01');
body.append('publishing_time', '12:10:59');
body.append('link', 'https://mein-blog-zum.podcast/s-e-u-p');
body.append('show_media', '12345');
body.append('podcastindex[transcript]', '148.263717687');
body.append('write_metadata', '');
body.append('media', document.querySelector('input[name="media"]').files[0]);
body.append('cover', document.querySelector('input[name="cover"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/beispiel/show';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'guid',
'contents' => 'repellat'
],
[
'name' => 'title',
'contents' => '#21 - Spannende Erkenntnisse über Podcasting'
],
[
'name' => 'author',
'contents' => 'Maxima Musterfrau'
],
[
'name' => 'copyright',
'contents' => 'Podcast-Team MM'
],
[
'name' => 'is_public',
'contents' => '1'
],
[
'name' => 'description',
'contents' => ''
],
[
'name' => 'itunes[title]',
'contents' => 'Spannende Erkenntnisse über Podcasting'
],
[
'name' => 'itunes[subtitle]',
'contents' => 'Dinge, die Du noch nicht wusstest'
],
[
'name' => 'itunes[summary]',
'contents' => 'Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.'
],
[
'name' => 'itunes[episode]',
'contents' => '21'
],
[
'name' => 'itunes[episodeType]',
'contents' => 'full'
],
[
'name' => 'itunes[season]',
'contents' => '4'
],
[
'name' => 'itunes[logo]',
'contents' => '2435456'
],
[
'name' => 'itunes[explicit]',
'contents' => '1'
],
[
'name' => 'itunes[author]',
'contents' => 'Bastian Albert, Fabio Bacigalupo'
],
[
'name' => 'publishing_date',
'contents' => '2023-05-01'
],
[
'name' => 'publishing_time',
'contents' => '12:10:59'
],
[
'name' => 'link',
'contents' => 'https://mein-blog-zum.podcast/s-e-u-p'
],
[
'name' => 'show_media',
'contents' => '12345'
],
[
'name' => 'podcastindex[transcript]',
'contents' => '148.263717687'
],
[
'name' => 'write_metadata',
'contents' => ''
],
[
'name' => 'media',
'contents' => fopen('/tmp/phpj2LEgF', 'r')
],
[
'name' => 'cover',
'contents' => fopen('/tmp/phpftEMY2', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/beispiel/show'
files = {
'guid': (None, 'repellat'),
'title': (None, '#21 - Spannende Erkenntnisse über Podcasting'),
'author': (None, 'Maxima Musterfrau'),
'copyright': (None, 'Podcast-Team MM'),
'is_public': (None, '1'),
'description': (None, ''),
'itunes[title]': (None, 'Spannende Erkenntnisse über Podcasting'),
'itunes[subtitle]': (None, 'Dinge, die Du noch nicht wusstest'),
'itunes[summary]': (None, 'Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.'),
'itunes[episode]': (None, '21'),
'itunes[episodeType]': (None, 'full'),
'itunes[season]': (None, '4'),
'itunes[logo]': (None, '2435456'),
'itunes[explicit]': (None, '1'),
'itunes[author]': (None, 'Bastian Albert, Fabio Bacigalupo'),
'publishing_date': (None, '2023-05-01'),
'publishing_time': (None, '12:10:59'),
'link': (None, 'https://mein-blog-zum.podcast/s-e-u-p'),
'show_media': (None, '12345'),
'podcastindex[transcript]': (None, '148.263717687'),
'write_metadata': (None, ''),
'media': open('/tmp/phpj2LEgF', 'rb'),
'cover': open('/tmp/phpftEMY2', 'rb')}
payload = {
"guid": "repellat",
"title": "#21 - Spannende Erkenntnisse über Podcasting",
"author": "Maxima Musterfrau",
"copyright": "Podcast-Team MM",
"is_public": 1,
"description": "",
"itunes": {
"title": "Spannende Erkenntnisse über Podcasting",
"subtitle": "Dinge, die Du noch nicht wusstest",
"summary": "Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.",
"episode": 21,
"episodeType": "full",
"season": "4",
"logo": 2435456,
"explicit": true,
"author": "Bastian Albert, Fabio Bacigalupo"
},
"publishing_date": "2023-05-01",
"publishing_time": "12:10:59",
"link": "https:\/\/mein-blog-zum.podcast\/s-e-u-p",
"show_media": 12345,
"podcastindex": {
"transcript": 148.263717687
},
"write_metadata": false
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update episode
requires authentication
Updates details of an episode. Accessible with scope: shows
Example request:
curl --request PUT \
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"#21 - Spannende Erkenntnisse über Podcasting\",
\"author\": \"est\",
\"copyright\": \"edyjoeaxdolnttlrklu\",
\"is_public\": 1,
\"description\": \"Sed architecto aliquam non excepturi excepturi aut perferendis.\",
\"itunes\": {
\"title\": \"Spannende Erkenntnisse über Podcasting\",
\"subtitle\": \"Dinge, die Du noch nicht wusstest\",
\"summary\": \"Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.\",
\"episode\": 21,
\"episodeType\": \"full\",
\"season\": \"4\",
\"logo\": 2435456,
\"explicit\": true,
\"author\": \"Bastian Albert, Fabio Bacigalupo\"
},
\"publishing_date\": \"2023-05-01\",
\"publishing_time\": \"12:10:59\",
\"link\": \"https:\\/\\/mein-blog-zum.podcast\\/s-e-u-p\",
\"show_media\": 12345,
\"podcastindex\": {
\"transcript\": 0.8105995
},
\"write_metadata\": false
}"
const url = new URL(
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "#21 - Spannende Erkenntnisse über Podcasting",
"author": "est",
"copyright": "edyjoeaxdolnttlrklu",
"is_public": 1,
"description": "Sed architecto aliquam non excepturi excepturi aut perferendis.",
"itunes": {
"title": "Spannende Erkenntnisse über Podcasting",
"subtitle": "Dinge, die Du noch nicht wusstest",
"summary": "Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.",
"episode": 21,
"episodeType": "full",
"season": "4",
"logo": 2435456,
"explicit": true,
"author": "Bastian Albert, Fabio Bacigalupo"
},
"publishing_date": "2023-05-01",
"publishing_time": "12:10:59",
"link": "https:\/\/mein-blog-zum.podcast\/s-e-u-p",
"show_media": 12345,
"podcastindex": {
"transcript": 0.8105995
},
"write_metadata": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'title' => '#21 - Spannende Erkenntnisse über Podcasting',
'author' => 'est',
'copyright' => 'edyjoeaxdolnttlrklu',
'is_public' => 1,
'description' => 'Sed architecto aliquam non excepturi excepturi aut perferendis.',
'itunes' => [
'title' => 'Spannende Erkenntnisse über Podcasting',
'subtitle' => 'Dinge, die Du noch nicht wusstest',
'summary' => 'Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.',
'episode' => 21,
'episodeType' => 'full',
'season' => '4',
'logo' => 2435456,
'explicit' => true,
'author' => 'Bastian Albert, Fabio Bacigalupo',
],
'publishing_date' => '2023-05-01',
'publishing_time' => '12:10:59',
'link' => 'https://mein-blog-zum.podcast/s-e-u-p',
'show_media' => 12345,
'podcastindex' => [
'transcript' => 0.8105995,
],
'write_metadata' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890'
payload = {
"title": "#21 - Spannende Erkenntnisse über Podcasting",
"author": "est",
"copyright": "edyjoeaxdolnttlrklu",
"is_public": 1,
"description": "Sed architecto aliquam non excepturi excepturi aut perferendis.",
"itunes": {
"title": "Spannende Erkenntnisse über Podcasting",
"subtitle": "Dinge, die Du noch nicht wusstest",
"summary": "Wir haben den Podcast-Markt analysiert und Überraschendes festgestellt.",
"episode": 21,
"episodeType": "full",
"season": "4",
"logo": 2435456,
"explicit": true,
"author": "Bastian Albert, Fabio Bacigalupo"
},
"publishing_date": "2023-05-01",
"publishing_time": "12:10:59",
"link": "https:\/\/mein-blog-zum.podcast\/s-e-u-p",
"show_media": 12345,
"podcastindex": {
"transcript": 0.8105995
},
"write_metadata": false
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete episode
requires authentication
Removes a show from a podcast (and the feed). Accessible with scope: shows
Example request:
curl --request DELETE \
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Copy episode
requires authentication
Creates a copy of a show. You can create a duplicate within the same podcast or copy the show to another podcast.
The copy is always saved with status draft
.
Accessible with scope: shows
Example request:
curl --request POST \
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/copy?feed_id_to=test" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/copy"
);
const params = {
"feed_id_to": "test",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/copy';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'feed_id_to' => 'test',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/copy'
params = {
'feed_id_to': 'test',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, params=params)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Move episode
requires authentication
Moves a show from one podcast to another.
Accessible with scope: shows
Example request:
curl --request POST \
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/move/test" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/move/test"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/move/test';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/feed/beispiel/show/pod-1234567890/move/test'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User
Get user
requires authentication
Fetches details about authenticated user.
Example request:
curl --request GET \
--get "https://www.podcaster.de/api/user" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://www.podcaster.de/api/user"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/user';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/user'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"type": "user",
"id": 20859,
"attributes": {
"id": 20859,
"name": "Berta Jacob",
"first_name": "Berta",
"last_name": "Jacob",
"username": "juri08",
"email": "schumacher.elsa@example.com",
"name_title": null,
"telephone": "+49 951 812 7083",
"telefax": "+49 89 585 8437",
"url": "http://heuer.com/",
"organisation": "Ebert KG",
"department": null,
"street": "Winterweg",
"housenumber": "Ivo-Baier-Weg 681",
"city": "Schorndorf",
"country": "IL",
"post_code": "68751",
"representative": null,
"mediarepresentative": null,
"register_court": null,
"register_number": null,
"board": null,
"chairman": null,
"controlling_authority": null,
"additional_specifications": null
},
"links": {
"self": "https://www.podcaster.de/api/user"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update user
requires authentication
Updates details of a podcast. Accessible with scope: feeds
Example request:
curl --request PUT \
"https://www.podcaster.de/api/user/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name_title\": \"Prof\",
\"first_name\": \"Fabio\",
\"last_name\": \"Bacigalupo\",
\"telephone\": \"030-549072653\",
\"telefax\": \"030-549072660\",
\"url\": \"https:\\/\\/www.podcaster.de\",
\"organisation\": \"Podcast Plattform\",
\"department\": \"IT\",
\"street\": \"Brunnenstraße\",
\"housenumber\": \"147\",
\"city\": \"Berlin\",
\"country\": \"DE\",
\"post_code\": \"10115\",
\"representative\": \"Fabio Bacigalupo\",
\"mediarepresentative\": \"Steffen Wrede\",
\"register_court\": \"Berlin\",
\"register_number\": \"1234567890\",
\"board\": \"Yvonne Ständin\",
\"chairman\": \"Frauke Vorsätzer\",
\"controlling_authority\": \"Bafa\",
\"additional_specifications\": \"Hier kann ein beliebiger Freitext ergänzt werden.\",
\"organisiation\": \"\'Podcast Plattform\'\"
}"
const url = new URL(
"https://www.podcaster.de/api/user/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name_title": "Prof",
"first_name": "Fabio",
"last_name": "Bacigalupo",
"telephone": "030-549072653",
"telefax": "030-549072660",
"url": "https:\/\/www.podcaster.de",
"organisation": "Podcast Plattform",
"department": "IT",
"street": "Brunnenstraße",
"housenumber": "147",
"city": "Berlin",
"country": "DE",
"post_code": "10115",
"representative": "Fabio Bacigalupo",
"mediarepresentative": "Steffen Wrede",
"register_court": "Berlin",
"register_number": "1234567890",
"board": "Yvonne Ständin",
"chairman": "Frauke Vorsätzer",
"controlling_authority": "Bafa",
"additional_specifications": "Hier kann ein beliebiger Freitext ergänzt werden.",
"organisiation": "'Podcast Plattform'"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.podcaster.de/api/user/1';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name_title' => 'Prof',
'first_name' => 'Fabio',
'last_name' => 'Bacigalupo',
'telephone' => '030-549072653',
'telefax' => '030-549072660',
'url' => 'https://www.podcaster.de',
'organisation' => 'Podcast Plattform',
'department' => 'IT',
'street' => 'Brunnenstraße',
'housenumber' => '147',
'city' => 'Berlin',
'country' => 'DE',
'post_code' => '10115',
'representative' => 'Fabio Bacigalupo',
'mediarepresentative' => 'Steffen Wrede',
'register_court' => 'Berlin',
'register_number' => '1234567890',
'board' => 'Yvonne Ständin',
'chairman' => 'Frauke Vorsätzer',
'controlling_authority' => 'Bafa',
'additional_specifications' => 'Hier kann ein beliebiger Freitext ergänzt werden.',
'organisiation' => '\'Podcast Plattform\'',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://www.podcaster.de/api/user/1'
payload = {
"name_title": "Prof",
"first_name": "Fabio",
"last_name": "Bacigalupo",
"telephone": "030-549072653",
"telefax": "030-549072660",
"url": "https:\/\/www.podcaster.de",
"organisation": "Podcast Plattform",
"department": "IT",
"street": "Brunnenstraße",
"housenumber": "147",
"city": "Berlin",
"country": "DE",
"post_code": "10115",
"representative": "Fabio Bacigalupo",
"mediarepresentative": "Steffen Wrede",
"register_court": "Berlin",
"register_number": "1234567890",
"board": "Yvonne Ständin",
"chairman": "Frauke Vorsätzer",
"controlling_authority": "Bafa",
"additional_specifications": "Hier kann ein beliebiger Freitext ergänzt werden.",
"organisiation": "'Podcast Plattform'"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.