# Podmenti > Podcast transcripts for any episode of any public podcast, with word-level timestamps that stay in sync with the live audio, a transcription queue for episodes nobody has yet, and AI Search that returns verbatim quotes with timestamps. One API key, one credit balance, shared with the website. - API docs: https://podmenti.com/api - OpenAPI 3.1: https://podmenti.com/openapi.json - Plans and prices: https://podmenti.com/plans - Get a key (10 free credits a month, email verification): https://podmenti.com/login or POST https://podmenti.com/api/v1/register/start {"email"}. Creating an account accepts https://podmenti.com/terms and https://podmenti.com/privacy. - Sitemap: https://podmenti.com/sitemap.xml ## How ids work - feed_id: the show's id in the open Podcast Index. Get it from GET /api/v1/search?q=, GET /api/v1/shows/lookup?apple_id=… or ?feed_url=…, GET /api/v1/charts, GET /api/v1/trending. - transcript_id: 16 hex chars, sha1(episode guid)[:16]. Get it from GET /api/v1/shows/{feed_id}/episodes. It is the same for everyone and never changes. - apple_id: the Apple Podcasts id, for cross-referencing charts and links. ## Two meters: credits and requests - Requests: every call made with a key counts as one request against the plan's daily allowance (Free 1,000, Plus 5,000, Pro 20,000, Business 50,000 per UTC day). Headers X-RateLimit-Limit and X-RateLimit-Remaining on every response, 429 when spent. GET /api/v1/usage reports requests_today and request_limit. - Credits: charged on top only by POST /api/v1/unlock, POST /api/v1/requests and POST /api/v1/ai-search/query. Everything else (search, show details, episode lists, charts, trending, episode status, transcript reads, jobs, webhooks, account calls) costs 0 credits and only counts as a request. /openapi.json carries x-cost on every operation. ## Prices (credits): one credit is one hour of audio - Search, show details, episode lists, charts, trending, transcript reads: 0 - Unlock an episode we already hold, any length (full text, timestamps, .txt/.srt/.vtt/JSON, forever): 1 - Any episode you already unlocked: 0 - Transcribe an episode nobody has yet: its length in hours, rounded to the nearest hour, minimum 1 (includes its unlock). Standard lane is typically ready within the hour. - Fast lane ("fast": true): 2 per hour, ready in minutes whatever the length; the measured median is in the fast block of https://podmenti.com/api/queue - AI Search query: 1 - Plans: Free 10 credits/month and 1,000 requests/day, Plus $9 for 120 and 5,000/day, Pro $29 for 500 and 20,000/day, Business $99 for 2,000 and 50,000/day ## Jobs - POST /api/v1/requests accepts "fast": true for the GPU fast lane: ready in minutes whatever the length, 2 credits per hour instead of 1, promised within promise_seconds (300 for a typical job, longer for big batches) or the extra credits are refunded automatically; the job carries fast: true and promise_seconds, and dry_run returns them without charging. - POST /api/v1/requests returns a job {id, status, estimated_ready_at, poll_after_seconds, poll_url}. Poll GET /api/v1/jobs/{id} at the suggested interval, or pass webhook_url (https) to receive a POST with event job.done and the same job shape when every transcript exists. GET /api/v1/jobs lists recent jobs. Webhooks are https-only, signed with X-Podmenti-Signature (t=,v1=; secret from GET /api/v1/webhooks/secret) and retried with backoff. POST /api/v1/webhooks/inbox gives a hosted https test receiver. ## Sample - A full episode unlocked for everyone, no key needed: https://podmenti.com/api/v1/transcripts/a7c18c255b33d645?format=json×tamps=1&words=1