How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

PodcastIndex Search API

Search the index

PodcastIndex Search API is one of 11 APIs that PodcastIndex publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Search. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 4 operations across 4 paths, and defines 58 schemas. It is described by OpenAPI 3.2.0, at version 1.12.1.

Requests are made against a single base URL, https://api.podcastindex.org/api/1.0.

4 operations 4 paths 58 schemas 4 GET

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.12.1
Base URL
https://api.podcastindex.org/api/1.0
Authentication
API Key, API Key, API Key, API Key
License
Terms of Service
Resource Areas
1

Authentication & Security 4

PodcastIndex Search API declares 4 security schemes for authenticating requests. An API key is passed in the header as User-Agent (User-Agent). An API key is passed in the header as X-Auth-Key (API-Key). An API key is passed in the header as X-Auth-Date (Date). An API key is passed in the header as Authorization (Authorization).

  • User-Agent — Please identify the system/product you are using to make this request. Example: SuperPodcastPlayer/1.3
  • API-Key — Your API key string Example: UXKCGDSYGUUEVQJSYDZH
  • Date — The current UTC unix epoch time as a string. 3 minute window. This value is an integer; round down if needed. The value shall not include a decimal point. Valu…
  • Authorization — A SHA-1 hash of the X-Auth-Key, the corresponding secret and the X-Auth-Date value concatenated as a string. The resulting hash should be encoded as a hexadeci…

Paths & Operations 4

Across 4 paths, the API surfaces 4 operations — 4 GET. Each is listed below with its method, path, parameters, and response codes.

Search 4

Search the index

GET
/search/byterm
Search Podcasts
search/byterm 8 params → 200400401
GET
/search/bytitle
Search Podcasts by Title
search/bytitle 7 params → 200400401
GET
/search/byperson
Search Episodes by Person
search/byperson 4 params → 200400401
GET
/search/music/byterm
Search Music Podcasts
search/music/byterm 7 params → 200400401

Schemas 58

The contract defines 58 schemas that model the data the API accepts and returns. The most detailed are feed_search (31 properties), item_search_byperson (26 properties), transcript (2 properties). Each schema is shown below with its type and property counts.

lastHttpStatus
integer
The last http status code we got when pulling this feed from its url. You will see some made up status codes sometimes. These are what we use to track state wi…
description_response
string
Description of the response
transcriptUrl
stringnull
Link to the file containing the episode transcript Note: in most use cases, the transcripts value should be used instead
count
integer
Number of items returned in request
transcripts
arraynull
List of transcripts for the episode. May not be reported.
feed_search
object
31 properties
transcript
object
This tag is used to link to a transcript or closed captions file. Multiple tags can be present for multiple transcript formats. Detailed file format informatio…
2 properties
lastUpdateTime
integer
The channel-level pubDate for the feed, if it’s sane. If not, this is a heuristic value, arrived at by analyzing other parts of the feed, like item-level pubDa…
author
string
The channel-level author element. Usually iTunes specific, but could be from another namespace if not present.
ownerName
string
The channel-level owner:name element. Usually iTunes specific, but could be from another namespace if not present.
lastGoodHttpStatusTime
integer
Timestamp of the last time we got a "good", meaning non-4xx/non-5xx, status code when pulling this feed from its url.
explicit_episode
integer
Is feed or episode marked as explicit - 0: not marked explicit - 1: marked explicit
id_episode
integer
The internal PodcastIndex.org episode ID.
feeds
array
List of feeds matching request
generator
string
The channel-level generator element if there is one.
query_search
string
Search terms passed to request
type
integer
Type of source feed where: - 0: RSS - 1: Atom
explicit_feed
boolean
Is feed marked as explicit
itunesId_feed
integernull
The iTunes ID of this feed if there is one, and we know what it is.
title_feed
string
Name of the feed
medium_feed
string
The value of the podcast:medium attribute for the feed. See the [medium](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.mdmedium) des…
episodeCount
integer
Number of episodes for this feed known to the index.
enclosureType
string
The Content-Type for the item specified by the enclosureUrl
guid
string
The unique identifier for the episode
newestItemPublishTime
integer
The time the most recent episode in the feed was published. Note: some endpoints use newestItemPubdate while others use newestItemPublishTime. They return the…
dead
integer
At some point, we give up trying to process a feed and mark it as dead. This is usually after 1000 errors without a successful pull/parse cycle. Once the feed…
episode_number
integernull
Episode number
datePublished
integer
The date and time the episode was published
status
string
Indicates API request status
contentType
string
The Content-Type header from the last time we pulled this feed from its url.
items_byperson
array
List of episodes matching request
duration
integernull
The estimated length of the item specified by the enclosureUrl in seconds. Will be null for liveItem.
language
string
The channel-level language specification of the feed. Languages accord with the [RSS Language Spec](https://www.rssboard.org/rss-language-codes).
dateCrawled
integer
The time this episode was found in the feed
title_episode
string
Name of the episode
lastCrawlTime
integer
The last time we attempted to pull this feed from its url.
description_feed
string
The channel-level description Uses the longer of the possible fields in the feed: , and
url_feed
string
Current feed URL
artwork
string
The seemingly best artwork we can find for the feed. Might be the same as image in most instances.
podcastguid
string
The GUID from the podcast:guid tag in the feed. This value is a unique, global identifier for the podcast. See the namespace spec for [guid](https://github.com…
categories
object
An array of categories, where the index is the Category ID and the value is the Category Name. All Category numbers and names are returned by the categories/li…
item_search_byperson
object
26 properties
lastParseTime
integer
The last time we tried to parse the downloaded feed content.
locked
integer
Tell other podcast platforms whether they are allowed to import this feed. A value of 1 means that any attempt to import this feed into a new platform should b…
chaptersUrl
stringnull
Link to the JSON file containing the episode chapters
crawlErrors
integer
The number of errors we’ve encountered trying to pull a copy of the feed. Errors are things like a 500 or 404 response, a server timeout, bad encoding, etc.
enclosureUrl
string
URL/link to the episode file
parseErrors
integer
The number of errors we’ve encountered trying to parse the feed content. Errors here are things like not well-formed xml, bad character encoding, etc. We fix m…
episodeType
stringnull
The type of episode. May be null for liveItem.
image_episode
string
The item-level image for the episode
link_feed
string
The channel-level link in the feed
image_feed
string
The channel-level image element.
originalUrl
string
The URL of the feed, before it changed to the current url value.
enclosureLength
integer
The length of the item specified by the enclosureUrl in bytes
season
integernull
Season number. May be null for liveItem.
imageUrlHash
integer
A CRC32 hash of the image URL with the protocol (http://, https://) removed. 64bit integer.
id_feed
integer
The internal PodcastIndex.org Feed ID.
description_episode
string
The item-level description of the episode. Uses the longer of the possible fields in the feed: , and

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

podcastindex-search-api-openapi.yml Raw ↑

Other APIs PodcastIndex publishes across the network.

PodcastIndex Add API
PodcastIndex Apple Replacement API
PodcastIndex Categories API
PodcastIndex Episodes API
PodcastIndex Hub API
PodcastIndex Podcasts API
PodcastIndex Recent API
PodcastIndex Static Data API
PodcastIndex Stats API
PodcastIndex Value API
Where this information came from

This is an independent, third-party profile of PodcastIndex Search API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.