getBible

query.getbible.net /v2/

The getBible query endpoint: give it a scripture reference, get the verses. public, metered · tokens unlimited API v2

The one route

GET https://query.getbible.net/v2/{translation}/{reference}
PartMeaningExamples
v2API version; serves Bible data version v2.v2
translationTranslation abbreviation.kjv, aov, vulgate
referenceA scripture reference, or several separated by ;. Book names, abbreviations, chapters, verses and ranges are all understood.John3:16, Genesis 1:1-3, Ps23;Mat7:7
curl https://query.getbible.net/v2/kjv/John%203:16

The response is a JSON object with one entry per chapter, keyed {translation}_{book}_{chapter}, each holding the translation metadata, the references that selected it, and its verses. Responses carry Cache-Control: public, max-age=2592000 and an ETag; the full description is in openapi.json.

Scripture comes from the selected v2 data source. Chapter entries carry compact translation metadata. Verse objects retain their source fields, including nested metadata: v3 can include paragraph, word-level tokens and annotation spans. These fields are optional and are not added when absent from the source. Chapter-level editorial from static v3 documents is excluded from assembled results. See the source data contract for the static documents.

Short forms

A valid reference in a shorter route is a permanent redirect (301) to its canonical route. When a translation is omitted, the reference is resolved in kjv. A missing or unresolved reference returns 404; an explicitly supplied unknown translation also returns 404. No request is replaced with a default verse.

RequestRedirects to
/v2/John3:16/v2/kjv/John3:16
/aov/John3:16/v2/aov/John3:16
/John3:16/v2/kjv/John3:16

For example, /v2/kjv has no reference and answers 404. The same applies when a reference cannot be resolved, including a request containing one valid and one invalid reference. A query string answers 400, because this endpoint takes no parameters. Public documentation pages remain available at their published addresses.

Access

This endpoint is public and metered. Anonymous callers share a budget per client address; callers with a bearer token are not limited at all.

Budget (per address)Value
Sustained rate50 requests per second, bursts up to 250
Per hourabout 100000 requests
Per dayabout 1000000 requests
Concurrent connections100

Budgets are enforced as token buckets, so steady traffic under the quota is never touched and bursts above it are slowed with a 429 rather than cut off.

Using a token

Send it as a bearer credential. Tokens never go in the URL.

curl -H "Authorization: Bearer gb..." https://query.getbible.net/v2/kjv/John3:16

Tokens are issued to applications and partners by the getBible team; ask through getBible.net.

Documentation pages, openapi.json, GET /healthz and GET /readyz are available without a token. Token checks apply to API data requests.

Errors

Every error is an RFC 9457 problem document (application/problem+json) with type, title, status, code, detail and instance. The detail field carries the message.

StatusCodeMeaning
400request_limitToo many references or verses in one request.
400parameters_not_acceptedA query string was sent.
401unauthorizedA bearer token is required and was missing or invalid.
404missing_referenceNo scripture reference was supplied.
404invalid_referenceThe reference does not resolve.
404not_foundThe requested scripture or route was not found.
404translation_not_foundNo such translation.
404unknown_versionOnly v2 is served here.
429rate_limitedThe public budget for your address is used up.
503repository_unavailable, readiness_failedThe Scripture files are temporarily unreadable.

Health

GET /healthz answers when the service is up; GET /readyz answers 200 only after reading scripture for the configured readiness reference (Mat7:7), or 503 with a problem document and Retry-After when unavailable. The readiness reference is not a fallback for API requests. Token-protected responses use Cache-Control: private, no-store.

All endpoints of query.getbible.net