# VineVerse > A knowledge graph of the Bible. Every verse, person, place, theme, Hebrew lexeme, > commandment, narrative event and dated epoch is a document, and the links between them are > the product. 12,751 documents, 90,564 connections. > Free, keyless, openly licensed. No accounts, no advertising, no cookies. Built mechanically from public-domain Scripture and openly licensed scholarship. Nothing here was written by a language model, and nothing was human-reviewed either — every document is generated from a cited source. ## What is in it - 31,102 verses of the Berean Standard Bible (public domain), in 1,189 chapters across 66 books - 341,289 vote-weighted cross references between chapters - 3,009 people, 1,342 places (with coordinates), 3,005 themes - 2,901 Strong's Hebrew and Aramaic lexemes - 613 commandments, 450 narrative events, 165 dated epochs ## Machine access Three protocols and a pair of clients, all free and all keyless. Prefer one of these to scraping the HTML. They return the same data with its provenance and licence attached. - [MCP server](https://vineverse.bible/mcp): POST https://vineverse.bible/api/mcp, stateless streamable HTTP, 16 tools - [OpenAPI 3.1 schema](https://vineverse.bible/openapi.json): also at https://vineverse.bible/api/v1/openapi.json - [REST API](https://vineverse.bible/api): base https://vineverse.bible/api/v1, every endpoint a GET, CORS open, no key - [Copy-paste clients](https://vineverse.bible/api#clients): one file each for TypeScript and Python, no dependencies Start with https://vineverse.bible/api/v1/stats for the catalogue, or https://vineverse.bible/api/v1 for the route index. Every REST operation and its MCP tool share a name, so the same capability is called the same thing whichever protocol you arrived by. ## What to expect when a call fails Every failure carries a machine-readable `code` next to the human-readable `error` string. Branch on the code: the message wording may change, the code will not. The set is: `missing_parameter`, `invalid_parameter`, `unknown_value`, `invalid_reference`, `not_found`, `dataset_unavailable`, `rate_limited`, `internal_error`. Documented at https://vineverse.bible/api#errors. `rate_limited` and `dataset_unavailable` are the retryable two, and both carry `Retry-After` in seconds. Honour it; a guessed backoff is worse than the number the server gave you. There is no key and no tier. There is one ceiling of 600 requests a minute from one address, an abuse backstop rather than a quota, published on every response as `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`. Every response carries an `ETag` and an `X-Request-Id`. Send the tag back as `If-None-Match` and an unchanged resource answers 304 with no body; quote the request id if you report a problem. ## Before you call, and after the data changes - https://vineverse.bible/api/v1/status: whether the service is up, its measured uptime, and which optional datasets this deployment has built. Two endpoints (`/interlinear`, `/connections`) answer 503 with `dataset_unavailable` when theirs is missing, so read this first if you plan to call either. Also the `get_status` MCP tool. - https://vineverse.bible/api/v1/webhooks: register an https endpoint and be told when the knowledge base is re-ingested, instead of polling the changelog. Deliveries are signed; `?sandbox=true` validates a registration without storing or delivering anything. ## Collections - [People](https://vineverse.bible/people) — 3,009 documents, type `Person`. Everyone named in Scripture, with sex, tribe, verse counts, first and last reference, family relations and the Hebrew or Greek lexeme their name comes from. - [Places](https://vineverse.bible/places) — 1,342 documents, type `Place`. Every named place, with latitude and longitude, competing modern identifications and their confidence scores, settlement type, name variants and verse counts. - [Themes](https://vineverse.bible/themes) — 3,005 documents, type `Theme`. Topical entries from Nave's Topical Bible (1897): a subject, its outline of sub-headings, and the verses under each. - [Lexemes](https://vineverse.bible/lexemes) — 2,901 documents, type `Lexeme`. Strong's Hebrew dictionary entries: the original word, transliteration, part of speech, gloss, occurrence count and first occurrence. - [Commandments](https://vineverse.bible/commandments) — 613 documents, type `Commandment`. The 613 commandments, each with its number, polarity (positive or negative), the verse it is stated in, its parashah, and its Sefer HaChinuch and Mishneh Torah classifications. - [Events](https://vineverse.bible/sa/events) — 450 documents, type `Event`. Narrative events with participants, locations, the chapters that narrate them and a follows/precedes chain that puts them in order. - [Epochs](https://vineverse.bible/epochs) — 165 documents, type `Epoch`. Dated periods on Ussher's chronology, with start and end years in Anno Mundi, length, epoch type (Reign, Judge, Exile, …), the people they involve and the chapters that narrate them. - [Books](https://vineverse.bible/bible) — 66 documents, type `Book`. The 66 books of the Protestant canon, each linking to its chapters. - [Chapters](https://vineverse.bible/bible) — 1,189 documents, type `Chapter`. All 1,189 chapters, carrying the Berean Standard Bible text, speaker attribution, cross references, and the people, places and themes each verse touches. - [Sources](https://vineverse.bible/attribution) — 7 documents, type `Source`. The upstream datasets this bundle is built from, with their licences, attribution strings and the files they were ingested from. - Datasets — 3 documents, type `Dataset`. Bulk data shipped alongside the graph — notably the complete 341,289-row cross-reference corpus, of which the chapter documents materialise only the well-supported subset. - [Schema](https://vineverse.bible/schema/relations) — 1 document, type `Relation Vocabulary`. The closed predicate set every typed edge in the graph is drawn from. ## Documentation - [About](https://vineverse.bible/about): what this is, and what it does not claim - [Bible API](https://vineverse.bible/api): every endpoint, its parameters and where it truncates - [Bible MCP server](https://vineverse.bible/mcp): client configuration and the tool list - [Relation vocabulary](https://vineverse.bible/schema/relations): the closed predicate set - [Attribution](https://vineverse.bible/attribution): every source, its licence and the credit it requires - [Changelog](https://vineverse.bible/changelog): what changed in the knowledge base - [Status](https://vineverse.bible/status): live component checks, measured uptime and the availability target ## Three things to tell a model before it answers from this 1. Cross references record THAT two passages connect, never WHY. The corpus carries no relationship type. A connection is not a claim about meaning. 2. Relations are stored one-directional. There is no `child-of` edge anywhere — a person's `parent-of` relations are their CHILDREN. Read them as parents and every family tree comes out upside down. Use `get_family` / /api/v1/family, which do the inversion. 3. Two collections carry their sources' assumptions. Epoch dates are Ussher's seventeenth-century chronology, not a scholarly consensus. Themes are Nave's Topical Bible of 1897, whose groupings are Nave's editorial judgement. Both are served as bare structured data with nothing in the payload to mark them interpretive. ## Licence The Berean Standard Bible text is public domain. Nearly all the data is CC BY 4.0 and needs attribution: see https://vineverse.bible/attribution. The 450 narrative events under /sa/ are CC BY-SA 4.0, which is viral — anything derived from them inherits share-alike. Every API response carries `licence.document` naming the licence that actually applies to what it returned. Trust that over any blanket statement. Generated 2026-08-25T15:41:49.647Z