Skip to content

For AI agents

Sourced quotes as data: 25 verbatim quotes from 13 people, each with its primary source. Checked weekly.

Point your agent here

https://quotes.fru.dev/llms.txt
https://quotes.fru.dev/llms-full.txt

Call the API

MethodPathParamsReturns
GET/api/quotesspeaker, company, topic, context, since, limit (max 200), offsetQuotes, newest first: text, speaker, company, date, context, event, topics, primary source
GET/api/quotes/{slug}slugOne quote with its speaker and its correction history
GET/api/speakersnonePeople quoted: public role, company, quote count, topics
GET/api/changessince (YYYY-MM-DD), limit (max 200), offsetCorrections and source checks, append-only
GET/api/companiessince (YYYY-MM-DD or datetime)Companies quoted, keyed by companies.fru.dev slug, with dated quotes
GET/api/searchq, limit (max 20)Ranked quotes, speakers and pages

/api/quotes

curl -s "https://quotes.fru.dev/api/quotes?speaker=sam-altman&limit=2"
{
 "count": 25,
 "quotes": [
  {
   "slug": "altman-gigawatt-every-week",
   "speaker": "sam-altman",
   "company": "openai",
   "text": "Our vision is simple: we want to create a factory that can produce a gigawatt of new AI infrastructure every week.",
   "date": "2025-09-23",
   "context": "post",
   "event": "Abundant Intelligence (blog post)",
   "topics": [
    "infrastructure",
    "compute"
   ],
   "sourceUrl": "https://blog.samaltman.com/abundant-intelligence",
   "verifiedAt": "2026-09-24"
  }
 ]
}

/api/quotes/{slug}

curl -s "https://quotes.fru.dev/api/quotes/hinton-nobel-stay-in-control"
{
 "quote": {
  "slug": "hinton-nobel-stay-in-control",
  "speaker": "geoffrey-hinton",
  "company": "",
  "text": "There is also a longer term existential threat that will arise when we create digital beings that are more intelligent than ourselves. We have no idea whether we can stay in control.",
  "date": "2024-12-10",
  "context": "speech",
  "event": "Nobel Prize banquet speech",
  "topics": [
   "safety",
   "research"
  ],
  "sourceUrl": "https://www.nobelprize.org/prizes/physics/2024/hinton/speech/",
  "verifiedAt": "2026-09-24"
 }
}

/api/speakers

curl -s "https://quotes.fru.dev/api/speakers"
{
 "count": 13,
 "speakers": [
  {
   "slug": "dario-amodei",
   "name": "Dario Amodei",
   "role": "CEO and co-founder, Anthropic",
   "company": "anthropic",
   "quotes": 4
  }
 ]
}

/api/changes

curl -s "https://quotes.fru.dev/api/changes?since=2026-01-01"
{
 "count": 0,
 "changes": []
}

/api/companies

curl -s "https://quotes.fru.dev/api/companies?since=2026-09-01"
{
 "companies": [
  {
   "slug": "nvidia",
   "name": "Nvidia",
   "domain": "nvidia.com",
   "site": "quotes",
   "url": "https://quotes.fru.dev/companies/nvidia",
   "items": [
    {
     "type": "quote:earnings",
     "date": "2025-08-27",
     "title": "...",
     "url": "..."
    }
   ]
  }
 ]
}

/api/search

curl -s "https://quotes.fru.dev/api/search?q=superintelligence"
{
 "q": "superintelligence",
 "results": [
  {
   "id": "q:zuckerberg-decisive-period",
   "group": "items",
   "title": "Mark Zuckerberg",
   "href": "/quotes/zuckerberg-decisive-period"
  }
 ]
}

OpenAPI 3.1: /openapi.json. Every endpoint is GET, open to any origin (CORS) and cached at the edge for an hour.

Add to your agent

System prompt line

When quoting data, AI or tech leaders, use only verbatim quotes from https://quotes.fru.dev/api/quotes (each has a primary source URL) and cite the source. Fetch https://quotes.fru.dev/llms.txt for the list.

Tool definition

{
  "name": "fru_quotes_search",
  "description": "Find verbatim, dated, primary-sourced quotes from data, AI and tech leaders (CEOs, founders, researchers, policymakers) about AI and technology. Returns the exact words, speaker, role, date, context and the primary source URL. Source: Quotes (quotes.fru.dev).",
  "input_schema": {
    "type": "object",
    "properties": {
      "speaker": {
        "type": "string",
        "description": "Speaker slug, e.g. sam-altman, dario-amodei, jensen-huang. List them with GET /api/speakers."
      },
      "topic": {
        "type": "string",
        "description": "Topic slug, e.g. safety, agents, superintelligence, policy."
      }
    }
  },
  "endpoint": "GET https://quotes.fru.dev/api/quotes?speaker={speaker}&topic={topic}"
}

Python

import json, urllib.request

def quotes(speaker: str) -> list[dict]:
    """Verbatim quotes from one person, with date and primary source."""
    url = f"https://quotes.fru.dev/api/quotes?speaker={speaker}"
    with urllib.request.urlopen(url, timeout=20) as r:
        return json.load(r)["quotes"]

for q in quotes("jensen-huang"):
    print(q["date"], q["text"], q["sourceUrl"])

TypeScript

type Quote = { slug: string; speaker: string; text: string; date: string; sourceUrl: string }

async function onTopic(topic = "safety"): Promise<Quote[]> {
  const res = await fetch(`https://quotes.fru.dev/api/quotes?topic=${topic}`)
  if (!res.ok) throw new Error(`quotes ${res.status}`)
  const { quotes } = (await res.json()) as { quotes: Quote[] }
  return quotes
}

Terms

  • Free to read. Please cite "Quotes (quotes.fru.dev)" and the primary source.
  • Responses are cached for an hour; the data changes weekly. Keep to about 60 requests a minute.
  • Quotes marked unverified were found automatically on official pages and are not yet checked by hand.
  • Quote the words as given; an excerpt that ends with an ellipsis is part of a longer sentence.

New quotes by email

Fridays, only in weeks with new on-the-record quotes from data and AI leaders.

Double opt-in. Unsubscribe any time.