Skip the HTTP layer entirely. Our official TypeScript and Python SDKs are generated from the same OpenAPI spec, so they stay in lockstep with the API.
The SDK works with your existing Pod Engine API key — API access is included in every paid plan. See pricing for details.
@podengine/sdk is the official TypeScript/JavaScript client for the Pod Engine API. Resources are grouped
by domain — pe.podcasts, pe.episodes, pe.charts, pe.search,
and more — so the whole API is discoverable through autocomplete.
Requires Node 18+ (or any runtime with a global fetch).
npm install @podengine/sdk
# or: pnpm add @podengine/sdk / yarn add @podengine/sdk / bun add @podengine/sdk Construct the client with your API key — it's sent on every request automatically.
import { PodEngine } from '@podengine/sdk';
const pe = new PodEngine({ apiKey: process.env.PODENGINE_API_KEY! });
// Search 4M+ podcasts
const { result } = await pe.search.searchPodcasts({
searchTerms: [{ searchTerm: 'startups', searchType: 'text' }],
});
// Get the latest Apple chart
const chart = await pe.charts.getLatestChart({
chartType: 'apple',
country: 'us',
category: 'top podcasts',
});
// Pull a full transcript
const { episodeTranscriptText } = await pe.episodes.getEpisodeTranscriptText({ episodeId });
Override the base URL, set timeouts and retries, attach default headers, or pass per-call options such as an
AbortSignal.
const pe = new PodEngine({
apiKey: process.env.PODENGINE_API_KEY!,
baseUrl: 'https://api.podengine.ai', // override for staging/self-host
source: 'my-app', // sent as the x-source header for attribution
timeout: 30_000, // per-request timeout in ms (default: none)
maxRetries: 2, // retries for 429/5xx/network (default: 2)
headers: { 'x-team': 'growth' }, // extra headers on every request
});
// Every method also accepts per-call options as a final argument
const controller = new AbortController();
const latest = await pe.charts.getLatestChart(
{ chartType: 'apple', country: 'us', category: 'top podcasts' },
{ signal: controller.signal, timeout: 5_000 },
); podengine is the official Python client for the Pod Engine API. Resources are grouped by domain —
pe.podcasts, pe.episodes, pe.charts, pe.search, and more —
and every request and response is a typed pydantic model. Both synchronous and asynchronous clients are
included.
Requires Python 3.10+. Depends only on httpx and pydantic.
pip install podengine
# or: uv add podengine / poetry add podengine Construct the client with your API key — it's sent on every request automatically.
import os
from podengine import PodEngine
pe = PodEngine(api_key=os.environ["PODENGINE_API_KEY"])
# Get the latest Apple chart
chart = pe.charts.get_latest_chart(
chart_type="apple",
country="us",
category="top podcasts",
)
# Pull a full transcript
transcript = pe.episodes.get_episode_transcript_text(episode_id=episode_id) AsyncPodEngine exposes the same methods with await, ideal for FastAPI and other
async apps.
import asyncio
import os
from podengine import AsyncPodEngine
async def main():
pe = AsyncPodEngine(api_key=os.environ["PODENGINE_API_KEY"])
chart = await pe.charts.get_latest_chart(chart_type="apple", country="us")
print(chart)
asyncio.run(main()) Each SDK's README covers every resource group, configuration option, and end-to-end examples for transcripts, charts, guest profiles, and more.
We believe great tools should be accessible to everyone building amazing things.
Eligible for a discount? Contact us to learn more.
See the full pricing page for addons and Agency options, or schedule a call.
Need more than 10,000 searches / mo? Get in touch and we'll tailor a plan.