Skip to main content

Urantia Papers API

Free, open REST API for structured access to all 197 papers, 1,626 sections, and 14,500+ paragraphs of the Urantia Book — with full-text search and multi-voice audio narration.

Base URL

https://api.urantia.dev
No authentication required. Rate limit: 100 requests/minute per IP.

Capabilities

  • Search the full text of the Urantia Book with ranked results
  • Retrieve any paragraph by reference in three auto-detected ID formats
  • Browse the table of contents, papers, and sections
  • Get context around a paragraph for RAG applications
  • Access audio narration with multiple TTS models and voices
  • Generate typed clients from the OpenAPI spec at /openapi.json

Endpoints

MethodPathDescription
GET/tocFull table of contents (parts and papers)
GET/papersList all 197 papers with metadata
GET/papers/:idSingle paper with all paragraphs
GET/papers/:id/sectionsSections within a paper
GET/paragraphs/randomRandom paragraph
GET/paragraphs/:refParagraph by any ID format
GET/paragraphs/:ref/context?window=3Paragraph with surrounding context (window: 1-10)
POST/searchFull-text search with pagination
POST/search/semanticSemantic similarity search using vector embeddings
GET/audio/:paragraphIdAudio URLs for a paragraph

Paragraph Reference Formats

The API accepts three reference formats — auto-detected from the string:
FormatExampleStructure
globalId1:2.0.1partId:paperId.sectionId.paragraphId
standardReferenceId2:0.1paperId:sectionId.paragraphId
paperSectionParagraphId2.0.1paperId.sectionId.paragraphId

Workflows

Search and retrieve passages

  1. POST /search with {"q": "your query", "type": "and", "limit": 10}
  2. Use standardReferenceId from each result to fetch context
  3. GET /paragraphs/:ref/context?window=3 for surrounding paragraphs
  1. GET /toc — understand the book structure
  2. POST /search — find relevant passages for the user’s question
  3. GET /paragraphs/:ref/context?window=3 — expand each result with surrounding paragraphs
  4. Feed the collected passages as context to your LLM

Browse and read

  1. GET /toc — get the full table of contents
  2. GET /papers/:id — read an entire paper
  3. GET /papers/:id/sections — get sections within a paper

Get audio for a passage

  1. Look up a paragraph via GET /paragraphs/:ref
  2. The response includes an audio field with URLs keyed by model and voice
  3. Or use GET /audio/:paragraphId for just the audio data
Request body for POST /search:
{
  "q": "search terms",
  "type": "and",
  "limit": 10,
  "page": 1,
  "paperId": null,
  "partId": null
}
Search modes:
  • and (default) — all words must appear. Best for specific queries.
  • or — any word can appear. Best for broad exploration.
  • phrase — exact phrase match. Best for quoting specific text.
Optional filters: paperId (0-196) and partId (1-5) narrow the scope.

Audio

Every paragraph has audio narration. The audio field is a nested object keyed by model and voice:
{
  "audio": {
    "tts-1-hd": {
      "nova": { "format": "mp3", "url": "https://audio.urantia.dev/tts-1-hd-nova-1:2.0.1.mp3" }
    }
  }
}
Models: tts-1-hd, tts-1. Voices: nova, echo, onyx, alloy, fable, shimmer. Full coverage with tts-1-hd/nova.

Book Structure

The Urantia Book contains 197 papers organized in four parts plus a Foreword:
  • Foreword — Paper 0
  • Part I: The Central and Superuniverses — Papers 1-31
  • Part II: The Local Universe — Papers 32-56
  • Part III: The History of Urantia — Papers 57-119
  • Part IV: The Life and Teachings of Jesus — Papers 120-196

Constraints

  • Rate limit: 100 requests/minute per IP (429 response if exceeded)
  • All responses are JSON
  • The /paragraphs/random endpoint is never cached; all other endpoints are CDN-cached
  • Response envelope: { data, meta: { page, limit, total, totalPages } } for paginated endpoints

Documentation