Spirit Nation API

Build scripture readers, search tools, and study applications with public-domain and explicitly licensed Bible text and Spirit Nation's source-study data. Every programmatic request requires an account and an active plan or approved ministry exception.

Text licenses and attribution

Public-domain editions and licensed editions are labelled separately. Responses containing licensed text include the copyright credit, source URL, license link and a change notice in the translation rights metadata. Retain those notices when reusing the text. Literal Standard Version rendering contributions use CC BY-SA 4.0; the Boyd reading edition uses CC BY 4.0 and a distinct adapted title.

API plans and request limits cover access to the hosted service. They do not narrow the source text license or charge for permission already granted by that license. The original distributor links remain available in each translation profile. Separate images and website materials are not included in the translated-text license.

Simple monthly plans

Pay for the capacity you need

Choose a monthly plan when you are ready to build. Review the fixed request example below, or ask about a short trial or limited-access exception if you need time to evaluate the API.

Use Apocrypha and early writings in your app

Build a reader or reference tool from the editions that actually contain each work. Start with /api/v1/translations, then /api/v1/books?translation=EDITION_SLUG. The book list tells you which books and printed pages or chapters that edition provides. Browse the library to check an edition before you build around it.

For example, the library has 1 Enoch in R. H. Charles's 1913 edition. This request asks for its first available printed page:

curl -H "Authorization: Bearer YOUR_KEY" "https://spiritnation.loganpendragonforge.com/api/v1/text/enoch-charles-1913/1-enoch/188"

The JSON response contains meta, reference_system, translation, book, chapter and data. Read reference_system.chapter_label before calling the number a chapter; this edition uses printed pages. The data array contains the text records for that page. If a book is absent from an edition, choose another edition rather than assuming every work has the same coverage.

Keep the edition's source and rights notices with reused text. Read the licensing notes, check access plans, and use the endpoint guide for response details and limits. API requests need an active key from a plan or an approved exception; browsing the website does not require one.

Example API Request

This fixed example shows the request format without providing an unmetered data endpoint. Every `/api/v1` data request requires an active API key tied to a paid plan or approved exception; only the OpenAPI catalog is public.

GET /api/v1/text/kjv/genesis/1/1
Authorization: Bearer YOUR_KEY

{
  "meta": {"api_version": "v1", "endpoint": "verse"},
  "translation": {"slug": "kjv", "abbreviation": "KJV"},
  "book": {"slug": "genesis", "name": "Genesis"},
  "data": {"verse": 1, "text": "Public-domain scripture text appears here."}
}

Endpoints

Approved API keys can request translation metadata, book lists, chapter lists, chapter text, individual verses where supported, verse ranges, search results, and word-study data. Use JSON responses for scripture readers, widgets, reference tools, and study applications.

Use `/api/v1/text/...`, `/api/v1/study/...`, and `/api/v1/morphology/...` for new integrations. The direct `/api/v1/{translation}/...` routes remain active as compatibility aliases.

An OpenAPI-style endpoint catalog is available at `/api/v1/openapi`. Approved keys can check quota and tier status at `/api/v1/key`.

New text, study, and morphology responses include a `meta` envelope with API version, preferred namespaces, and data-policy notes. Generated or rule-aligned morphology is always labeled; only tokens with `verified_by_spirit_nation: true` should be treated as manually reviewed.

Books, editions and source numbering

The API includes the same active editions as the website, including the Apocrypha, Enoch, Ahikar and related writings. Start with /api/v1/translations, then request /api/v1/books?translation=EDITION_SLUG. A book is listed only when that edition contains text for it.

Book lists include first_chapter and available_chapter_count. Use /api/v1/text/EDITION_SLUG/BOOK_SLUG for its actual chapter or page numbers. Some editions start at a printed page such as 724; do not assume every book starts at 1 or has continuous numbering.

Book-list, book and chapter responses include reference_system. Follow its chapter_label and unit_label. For kind: chapter-text, request complete chapters or pages; the internal text record is not a verse. Individual-verse requests return 422 verse_navigation_unavailable for these editions. Other editions may retain lettered or ranged verse_label values.

KJV includes 1 and 2 Maccabees. For 3 or 4 Maccabees, choose an edition that contains that book. Switching editions does not establish equivalent verse numbering or verified word-level source alignment.

