# Pull That Up Jamie > Pull That Up Jamie is a podcast search and research platform with a semantically indexed corpus of 109+ feeds, ~7K episodes, and ~1.9M paragraphs. It provides vector search across podcast transcripts, interactive research sessions, on-demand transcription, and clip creation — all accessible via a public API with free and Lightning-paid (L402) tiers. ## API - [OpenAPI Specification](https://www.pullthatupjamie.ai/api/openapi.json): Full machine-readable API spec (OpenAPI 3.0) covering search, corpus discovery, research sessions, clip creation, on-demand transcription, and L402 agent auth - [Corpus API Spec (Markdown)](https://www.pullthatupjamie.ai/api/corpus/spec): Human/LLM-readable markdown reference for the corpus navigation endpoints ## Agent Integration - [ClawHub Skill](https://clawhub.ai/unclejim21/pullthatupjamie): Install as an agent skill — includes auth flow, search patterns, and research session workflows - [Corpus Stats](https://www.pullthatupjamie.ai/api/corpus/stats): Live corpus-wide statistics (feeds, episodes, chapters, paragraphs, people, topics) — no auth required - [Corpus Feeds](https://www.pullthatupjamie.ai/api/corpus/feeds): Browse all indexed podcast feeds — no auth required ## Key Endpoints - [Semantic Search](https://www.pullthatupjamie.ai/api/search-quotes): Vector search across podcast transcripts with filtering by feed, episode, date range - [Chapter Search](https://www.pullthatupjamie.ai/api/search-chapters): Search chapter metadata (keywords, headlines, summaries) across the corpus — L402 required - [Podcast Discovery](https://www.pullthatupjamie.ai/api/discover-podcasts): LLM-assisted podcast discovery across 4M+ podcasts via the Podcast Index — free tier available - [On-Demand Transcription](https://www.pullthatupjamie.ai/api/on-demand/submitOnDemandRun): Submit any podcast episode for transcription, chaptering, and permanent semantic indexing - [Clip Creation](https://www.pullthatupjamie.ai/api/make-clip): Generate shareable audio/video clips with burned-in subtitles from search results - [Transcript Download](https://www.pullthatupjamie.ai/api/on-demand/transcript/{jobId}/{guid}): Download full transcript JSON for a transcribed episode — requires the same L402 credential used to pay for the job (streamed, supports large files) ## Canonical Workflows ### Deep Topic Research Survey the landscape, then drill into specifics, then collect and analyze. 1. `POST /api/search-chapters` with a broad topic query — returns chapter headlines, summaries, and timestamps across the corpus to see who's discussing the topic and how it evolved 2. `POST /api/search-quotes` with `smartMode: true` — deep dive into specific transcript segments using natural language (e.g. "What was Saylor saying about AI on TFTC last year") 3. `POST /api/research-sessions/` with collected pineconeIds — bundle findings into a research session 4. `POST /api/research-sessions/{id}/share` — create a shareable link with preview image 5. `POST /api/research-sessions/{id}/analyze` — stream an AI analysis of the collected clips ### Person Dossier / Meeting Prep Find everything someone has said publicly across indexed podcasts. 1. `GET /api/corpus/people?search={name}` — find the person and their appearance count 2. `POST /api/corpus/people/episodes` with `{ "name": "..." }` — get all episodes they appeared on 3. `POST /api/search-quotes` filtered by their feedIds or episode GUIDs — search their quotes 4. `POST /api/research-sessions/` — collect relevant clips into a session 5. `POST /api/research-sessions/{id}/share` — share the dossier ### Discover → Index → Search (New Content) Find a podcast or episode that isn't indexed yet, get it transcribed, then search it. 1. `POST /api/discover-podcasts` with a natural language query — returns matching podcasts/episodes across 4M+ feeds, each flagged with transcript availability 2. If `hasTranscripts: true` → go straight to `POST /api/search-quotes` with the feedId 3. If `hasTranscripts: false` → `POST /api/on-demand/submitOnDemandRun` with the episode GUID and feedId to submit for transcription 4. `POST /api/on-demand/getOnDemandJobStatus` with the jobId — poll every 15s until status is "complete" (typically 30-120s per episode). If you include the same L402 `Authorization` header used to pay, each completed episode includes a `transcriptUrl` 5. `GET /api/on-demand/transcript/{jobId}/{guid}` with the same L402 header — download the full transcript JSON 6. `POST /api/search-quotes` with the feedId — the newly transcribed content is now permanently searchable ### Quote → Clip → Share Find an exact quote and turn it into a shareable video clip with burned-in subtitles. 1. `POST /api/search-quotes` — find the quote with timestamp and audio deeplink 2. `POST /api/make-clip` with the clipId from the search result — kicks off async clip generation 3. `GET /api/clip-status/{lookupHash}` — poll every 5s until status is "completed" (typically under 1 min) 4. Use the returned clip URL — an MP4 with burned-in subtitles ready to share ### Competitive Intelligence / Sentiment Tracking Track how a topic or narrative evolves over time across the corpus. 1. `POST /api/search-chapters` with date filtering — survey chapter-level coverage across a time range 2. `POST /api/search-quotes` with `minDate`/`maxDate` filters — drill into transcript segments for specific periods 3. `POST /api/research-sessions/` — collect clips from different time periods 4. `POST /api/research-sessions/{id}/analyze` with custom instructions (e.g. "Compare how the narrative shifted between Q1 and Q3 2025") ### Open-Ended Research (Agent Starting from a Vague Goal) When starting from a broad or ambiguous request like "research what people are saying about X". 1. `POST /api/discover-podcasts` with the vague query — find relevant podcasts and episodes across the full Podcast Index catalog 2. For each result, check the transcript availability flag: - **Transcript available** → `POST /api/search-quotes` with the feedId to search existing transcripts immediately - **No transcript** → `POST /api/on-demand/submitOnDemandRun` to request transcription, then poll `/api/on-demand/getOnDemandJobStatus` until complete (include L402 header to get `transcriptUrl` for full transcript download), then search 3. `POST /api/search-chapters` across discovered feedIds — broaden the survey to chapter-level metadata for additional context 4. `POST /api/research-sessions/` — collect the best findings into a session 5. `POST /api/research-sessions/{id}/analyze` — generate an AI synthesis of everything found 6. `POST /api/research-sessions/{id}/share` — deliver the interactive research session link as the final output ## Auth - Free tier: corpus browsing, basic search (IP-based quota), and shared session viewing — no credentials needed - Paid tier: L402 Lightning prepaid credits. Hit any paid endpoint unauthenticated to receive a 402 challenge with a Lightning invoice. After payment, use `Authorization: L402 :` for all requests. 500 sats (~$0.33) covers ~150+ searches. ## About - [Blog](https://pullthatupjamie.ai/blog): Articles about the platform and podcast search - [For Podcasters](https://pullthatupjamie.ai/for-podcasters): Tools and features built for podcast creators ## Optional - [Privacy Policy](https://pullthatupjamie.ai/privacy): Data protection and privacy information - [Terms of Service](https://pullthatupjamie.ai/terms): Service terms