API Documentation

Complete reference for the Orb Platform API. Three products, one API key, deterministic JSON responses from the Cloudflare edge.

Table of Contents

Authentication

All API endpoints require an API key. Get one free at /pricing.

Two ways to authenticate

Header (recommended):

Authorization: Bearer wo_YOUR_API_KEY

Query parameter:

GET /api/word/courage?key=wo_YOUR_API_KEY

API keys start with wo_. One key works across all three products.

Rate Limits

Limits reset daily at midnight UTC. The Retry-After header indicates seconds until reset.

Free
50
calls / day
Starter
5,000
calls / day
Growth
50,000
calls / day
Enterprise
unlimited

Check current usage with GET /api/keys/me.

Word Orb

Dictionary infrastructure. 162,250 words, 47-language translations, pronunciation audio, age-appropriate explanations.

Look up a word

GET /api/word/{word} Auth required

Returns the complete word object: definition, IPA, etymology, translations, age tones, and audio URL.

ParameterTypeDescription
wordpath requiredEnglish word to look up (lowercase, a-z and hyphens)
contextquery optionalContext sentence for more precise definition
curl
JavaScript
Python
# Look up a word
curl -H "Authorization: Bearer wo_YOUR_KEY" \
  https://word-orb-api.nicoletterankin.workers.dev/api/word/courage
// JavaScript (fetch)
const res = await fetch("https://word-orb-api.nicoletterankin.workers.dev/api/word/courage", {
  headers: { "Authorization": "Bearer wo_YOUR_KEY" }
});
const word = await res.json();
console.log(word.def);    // definition
console.log(word.langs);  // 47 language translations
# Python (requests)
import requests

r = requests.get("https://word-orb-api.nicoletterankin.workers.dev/api/word/courage",
    headers={"Authorization": "Bearer wo_YOUR_KEY"})
word = r.json()
print(word["def"])    # definition
print(word["langs"])  # translations dict

Response fields:

FieldTypeDescription
wordstringThe word
ipastringIPA pronunciation notation
posstringPart of speech (noun, verb, adj, etc.)
defstringDefinition (1-2 sentences)
etymstringEtymology (2-3 sentences)
langsobjectTranslations keyed by language code (ES, FR, ZH, AR, etc.)
tonesarrayAge-appropriate explanations: child (5-12), teen, adult, elder (65+)
_sourcestringData source: d1, kv, or generated
_tierstringYour subscription tier

List all words

GET /api/words Auth required

Returns every word in the dictionary with IPA, part of speech, and lookup count.

curl -H "Authorization: Bearer wo_YOUR_KEY" https://word-orb-api.nicoletterankin.workers.dev/api/words

Batch word lookup

POST /api/words/batch Auth required

Look up multiple words in one request. Returns all found words and lists any that were not found. Free tier: max 10 words. Paid tiers: max 50 words.

# Batch lookup
curl -X POST -H "Authorization: Bearer wo_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"words":["courage","wisdom","resilience"]}' \
  https://word-orb-api.nicoletterankin.workers.dev/api/words/batch
Body fieldTypeDescription
wordsarray requiredArray of words to look up (max 50)

Response: { requested, found, not_found, words: [...], errors: [...] }

Batch lookup only returns words already in the database. It does not trigger on-demand generation. Use GET /api/word/{word} for on-demand generation of new words.

Lesson Orb

Structured lesson infrastructure. 226,725 lesson blocks across 4 tracks, 3 age groups, 10 teaching archetypes, and 19 languages.

Get a lesson

GET /api/lesson Auth required

Returns a structured 5-phase lesson: hook, story, wonder, action, wisdom.

ParameterTypeDescription
dayquery requiredDay number 1-365
trackquery requiredlearn, grow, teach, or trivia
agequery optionalkid, adult (default), or elder
langquery optionalLanguage code (default: en). 19 languages available.
archetypequery optionalTeaching personality. 10 available: architect, diplomat, empath, explorer, macgyver, provider, rebel, scientist, strategist, survivor
curl
JavaScript
Python
curl -H "Authorization: Bearer wo_YOUR_KEY" \
  "https://word-orb-api.nicoletterankin.workers.dev/api/lesson?day=47&track=learn&age=adult&archetype=explorer"
const res = await fetch(
  "https://word-orb-api.nicoletterankin.workers.dev/api/lesson?day=47&track=learn&age=adult&archetype=explorer",
  { headers: { "Authorization": "Bearer wo_YOUR_KEY" } }
);
const lesson = await res.json();
console.log(lesson.phases.hook);    // opening hook
console.log(lesson.phases.wisdom);  // closing wisdom
r = requests.get("https://word-orb-api.nicoletterankin.workers.dev/api/lesson",
    params={"day": 47, "track": "learn", "archetype": "explorer"},
    headers={"Authorization": "Bearer wo_YOUR_KEY"})
