Skip to main content

Base URL

https://api.urantia.dev

Authentication

No authentication is required. The API is free and open.

Rate limiting

Requests are rate limited to 200 requests per minute per IP address. Rate limit headers are included in every response:
HeaderDescription
X-RateLimit-LimitMaximum requests per window (200)
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp (seconds) when the window resets
If you exceed the limit, you’ll receive a 429 response.

Error responses

All errors follow RFC 9457 Problem Details with Content-Type: application/problem+json:
{
  "type": "https://urantia.dev/errors/not-found",
  "title": "Not Found",
  "status": 404,
  "detail": "Paragraph \"999:999.999\" not found"
}
FieldDescription
typeURI identifying the error type
titleShort human-readable summary
statusHTTP status code
detailSpecific explanation for this occurrence

Caching

All responses include Cache-Control headers. Cloudflare’s CDN caches responses at the edge using s-maxage, so repeated requests are served from the nearest edge node without hitting the origin.
RouteCDN cacheBrowser cache
/toc, /papers/*, /paragraphs/:ref, /audio/*, /cite, /entities/*, /embeddings/*24 hours1 hour
/og/:refPermanent (immutable)Permanent
/search1 hour5 minutes
/paragraphs/randomNoneNone
/, /docs, /openapi.json1 hour5 minutes
Static content (papers, paragraphs, audio, OG images) is immutable, so it’s cached aggressively. The random endpoint is never cached.

Paragraph ID formats

Many endpoints accept paragraph references in three auto-detected formats:
FormatExampleStructure
globalId1:2.0.1partId:paperId.sectionId.paragraphId
standardReferenceId2:0.1paperId:sectionId.paragraphId
paperSectionParagraphId2.0.1paperId.sectionId.paragraphId

RAG-optimized format

Paragraph endpoints support ?format=rag to return a streamlined shape for AI/RAG pipelines:
{
  "data": {
    "ref": "1:0.1",
    "text": "plain text",
    "citation": "The Urantia Book, Paper 1, Section 0, Paragraph 1",
    "metadata": { "paperId": "1", "paperTitle": "...", "sectionId": "0", ... },
    "navigation": { "prev": null, "next": "1:0.2" },
    "tokenCount": 142,
    "entities": ["Universal Father"]
  }
}
Works on GET /paragraphs/:ref?format=rag and GET /paragraphs/random?format=rag.

Interactive docs

Try endpoints directly in the Swagger UI or use the interactive examples on each endpoint page below.