{"name":"Elon Musk Archive — Agent API","description":"The reference archive of Elon Musk (interviews, keynotes, speeches, Spaces, earnings calls, emails and X posts, in English, French and German), exposed for AI agents: a browsable index, keyword search with structured filters, windowed passages, ready-to-paste citations and word-level video timings. No API key, open CORS, no rate limit, read-only.","quickStart":[{"intent":"List every interview","url":"https://elonmuskarchive.org/agents/index?type=interviews","note":"Returns all of them in ONE call (154 entries, ~50 KB) — no pagination needed. Same for keynotes, speeches, spaces, earnings, emails."},{"intent":"See what the archive contains","url":"https://elonmuskarchive.org/agents/index","note":"The catalogue map: counts per type and per year, with drill-down urls. Start here when you have no keywords."},{"intent":"Find everything Musk said about a topic","url":"https://elonmuskarchive.org/agents/search?q=mars%20colonization&matches=3&context=500","note":"Ranked hits with windowed `passages` — usually enough to answer without fetching anything else."},{"intent":"Get a clean quotable passage + citation","url":"https://elonmuskarchive.org/agents/search?q=%22full%20self-driving%22&snap=sentence&matches=2","note":"`snap=sentence` aligns passages to sentence boundaries; each result carries a ready-to-paste `citation`."},{"intent":"Prepare a subtitled video clip","url":"https://elonmuskarchive.org/agents/search?q=mars&has=timings&snap=sentence","note":"Then GET /agents/excerpt?id=…&q=…&timestamps=1 for tStart/tEnd (seconds into `source`, for yt-dlp --download-sections) and per-word timings."},{"intent":"What's new?","url":"https://elonmuskarchive.org/agents/latest?type=interviews&limit=10","note":"Most recent entries, newest first."},{"intent":"Show me something interesting","url":"https://elonmuskarchive.org/agents/random?type=interviews","note":"A random entry, for exploration. Reposts excluded."}],"endpoints":{"GET https://elonmuskarchive.org/agents":"This manifest (JSON). Add ?format=markdown for the same thing as readable Markdown.","GET https://elonmuskarchive.org/agents/docs":"The documentation as Markdown, for humans and for agents that prefer prose.","GET https://elonmuskarchive.org/agents/index":"Browse the catalogue: counts by type and year, drill down with type/year/month, entries listed inline as soon as the slice fits.","GET https://elonmuskarchive.org/agents/latest":"The most recent entries (same filters as the index).","GET https://elonmuskarchive.org/agents/random":"Random entries, for exploration and sampling.","GET https://elonmuskarchive.org/agents/search":"Keyword search with structured filters, ranked results and windowed passages. `q` is OPTIONAL — filters alone browse.","GET https://elonmuskarchive.org/agents/excerpt":"More context around a hit in one entry, without downloading the whole text. `timestamps=1` adds word-level timings.","GET https://elonmuskarchive.org/agents/transcripts":"Manifest of the transcript API.","GET https://elonmuskarchive.org/agents/transcript/{id}":"The full text of one entry."},"limits":{"rateLimit":"NONE. No key, no quota, no 429. Crawl at whatever pace suits you — the endpoints are backed by indexed SQLite columns, not by a full-corpus scan.","searchPageSize":"100 results per call (`limit`), paginate with `offset`.","indexPageSize":"1000 entries per call (`limit`), follow `nextUrl`.","oneCallLists":"Every kind except posts fits in a single index call: interviews (154), keynotes (60), emails (47), speeches (20), earnings (19), spaces (14), commentary (10). Only the 86,816 posts need year/month drill-down or `list=1` pagination.","wholeCorpus":"Enumerating everything is ~88 pages of 1000 lean entries (~30 MB, well under a minute). Depth costs nothing: offset=80000 answers as fast as offset=0.","costControl":"Every search result carries `textLength` and `approxTokens` (~chars/4). CHECK `approxTokens` BEFORE following `transcriptUrl` — a single interview transcript averages ~39,000 characters (~10,000 tokens), while the `passages` already in your result cost a few hundred. Prefer passages → excerpt → full text, in that order."},"endpoint":"https://elonmuskarchive.org/agents/search","method":"GET","recommendedFlow":"0) BROWSE FIRST IF YOU HAVE NO KEYWORDS. GET /agents/index → the catalogue by type and year, with counts and drill-down urls (/agents/index?type=interviews lists every interview in one call). Guessing keywords blind is how agents miss whole sections. 1) GET /agents/search?q=… → ranked results, each with `passages` (windowed text around the matches), `citation` (ready-to-paste source line), `approxTokens` and `hasTimings`. This is usually enough to answer WITHOUT any further fetch. 2) Need a bit more around a hit? Follow `excerptUrl` (it carries id+q) or call /agents/excerpt?id=…&q=…&window=…&max=… for just that region. 3) SUBTITLED VIDEO CLIPS — the flagship flow. Filter to entries with word-level timing (`has=timings`), then call /agents/excerpt?id=…&q=…&timestamps=1 → each passage comes back with `tStart`/`tEnd` (seconds into the `source` video, feed them straight to `yt-dlp --download-sections`), the dominant `speaker`, and per-word timings (`words: [{w,s,e}]`) to drive karaoke-style active-word subtitles. Nothing else to align, nothing to transcribe. 4) Only fetch the full transcript (`transcriptUrl`) when you truly need the whole text — check `approxTokens` first, it is often 50× the cost of the passages you already have. Tune passage size with `context` (chars) and `matches` (passages per result); use `snap=sentence` for clean, quotable boundaries.","parameters":{"q":"Keywords, OPTIONAL. Omit it entirely to BROWSE rather than search: filters alone (type, org, from/to) return matching entries newest-first. For catalogue-style browsing prefer /agents/index. Space-separated terms are AND-combined. Use \"quotes\" for exact phrases and a leading - to exclude (e.g. q=mars \"starship\" -tesla). Accent- and case-insensitive.","type":"Comma list, filter by kind. One or more of: interview, keynote, speech, space, earnings, post, email, commentary (url slugs interviews/keynotes/speeches/spaces/posts/emails also accepted).","org":"Comma list, filter by organisation. One or more of: Neuralink, OpenAI, SpaceX, Tesla, Twitter, xAI.","from":"Lower date bound, inclusive (YYYY-MM-DD).","to":"Upper date bound, inclusive (YYYY-MM-DD).","fields":"Comma list, restrict where keywords are matched. One or more of: title, summary, body, transcript. Default: all.","has":"Comma list, keep only entries that have: transcript, body, embed, media, timings. `timings` = word-level timestamps available (required for subtitled-clip work).","speaker":"Whose words to match. elon (DEFAULT) = only where Elon himself said/wrote the keywords; all = anyone; other = only third parties. NOTE: the default differs from the website's search (which uses `all`) — a surprising 0-result count is often this.","lang":"Language of the returned title/summary/passages: en (default), fr, de. Matching always spans all languages.","sort":"relevance (default when q is set), date_desc (default otherwise), date_asc.","limit":"Page size, 1–100. Default 20.","offset":"Number of results to skip (pagination). Default 0.","exclude":"Comma list of entry ids to omit. Pass the ids you've already used so results aren't repetitive.","snippet":"1 (default) to include passages around the matches, 0 to omit (lightest).","context":"Characters of context per passage (80–2000, default 300).","matches":"Max passages returned per result (1–5, default 1).","snap":"word (default) or sentence. `sentence` aligns passages to sentence boundaries — cleaner, more quotable excerpts.","format":"markdown to receive this manifest as Markdown instead of JSON (same content)."},"resultShape":{"id":"string — stable entry id","type":"interview | keynote | speech | space | earnings | post | email | commentary","date":"YYYY-MM-DD","org":"string | null","title":"string (requested lang)","summary":"string (requested lang)","sourceLabel":"string | null — human source name (e.g. 'The Joe Rogan Experience', 'TED')","citation":"string | null — ready-to-paste source line, e.g. 'The Joe Rogan Experience, May 7, 2020'","url":"canonical page on the site","source":"original source URL (the video to download) | null","embedUrl":"embed URL (YouTube/X) | null","hasTranscript":"boolean","hasBody":"boolean","hasTimings":"boolean — word-level timestamps exist (use timestamps=1 on /agents/excerpt)","transcriptUrl":"endpoint for the full text | null","excerptUrl":"endpoint to fetch MORE context for this entry (id+q prefilled) without the whole text | null","textLength":"number — characters of full text available","approxTokens":"number — approximate cost (~chars/4) of fetching the full text. Read this before you fetch.","score":"number — relevance score (higher = better)","matchedIn":"string[] — fields where a term matched","passages":"array of { field, text, start, end } — windowed context around the matches (the token-saving payload)","snippet":"string | null — first passage (back-compat)"},"responseShape":{"query":"object — the parsed parameters actually applied","total":"number — total matches before pagination","count":"number — results returned in this page","results":"array of result objects (see resultShape)"},"catalogueShape":{"note":"/agents/index, /agents/latest and /agents/random share ONE envelope — learn it once. Full field list at /agents/index.","scope":"object — the filters actually applied","total":"number — entries matching the scope, pagination aside","count":"number — entries present in THIS response","dateRange":"{ from, to }","summary":"{ entries, withTranscript, transcriptCoverage, withMedia, totalDurationSec, totalDurationHours, longest }","url":"canonical url of this call","searchUrl":"the same slice on /agents/search","indexUrl":"the same slice on /agents/index","entries":"array of lean lines: { id, type, date, title, url, source?, sourceLabel?, org?, hasTranscript?, durationSec? }"},"indexParameters":{"type":"Comma list of kinds (plural slugs accepted).","year":"YYYY — restrict to one year.","month":"MM — restrict to one month (requires `year`).","org":"Comma list of organisations.","lang":"en (default), fr, de.","list":"1 to force the entry list even on a large slice (paginated).","limit":"Entries per page, 1–1000. Default 500.","offset":"Entries to skip. Prefer following `nextUrl`.","fields":"Comma list of columns to return (alias `select`), to slim large slices. One or more of: id, type, date, title, url, source, sourceLabel, org, hasTranscript, durationSec. `id` is always included.","sort":"date_desc (default) or date_asc."},"examples":["https://elonmuskarchive.org/agents/index  (browse the catalogue: what's in the archive, by type and year)","https://elonmuskarchive.org/agents/index?type=interviews  (every interview, grouped by year, in one call)","https://elonmuskarchive.org/agents/index?type=posts&year=2024&month=03&fields=id,date,title,url  (lean month slice)","https://elonmuskarchive.org/agents/search?q=mars%20colonization&type=interview&limit=5","https://elonmuskarchive.org/agents/search?q=%22full%20self-driving%22&org=Tesla&sort=date_desc","https://elonmuskarchive.org/agents/search?q=ai%20-politics&from=2023-01-01&fields=transcript,body","https://elonmuskarchive.org/agents/search?q=neuralink&matches=3&context=500  (read several passages per hit)","https://elonmuskarchive.org/agents/search?q=mars&has=timings&snap=sentence  (clip-ready hits)","https://elonmuskarchive.org/agents/search?q=free%20speech&speaker=all  (also match interviewers and co-panelists)","https://elonmuskarchive.org/agents/latest?type=interviews&limit=10","https://elonmuskarchive.org/agents/random?type=interviews"],"facets":{"total":87144,"byType":{"commentary":10,"earnings":19,"email":47,"interview":158,"keynote":60,"post":86816,"space":14,"speech":20},"orgs":["Neuralink","OpenAI","SpaceX","Tesla","Twitter","xAI"],"dateRange":{"from":"2003-04-22","to":"2026-08-28"}},"related":{"docs":"https://elonmuskarchive.org/agents/docs","index":"https://elonmuskarchive.org/agents/index","latest":"https://elonmuskarchive.org/agents/latest","random":"https://elonmuskarchive.org/agents/random","excerpt":"https://elonmuskarchive.org/agents/excerpt?id={id}&q={keywords}","transcripts":"https://elonmuskarchive.org/agents/transcripts","llmsTxt":"https://elonmuskarchive.org/llms.txt"}}