Skip to content
Paid access

Quote Data API

60,112 lines of structured Office dialogue. Every character, season, episode, and scene — served from Cloudflare's edge in under 20ms.

Response shape

Source data
line, character
The exact dialogue with speaker attribution
season, episode, scene, sceneId
Structured identifiers; sceneId is "SS_EE_scene" key (omitted when unknown)
episodeCode, episodeTitle
Formatted code (S03E02) and full episode title. episodeCode is the streaming/IMDb episode number for display — hour-long two-parters collapse to one number, so it can differ from the stored season/episode fields (which are unchanged)
lineLength, wordCount
Character and word counts for filtering
enriched
Derived with AI + editorial work
enriched.blurb
Scene setup sentence for ~5,400 curated quotes
enriched.topics
AI scores across 37 topics (funny, awkward, sfw…) for 28K quotes
enriched.videoClip
Matched YouTube clip when available (~400 scenes)
enriched.quiz.speakerOptions
4 multiple-choice speaker answers, seeded deterministically
enriched.quiz.episodeTitleOptions
4 episode title choices from the same season
enriched.quiz.swappableWords
Fill-in-the-blank word segments with distractors

Endpoint

GET https://theofficelines.com/rich-q/{quote_id}

Quote IDs follow the format SS_EE_N — season, episode, and index within the episode. For example, 03_02_45 is Season 3, Episode 2, quote #45. Quote IDs appear in all URLs on this site and are stable across releases.

Request

curl https://theofficelines.com/rich-q/03_02_45 \
  -H "X-Api-Key: your_key_here"

Response

{
  "id": "03_02_45",
  "line": "Identity theft is not a joke, Jim! Millions of families suffer every year!",
  "character": "Dwight",
  "season": "3",
  "episode": "2",
  "episodeCode": "S03E02",
  "episodeTitle": "The Convention",
  "scene": 4,
  "sceneId": "03_02_4",
  "lineLength": 72,
  "wordCount": 13,
  "enriched": {
    "blurb": "Jim impersonates Dwight at the Lackawanna County business convention — and pulls it off perfectly.",
    "topics": {
      "funny": 9,
      "awkward": 7,
      "about-work": 4,
      "sfw": 8
    },
    "videoClip": {
      "videoId": "FnCz_GnGBnc",
      "videoTitle": "Identity Theft is Not a Joke",
      "channelTitle": "The Office",
      "thumbnailUrl": "https://i.ytimg.com/vi/FnCz_GnGBnc/hqdefault.jpg"
    },
    "quiz": {
      "speakerOptions": [
        "Dwight",
        "Michael",
        "Jim",
        "Andy"
      ],
      "episodeTitleOptions": [
        "The Convention",
        "Gay Witch Hunt",
        "The Coup",
        "Initiation"
      ],
      "swappableWords": [
        {
          "word": "joke",
          "start": 26,
          "end": 30,
          "distractors": [
            "laughing matter",
            "game",
            "prank"
          ]
        }
      ]
    }
  }
}

Pricing

API Access

Monthly subscription
Hobbyist
$9/mo
Personal and side projects
  • Non-commercial use
  • Full API access (all 60K quotes)
  • X-Api-Key authentication
  • Email support
Request access
Commercial
$49/mo
Apps, products, and businesses
  • Commercial use
  • Full API access (all 60K quotes)
  • X-Api-Key authentication
  • Priority support
Request access

Invoiced monthly. Cancel any time.

Data Export

One-time purchase
Full Dataset
$149 once
The complete enriched dataset — our classification, structure, and editorial layered over every line
  • Topic classifications (25K quotes scored across 27 topics)
  • Character stats by season & episode
  • Editorial blurbs for 5,400 curated quotes
  • All 60,112 lines (JSON + CSV) — character, season, episode, scene
Request export

Delivered as a download link within 24 hours.

What people build with it

Trivia & quiz apps
speakerOptions and episodeTitleOptions ship pre-built multiple-choice answers for every quote.
Chatbots & bots
Random quote lookup with full character and context metadata — no scraping required.
NLP & ML datasets
60K labeled dialogue lines with character, scene, and episode structure for training and evaluation.

Questions

How do I get a key after requesting?
I'll reply to your email within 24 hours with your API key and usage instructions.
Is there a rate limit?
Not currently enforced. Fair-use policy applies — if you're hammering the API in a way that affects other users, I'll reach out.
Can I look up quotes in bulk?
The endpoint is per-quote. If you need the full dataset at once, the Data Export tier gives you everything as JSON and CSV — no subscription required.
What's the difference between Hobbyist and Commercial?
Hobbyist is for personal projects with no revenue attached. If your product makes money or you're a company, use Commercial.
Can I cancel?
Yes — email me any time and I'll stop the next invoice. No lock-in.