GET /api/v1/books?translation=web GET /api/v1/text/web/4-maccabees GET /api/v1/text/ahikar-harris-lewis-conybeare-1913/ahikar-syriac-a GET /api/v1/text/ahikar-harris-lewis-conybeare-1913/ahikar-syriac-a/724
GET /api/v1/openapi GET /api/v1/key GET /api/v1/translations GET /api/v1/books?translation=kjv GET /api/v1/source-texts GET /api/v1/source-coverage GET /api/v1/text/kjv/genesis/1/1 GET /api/v1/text/kjv/range?from=genesis.1.1&to=genesis.1.5 GET /api/v1/morphology/kjv/genesis/1/1 GET /api/v1/study/kjv/range?from=genesis.1.1&to=genesis.1.3 GET /api/v1/kjv/genesis GET /api/v1/kjv/genesis/1 GET /api/v1/kjv/genesis/1/3 GET /api/v1/study/kjv/genesis/1/1 GET /api/v1/kjv/range?from=genesis.1.1&to=genesis.1.5 GET /api/v1/search?translation=kjv&q=light

Send approved keys as `Authorization: Bearer YOUR_KEY`, `X-Spirit-Nation-Key`, or `?key=YOUR_KEY`.

Recommended Integration Path

Use the versioned namespaces for all new work: `/text` for readable scripture, `/study` when you need readable text plus source panels, `/morphology` when you only need word-study tokens, and `/source-coverage` before making strict claims about a source layer.

Text reader: /api/v1/text/kjv/john/1/1 Study view: /api/v1/study/kjv/genesis/1/1?source_role=Original%20Language Review tools: /api/v1/morphology/kjv/genesis/1/1?review_status=needs-review Quality checks: /api/v1/source-coverage

cURL

curl -H "X-Spirit-Nation-Key: YOUR_KEY" \
  "https://spiritnation.loganpendragonforge.com/api/v1/text/kjv/genesis/1/1"

JavaScript

const res = await fetch("https://spiritnation.loganpendragonforge.com/api/v1/study/kjv/john/1/1", {
  headers: { "X-Spirit-Nation-Key": "YOUR_KEY" }
});
const data = await res.json();

PHP

$response = file_get_contents("https://spiritnation.loganpendragonforge.com/api/v1/source-coverage", false, stream_context_create([
  "http" => ["header" => "X-Spirit-Nation-Key: YOUR_KEY\r\n"]
]));

SDK Starter Notes

Keep a tiny client wrapper around the base URL and API key. Treat generated morphology as opt-in unless your app is explicitly a research or review tool.

const spiritNation = {
  baseUrl: "https://spiritnation.loganpendragonforge.com/api/v1",
  key: "YOUR_KEY",
  async get(path) {
    const res = await fetch(`${this.baseUrl}${path}`, {
      headers: { "X-Spirit-Nation-Key": this.key }
    });
    if (!res.ok) throw await res.json();
    return res.json();
  }
};

const verse = await spiritNation.get("/text/kjv/psalms/23/1");
const study = await spiritNation.get("/study/kjv/genesis/1/1?verified_only=1");

Authentication

Use one key per project. Keep keys private and send them through the bearer header whenever possible.

Authorization: Bearer sn_your_key_here

Verse Ranges

Ranges use canonical references in the same translation. Keep the start and end reference in order.

GET /api/v1/text/kjv/range?from=genesis.1.1&to=genesis.1.5

Search

Search returns matching verse records for the selected translation and query text.

GET /api/v1/search?translation=kjv&q=light

Word Study

Study responses return readable verse text plus original-language panels when source data has been attached. Tokens include study status, part of speech, morphology, source, and license metadata when available.

GET /api/v1/study/kjv/john/1/1

Study Ranges

Use the study range endpoint for a small reference window with readable text and source panels. Keep ranges tight; the current study range limit is 100 verses.

GET /api/v1/study/kjv/range?from=john.1.1&to=john.1.5

Text Surface

The `/text` namespace is the cleaner forward path for readable scripture text. The older direct translation routes remain available for compatibility.

GET /api/v1/text/kjv/genesis/1/1

Morphology Surface

The `/morphology` namespace returns source panels and token data only, without the readable translation wrapper, for tools that focus on word study. Add `verified_only=1` to return only manually reviewed Spirit Nation tokens, `include_generated=0` to hide generated/rule-aligned tokens, `source_role=Latin Tradition` to narrow panels by role, `confidence=low` to inspect weak generated morphology, or `review_status=needs-review` to pull review queues.

GET /api/v1/morphology/kjv/genesis/1/1

Source Coverage

Coverage responses list imported source texts, canon coverage, word-token totals, morphology status buckets, review maturity, Phase 5 status, and license notes for source-study layers.

GET /api/v1/source-coverage

Key Status

Approved integrations can check their tier, monthly quota, current usage, remaining calls, and last-used time.

GET /api/v1/key

Endpoint Catalog

The OpenAPI 3.1 catalog exposes the current v1 surface so clients and external documentation can be generated from a stable contract.

GET /api/v1/openapi

Error Shape

Authentication, inactive-key, and quota failures return JSON with a stable `error.code`, `error.message`, `error.status`, and optional details.