lesson = r.json()
# lesson["phases"]["hook"], ["story"], ["wonder"], ["action"], ["wisdom"]

Response fields:

FieldTypeDescription
dayintDay number
trackstringCurriculum track
titlestringLesson title
themestringLesson theme
age_groupstringkid, adult, or elder
archetypestringTeaching archetype used
phasesobject5 phases: hook, story, wonder, action, wisdom
archetypes_availablearrayArchetypes available for this lesson
languages_availablearrayLanguages available for this day/track

List lessons

GET /api/lessons Auth required

List all lessons for a given track, with pagination.

ParameterTypeDescription
trackquerylearn (default), grow, teach, trivia
langqueryLanguage code (default: en)
agequerykid, adult (default), elder
limitqueryResults per page (max 365)
offsetqueryPagination offset

Reference data

GET /api/tracks Public

Returns all tracks, phases, age groups, archetypes, and lesson counts. No auth required.

GET /api/archetypes Public

Returns all 10 teaching archetypes with style descriptions. No auth required.

Quiz Orb

Assessment infrastructure. 21,900 interactions across 6 question types: quiz, mc (multiple choice), tf (true/false), ab (comparison), open (open-ended), reflection.

Get quiz by day

GET /api/quiz Auth required

Returns all assessment questions for a specific day and track, aligned to the lesson content.

ParameterTypeDescription
dayquery requiredDay number 1-365
trackquery requiredlearn, grow, teach, or trivia
typequery optionalFilter by type: quiz, mc, tf, ab, open, reflection
curl -H "Authorization: Bearer wo_YOUR_KEY" \
  "https://word-orb-api.nicoletterankin.workers.dev/api/quiz?day=47&track=learn"

Response fields (each interaction):

FieldTypeDescription
typestringQuestion type: quiz, mc, tf, ab, open, reflection
phasestringLesson phase this question aligns to
promptstringThe question text
choicesarray|nullAnswer choices (for mc, tf, ab types)
answerstringCorrect answer
explanationstringExplanation of the correct answer

Random questions

GET /api/quiz/random Auth required

Returns random assessment questions from any day.

ParameterTypeDescription
trackquerylearn (default), grow, teach, trivia
typequery optionalFilter by question type
countqueryNumber of questions (default: 5, max: 20)

Batch questions

GET /api/quiz/batch Auth required

Returns batch of questions with difficulty filtering.

ParameterTypeDescription
trackquerylearn (default), grow, teach, trivia
countqueryNumber of questions (default: 10, max: 50)
difficultyqueryeasy (mc/tf), hard (open/reflection), or mixed (default)

Knowledge Graph

30,288 connections linking words to lessons to assessments. Use the graph to find which lessons teach a given word, or which words appear in a given lesson.

Word → Lessons

GET /api/graph/word Auth required

Find all lessons that teach a specific word.

ParameterTypeDescription
wordquery requiredThe word to trace
curl -H "Authorization: Bearer wo_YOUR_KEY" \
  "https://word-orb-api.nicoletterankin.workers.dev/api/graph/word?word=courage"

# Returns: { word, appears_in: 15, lessons: [{ day, track, phase, context, importance }...] }

Lesson → Words

GET /api/graph/lesson Auth required

Find all vocabulary words that appear in a specific lesson.

ParameterTypeDescription
dayquery requiredDay number 1-365
trackquerylearn (default), grow, teach, trivia

Account

Check usage

GET /api/keys/me Auth required

Returns your current tier, daily usage, and remaining calls.

curl -H "Authorization: Bearer wo_YOUR_KEY" https://word-orb-api.nicoletterankin.workers.dev/api/keys/me

# Returns: { key, email, tier, daily_limit, calls_today, calls_total, remaining_today }

Sign up

POST /api/signup Public

Create a free API key. Returns immediately with the key and quickstart examples.

curl -X POST -H "Content-Type: application/json" \
  -d '{"email":"you@company.com"}' \
  https://word-orb-api.nicoletterankin.workers.dev/api/signup

MCP Server

The Orb Platform exposes a Model Context Protocol server. One config line connects to Claude Desktop, ChatGPT, Cursor, Gemini, and any MCP-compatible AI client.

// Add to your MCP client config:
{
  "mcpServers": {
    "word-orb": {
      "url": "https://mcp.thedailylesson.com/mcp"
    }
  }
}

The MCP server exposes all three products as tools that AI agents can discover and call automatically.

Error Codes

HTTPCodeDescription
400invalid_inputMissing or invalid parameter
401auth_requiredNo API key provided
401invalid_keyAPI key not found or deactivated
404not_foundWord, lesson, or quiz not found
429rate_limitedDaily limit reached. Check Retry-After header.
500generation_failedOn-demand word generation failed
503db_errorDatabase temporarily unavailable

All errors return JSON: { "error": "message", "code": "error_code" }

Start building

Free tier: 50 calls/day. No credit card. Instant API key.

Get Your Free API Key Try the Playground GitHub