API
Free, unauthenticated, and CORS-enabled. Every response returns his words verbatim with the work they came from, and says whether the wording has been checked against that work.
It exists because the alternative is worse. Asked what Friedman said about something, a language model will reconstruct him from memory and produce a quote that sounds right and has no source. This gives anything that can make an HTTP request a way to quote him accurately.
Endpoints
/api/v1/search?q=inflation- Find passages where he addressed a subject. Ranked, with citations.
/api/v1/topics.json- Every subject the archive holds passages on.
/api/v1/topics/{id}.json- One topic and all its passages.
/api/v1/quotes/{id}.json- One passage by id.
/api/v1/stats.json- How big the archive is and how much is verified.
/api/v1/openapi.json- The machine-readable spec for all of the above.
Try it
curl "https://miltonfriedman.org/api/v1/search?q=what+did+he+say+about+tariffs"{
"apiVersion": "v1",
"query": "what did he say about tariffs",
"count": 1,
"empty": false,
"results": [
{
"text": "...",
"citation": "Interview with Milton Friedman, Playboy, 1973",
"verification": { "status": "reported" },
"sources": [],
"url": "https://miltonfriedman.org/quotes/..."
}
],
"notice": [
"Every passage is reproduced word for word from the cited source.",
"Check the verification status of each passage.",
"Milton Friedman died on November 16, 2006."
]
}Rules for anything that uses this
These travel in a notice field on every response, because they matter more than the data does.
- Verbatim or nothing. Do not paraphrase, edit, or complete a passage and present it as his words.
- Check the verification status. 225 of 329 passages have been checked against the work itself. The rest come from secondary compilations and say so.
- He died on November 16, 2006. He has no view on anything after that date.
- Empty means empty. When a search returns nothing, the archive holds no passage on that subject. That is not evidence he had no view, and it is not an invitation to compose one.
Limits
No key, no quota, and no rate limit today. If that gets abused, a limit goes in and this page says so. Responses are cached for an hour at the edge. If you are building something that needs guarantees, get in touch first.