📘 ScriptureFlow Developer Docs

ScriptureFlow Endpoint Specification — Public

Public API integration guidance for specific verse lookup, Verse of the Day, Quick Verse, and static ScriptureFlow JSON resources.

Purpose

This document defines the public behavior of ScriptureFlow’s current API and static JSON resources. It is written for API users, app developers, automation builders, ministries, educators, and product teams.

This public version intentionally avoids private repository details, internal build logic, corpus processing details, deployment internals, and contributor-only implementation guidance.


Base URL

https://scriptureflow-api-preview.pages.dev

Endpoint Summary

ScriptureFlow provides both static JSON resources and function-powered runtime API endpoints.

Runtime API endpoints

Endpoint Purpose
/api/verse Retrieve a specific verse or same-chapter passage range from a selected translation.
/api/quick-verse Retrieve a runtime-selected Quick Verse from a selected translation. Refreshing can return a different verse.

Static JSON endpoints

Endpoint Purpose
/translations.json Public translation catalog.
/public-catalog.json Public catalog metadata.
/status.json Current build/status metadata.
/[version]/translation.json Translation metadata.
/[version]/books.json Book index for a translation.
/[version]/chapters.json Chapter index for a translation.
/[version]/verses-index.json Verse index for a translation. Large translations may use split-index manifests.
/[version]/random.json Translation-scoped Verse of the Day. This is static generated JSON, not a live random endpoint.
Use /[version]/random.json when you need a stable generated daily verse. Use /api/quick-verse?version=[version] when you need a fresh runtime-selected verse.

Version Identifier Rule

The version parameter is an exact machine-readable key. It is not a display label.

For the King James Version, use:

en-kjv

Do not use:

kjv

Do not use:

en-KJV

Client applications should confirm supported version keys from the translation catalog:

https://scriptureflow-api-preview.pages.dev/translations.json

Request Headers

No custom request headers are required for the current public preview.

Header Recommended Value Notes
Accept application/json Indicates that the client expects JSON.

The current public preview does not require API keys, bearer tokens, session cookies, or custom authentication headers.


/api/verse — Specific Verse or Passage Lookup

Use /api/verse to retrieve one verse or a same-chapter passage range from a selected translation.

Structured lookup

GET /api/verse?version=en-kjv&book=John&chapter=3&verse=16

Same-chapter passage range

GET /api/verse?version=en-kjv&book=Amos&chapter=8&verse=4&end_verse=6

Free-text reference lookup

GET /api/verse?version=en-kjv&reference=John%203%3A16

Query parameters

Parameter Required Description
version Yes Translation key, such as en-kjv.
book Yes, unless reference is used Book name, book slug, or supported alias.
chapter Yes, unless reference is used Chapter number.
verse Yes, unless reference or start_verse is used Starting verse number.
start_verse Optional Alternate starting verse parameter. Prefer verse for public examples.
end_verse No Ending verse number for a same-chapter range.
reference Yes, when using free-text lookup Scripture reference such as John 3:16 or Amos 8:4-6.

Example response shape

{
  "ok": true,
  "query": {
    "version": "en-kjv",
    "book": "John",
    "chapter": 3,
    "verse": 16
  },
  "reference": "John 3:16",
  "result": {
    "version": "en-kjv",
    "reference": "John 3:16",
    "book": "john",
    "chapter": 3,
    "verse": 16,
    "text": "..."
  },
  "lookup": {
    "method": "single-index"
  }
}

/api/quick-verse — Runtime Quick Verse

Quick Verse returns a runtime-selected verse from the requested translation. Refreshing the request may return a different verse.

Request

GET /api/quick-verse?version=en-kjv

Full preview URL

https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv

Query parameters

Parameter Required Description
version Yes Translation version key, such as en-kjv, en-asv, or en-lsv.

Behavior

  • Uses the requested translation’s own verse index.
  • Can return a different verse when refreshed.
  • Does not replace /[version]/random.json.
  • Does not force one shared verse across translations.
  • Returns JSON with type: "quick_verse".

Example response shape

{
  "ok": true,
  "type": "quick_verse",
  "version": "en-kjv",
  "reference": "John 3:16",
  "book": "john",
  "chapter": 3,
  "verse": 16,
  "text": "...",
  "source": {
    "method": "runtime_random",
    "index": "/en-kjv/verses-index.json",
    "api_path": "/en-kjv/books/john/chapters/3/verses/16.json"
  },
  "lookup": {
    "method": "single-index",
    "index": "/en-kjv/verses-index.json"
  }
}

/[version]/random.json — Verse of the Day

Each public translation includes a generated Verse of the Day at /[version]/random.json. This is a static generated JSON file. It updates when the ScriptureFlow generator runs. It does not return a new random verse on every refresh.

Example

https://scriptureflow-api-preview.pages.dev/en-kjv/random.json

Behavior

  • Generated separately for each public translation.
  • Uses that translation’s own available verse index.
  • Safe for daily cards, devotional prompts, homepage widgets, or scheduled workflows.
  • Not intended as a live random endpoint.
Verse of the Day is translation-scoped because Bible translations may differ in canon, book availability, chapter divisions, and verse numbering.

Example response shape

{
  "version": "en-kjv",
  "reference": "Ezekiel 27:35",
  "book": "ezekiel",
  "chapter": 27,
  "verse": 35,
  "text": "...",
  "book_slug": "ezekiel",
  "canonical_book": "ezekiel",
  "source_path": "bibles/en-kjv/books/ezekiel/chapters/27/verses/35.json",
  "api_path": "/en-kjv/books/ezekiel/chapters/27/verses/35.json"
}

Error Responses

Failed runtime API requests return JSON with ok: false where possible.

Missing Quick Verse version

{
  "ok": false,
  "type": "quick_verse",
  "error": "Missing required query parameter: version",
  "example": "/api/quick-verse?version=en-kjv"
}

Version not found

{
  "ok": false,
  "type": "quick_verse",
  "error": "Version index not found",
  "version": "en-nkjv",
  "index": "/en-nkjv/verses-index.json"
}

Invalid verse lookup query

{
  "ok": false,
  "error": "Invalid query. Required: version plus either reference (e.g. John 3:16) or book/chapter/verse.",
  "query": {
    "version": "en-kjv"
  }
}

Safe Builder Guidance

  • Use exact version keys from /translations.json.
  • Do not treat generated summaries, paraphrases, or AI explanations as Scripture text.
  • Use ScriptureFlow response fields for Scripture text.
  • Use Verse of the Day for stable daily display.
  • Use Quick Verse for refreshable random verse experiences.