As stated, Add My Podcast was created to be as user-friendly as possible, both for podcast creators and services.
Our service uses webhooks to notify services whenever a new podcast is added to our library.
Submitting feeds
Submitting feeds via the Add My Podcast API is done by making a POST
or PATCH
request to https://addmypodcast.com/api/feeds
with the following parameters.
Note: Rate limits apply when submitting the same feed multiple times.
Parameters
-
feed
required
The feed url.
Example https://coolpodcasthost.com/brand-new-podcast.xml
-
action
optional
The literal string add
or update
, depending on if it's a new feed or a feed that's recently been updated. This can help services by telling them if they should add the feed to the library or rather refresh its contents.
Defaults to add
for POST
requests and update
for PATCH
requests
Example add
-
opt_in_all
optional
Opt in to all services.
Example true
Default false
-
opt_in
optional
An array of service ids that you want to opt in to. If opt_in_all
is set to false
and opt_in
has no value, your submission will only be forwarded to services that do not require an opt in. If a value is set, only services present will be notified, even if they do not require opt ins. Redundant if opt_in_all
is true
.
Example ["coolpodcastapp"]
Receiving feeds
Whenever someone submits their feed url to Add My Podcast, we will run it through a simple validation process and then notify all verified services by making a POST
request to their respective callback urls with a JSON object in the payload body.
Note: Before adding the feed to your public library, you should consider running a validation process yourself.
Note: You should not download, parse or otherwise process the received feed in direct response to this request. Simply store the feed url for future and further processing.
JSON object
-
feed
required
The feed url submitted.
Example https://coolpodcasthost.com/brand-new-podcast.xml
-
secret
optional
The secret string associated with your service.
Example verysecretsecret
-
action
required
The literal string add
or update
, depending on the request we received.
Example add
-
podcastindex
optional
If the podcast is already known to The Podcast Index, this property will be set and include all the information they have about the feed at the time of the submission. You can read more about what information this includes here.
Example {"id":12345, "itunesId":1234567890, ... }
Example request
POST https://coolpodcastapp.com/some-callback-url HTTP/1.1
...
{
"feed": "https:\/\/coolpodcasthost.com\/brand-new-podcast.xml",
"secret": "verysecretsecret",
"action": "add",
"podcastindex": {
"id": 12345,
"itunesId": 1234567890
...
}
}
Example response
HTTP/1.1 204 No Content
Adding your service
The easiest way to add your service to Add My Podcast is to use our online form located here.
You can also add your service by making a POST
request to https://addmypodcast.com/api/services
with the following requirements.
Note: When sending a request to add your service, we will challenge you by sending a verification request to your callback url with the action
parameter set to add
.
Parameters
-
name
required
The name of your service.
Example Cool Podcast App
-
callback_url
required
The url to which we will send information about new podcasts.
Example https://coolpodcastapp.com/some-callback-url
-
email
optional
An email address associated with your service. We will only use this to inform you of important updates to the service.
Example hello@coolpodcastapp.com
-
website
optional
A website url associated with your service. This will be included in the list of connected services.
Example https://coolpodcastapp.com
-
terms_url
optional
An url to your terms of service. This will be available when users opt in.
Example https://coolpodcastapp.com/tos
-
secret
optional
A secret string that we will include in all future requests. Recommended.
Example verysecretsecret
-
requires_opt_in
optional
Require submitters to opt in to your service, either by opting in to all services or yours specifically. If set to true
, your service will not be notified if the user has not explicitly opted in.
Example true
Default false
Removing your service
Want to stop receiving requests? No problem. The easiest way is to use our form located here.
You can also remove your service by making a DELETE
request to https://addmypodcast.com/api/services
with the following requirements.
Note: When sending a request to remove your service, we will challenge you by sending a verification request to your callback url with the action
parameter set to remove
.
Parameters
-
callback_url
required
The callback url associated with your service.
Example https://coolpodcastapp.com/some-callback-url
-
secret
optional
The secret string associated with your service.
Example verysecretsecret
Verification requests
When you've sent a request to add or remove your service, we will try to verify it by by sending a GET
request to your callback url with the following query parameters.
Note: Verification requests must return a http response code in the range 200-299, otherwise the request is considered to have failed.
Parameters
-
challenge
required
A random string that must be echoed in response to the request.
Example rr7qzKFdoPeHPQQ
-
action
required
The literal string add
or remove
, depending on the request we received.
Example add
-
secret
optional
The secret string associated with your service.
Example verysecretsecret
Example request
GET https://coolpodcastapp.com/some-callback-url?challenge=rr7qzKFdoPeHPQQ&action=add&secret=verysecretsecret HTTP/1.1
Example response
HTTP/1.1 200 OK
...
rr7qzKFdoPeHPQQ