{"error":{"code":"api_key_required","status":401}}

Common Status Codes

`401` means no key was sent, `403` means the key is invalid or inactive, and `429` means the monthly quota has been exhausted.

429 monthly_quota_exceeded

Response Contract

New v1 responses use a stable top-level shape. Text endpoints return `translation`, `book`, and `data`; study endpoints add `readable_text` and `source_panels`; morphology endpoints return source panels and tokens only.

{
  "meta": {
    "api_version": "v1",
    "endpoint": "study.verse",
    "data_policy": {
      "readable_text": "Public-domain and explicitly licensed editions; per-edition rights apply.",
      "generated_morphology": "Generated data is labeled until verified."
    }
  },
  "translation": {"slug": "kjv", "abbreviation": "KJV"},
  "book": {"slug": "genesis", "name": "Genesis"},
  "source_panels": []
}

Quality Filter Examples

GET /api/v1/study/kjv/genesis/1/1?verified_only=1 GET /api/v1/study/kjv/genesis/1/1?include_generated=0 GET /api/v1/morphology/kjv/genesis/1/1?confidence=low GET /api/v1/morphology/kjv/genesis/1/1?source_role=Greek%20Tradition&review_status=needs-review

Source Roles

Source-study layers identify whether a panel is an original text, ancient Greek tradition, Latin tradition, or Aramaic/Syriac tradition.

source_text.source_role

Morphology Status

Token data is labeled as imported, dataset-backed, lexicon-aligned, rule-aligned, pending, or review-needed instead of being presented as equally verified.

token_statuses.rule_aligned

Review Metadata

Word-study tokens expose review notes, review timestamps, and whether Spirit Nation has manually verified the token correction.

tokens[].verified_by_spirit_nation

Review Maturity

Source coverage includes per-source maturity counts so API users can see how much of a source is verified, generated, pending, or still needs review.

review_maturity.verified_percent

Study Filters

Use query filters when a client needs only reviewed data, wants to exclude generated morphology, wants a single source role, or wants a review-ready confidence/status queue.

GET /api/v1/study/kjv/genesis/1/1?verified_only=1&source_role=Original%20Language GET /api/v1/study/kjv/genesis/1/1?confidence=low GET /api/v1/morphology/kjv/genesis/1/1?review_status=needs-review

Canon Coverage

Coverage is broken down across Old Testament, New Testament, and Apocrypha so API users can see which traditions apply to which canon groups.

canon_coverage.old.verses

Latin Vulgate morphology is backed by GreLa v0.7 / latin-lemmatized-texts annotations under CC BY-SA 4.0. Preserve attribution when using source-study data outside Spirit Nation. Syriac/Peshitta morphology combines Apache-2.0 OpenSSI candidates where cleanly mapped with Spirit Nation preliminary morphology for remaining tokens; generated Syriac data remains review-required unless explicitly marked verified.

Current Source-Study Layers

Westminster Leningrad Codex Hebrew · 23,213 verses · Public Domain
Greek Brenton Septuagint Greek · 27,976 verses · Public Domain
Targum Onkelos Torah Aramaic · 5,846 verses · Public Domain
Biblical Aramaic Passages Aramaic · 269 verses · Public Domain WLC text; CC BY 4.0 OSHB lemma/morphology
Syriac Peshitta Old Testament Syriac · 28,423 verses · MIT License
Targumim on Prophets and Writings Aramaic · 16,319 verses · Public Domain
Greek Textus Receptus Greek · 7,957 verses · Public Domain
Tischendorf / Westcott-Hort Greek New Testament Greek · 7,939 verses · Public Domain
Syriac Peshitta New Testament Syriac · 7,957 verses · MIT License
Latin Vulgate Clementine Latin · 35,809 verses · Public Domain text; CC BY-SA 4.0 morphology
Spirit Nation Hebrew/Aramaic Alignment Note English · 134 verses · Spirit Nation Editorial Note
Spirit Nation Greek LXX Alignment Note English · 1,409 verses · Spirit Nation Editorial Note
Spirit Nation Latin Vulgate Alignment Note English · 795 verses · Spirit Nation Editorial Note
Spirit Nation Syriac Peshitta OT Alignment Note English · 268 verses · Spirit Nation Editorial Note
Spirit Nation Targum Alignment Note English · 128 verses · Spirit Nation Editorial Note
Spirit Nation Apocrypha Greek Alignment Note English · 82 verses · Spirit Nation Editorial Note
Spirit Nation Apocrypha Latin Alignment Note English · 37 verses · Spirit Nation Editorial Note
Spirit Nation Apocrypha Syriac Alignment Note English · 588 verses · Spirit Nation Editorial Note

Your API account

Create an account to subscribe, manage billing, and create project-specific API keys.

Create Account