Client Libraries

Skip the HTTP layer entirely. Our official TypeScript SDK is fully typed from the OpenAPI spec, with zero runtime dependencies.

The SDK works with your existing Pod Engine API key — API access is included in every paid plan. See pricing for details.

TypeScript / JavaScript SDK

@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.

Fully typed
Every method's parameters and responses are generated from the OpenAPI spec, so your editor autocompletes the entire API surface.
Zero runtime dependencies
Built on the platform `fetch` — nothing extra to install, works in Node, Bun, Deno, and the edge.
Resilient by default
Automatic retries with backoff for transient failures (429 / 5xx).
Smart dates
ISO timestamps are hydrated into real `Date` objects.

Get started

1. Install the package

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
2. Make your first call

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 });
3. Configure the client

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 },
);

Full reference

The README on npm and GitHub covers every resource group, configuration option, and end-to-end examples for transcripts, charts, guest profiles, and more.

Get started with the API and MCP server

One plan, everything included

  • Full Pod Engine web app access
  • Full API access — same data, programmatic
  • MCP server
  • 10,000 searches / mo
  • 10,000 podcast and episode lookups / mo
  • 1,000 transcripts / mo
  • Historical podcast charts
  • Contacts, emails, social & YouTube data
  • 30 alerts

Get Started

$100 / month

Pay monthly. Cancel anytime.

Available Discounts

We believe great tools should be accessible to everyone building amazing things.

Eligible for a discount? Contact us to learn more.

Bootstrapped Startups

50% off first year

Students & Educators

50% off first year

Nonprofits

50% off first year

Pay Annually

2 months free

Need Guest Booking, an Agency plan, or higher limits?

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.