API DOCUMENTATION
Query API v3: endpoint and schema reference
This reference is generated from the checked-in OpenAPI contract. Return to the integration guide for workflows and ready-to-run examples.
Resolved request server: https://query.getbible.net.
GET /healthz#
Liveness
Operation ID: health.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | Service is online | application/json | #/components/schemas/Health |
Complete operation contract
{
"operationId": "health",
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"status": "ok"
},
"schema": {
"$ref": "#/components/schemas/Health"
}
}
},
"description": "Service is online"
}
},
"security": [],
"summary": "Liveness",
"parameters": []
}
GET /readyz#
Readiness: read the configured probe reference
Reads the configured readiness reference Mat7:7 in the default translation. This reference is only a health probe, never a fallback for scripture requests.
Operation ID: readiness.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | Scripture is readable | application/json | #/components/schemas/Health |
| 503 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
Complete operation contract
{
"operationId": "readiness",
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"status": "ready"
},
"schema": {
"$ref": "#/components/schemas/Health"
}
}
},
"description": "Scripture is readable"
},
"503": {
"$ref": "#/components/responses/Problem"
}
},
"security": [],
"description": "Reads the configured readiness reference Mat7:7 in the default translation. This reference is only a health probe, never a fallback for scripture requests.",
"summary": "Readiness: read the configured probe reference",
"parameters": []
}
GET /{reference}#
Short form: reference in the default translation
Operation ID: redirectReference.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
reference |
path | Yes | string | John3:16 | — |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 301 | A valid reference redirects to /v3/kjv/{reference}. Missing or unresolved references return 404. | — | See contract |
| 400 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 401 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 404 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 405 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 413 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 429 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 500 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 502 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 503 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 504 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
Complete operation contract
{
"operationId": "redirectReference",
"parameters": [
{
"in": "path",
"name": "reference",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"301": {
"description": "A valid reference redirects to /v3/kjv/{reference}. Missing or unresolved references return 404."
},
"400": {
"$ref": "#/components/responses/Problem"
},
"401": {
"$ref": "#/components/responses/Problem"
},
"404": {
"$ref": "#/components/responses/Problem"
},
"405": {
"$ref": "#/components/responses/Problem"
},
"413": {
"$ref": "#/components/responses/Problem"
},
"429": {
"$ref": "#/components/responses/Problem"
},
"500": {
"$ref": "#/components/responses/Problem"
},
"502": {
"$ref": "#/components/responses/Problem"
},
"503": {
"$ref": "#/components/responses/Problem"
},
"504": {
"$ref": "#/components/responses/Problem"
}
},
"summary": "Short form: reference in the default translation"
}
GET /{translation}/{reference}#
Short form without a version segment
Operation ID: redirectUnversioned.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
translation |
path | Yes | string | kjv | — |
reference |
path | Yes | string | John3:16 | — |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 301 | A valid reference in a known translation redirects to /v3/{translation}/{reference}. Unknown translations and missing or unresolved references return 404. | — | See contract |
| 400 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 401 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 404 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 405 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 413 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 429 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 500 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 502 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 503 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 504 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
Complete operation contract
{
"operationId": "redirectUnversioned",
"parameters": [
{
"in": "path",
"name": "translation",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "reference",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"301": {
"description": "A valid reference in a known translation redirects to /v3/{translation}/{reference}. Unknown translations and missing or unresolved references return 404.",
"headers": {
"Location": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"$ref": "#/components/responses/Problem"
},
"401": {
"$ref": "#/components/responses/Problem"
},
"404": {
"$ref": "#/components/responses/Problem"
},
"405": {
"$ref": "#/components/responses/Problem"
},
"413": {
"$ref": "#/components/responses/Problem"
},
"429": {
"$ref": "#/components/responses/Problem"
},
"500": {
"$ref": "#/components/responses/Problem"
},
"502": {
"$ref": "#/components/responses/Problem"
},
"503": {
"$ref": "#/components/responses/Problem"
},
"504": {
"$ref": "#/components/responses/Problem"
}
},
"summary": "Short form without a version segment"
}
GET /v3#
A scripture reference is required
This API request supplies no scripture reference and returns a 404 missing_reference problem document. The public documentation page is at /v3/.
Operation ID: missingReference.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 400 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 401 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 404 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 405 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 413 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 429 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 500 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 502 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 503 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 504 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
Complete operation contract
{
"operationId": "missingReference",
"responses": {
"400": {
"$ref": "#/components/responses/Problem"
},
"401": {
"$ref": "#/components/responses/Problem"
},
"404": {
"$ref": "#/components/responses/Problem"
},
"405": {
"$ref": "#/components/responses/Problem"
},
"413": {
"$ref": "#/components/responses/Problem"
},
"429": {
"$ref": "#/components/responses/Problem"
},
"500": {
"$ref": "#/components/responses/Problem"
},
"502": {
"$ref": "#/components/responses/Problem"
},
"503": {
"$ref": "#/components/responses/Problem"
},
"504": {
"$ref": "#/components/responses/Problem"
}
},
"description": "This API request supplies no scripture reference and returns a 404 missing_reference problem document. The public documentation page is at /v3/.",
"summary": "A scripture reference is required",
"parameters": []
}
GET /v3/openapi.json#
Public API contract
Operation ID: openapi.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | Generated OpenAPI 3.1 JSON document. | application/json | object |
Complete operation contract
{
"operationId": "openapi",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"info": {
"type": "object"
},
"openapi": {
"type": "string"
},
"paths": {
"type": "object"
}
},
"required": [
"openapi",
"info",
"paths"
],
"type": "object"
}
}
},
"description": "Generated OpenAPI 3.1 JSON document."
}
},
"security": [],
"summary": "Public API contract",
"parameters": []
}
GET /v3/{translation}#
Resolve a reference in the default translation; a translation alone returns 404
Operation ID: redirectTranslation.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
translation |
path | Yes | string | kjv | — |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 301 | Only when this segment is a valid scripture reference: redirect to /v3/kjv/{reference}. A translation without a reference returns 404 missing_reference; an unresolved reference returns a 404 problem document. | — | See contract |
| 400 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 401 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 404 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 405 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 413 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 429 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 500 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 502 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 503 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 504 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
Complete operation contract
{
"operationId": "redirectTranslation",
"parameters": [
{
"in": "path",
"name": "translation",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"301": {
"description": "Only when this segment is a valid scripture reference: redirect to /v3/kjv/{reference}. A translation without a reference returns 404 missing_reference; an unresolved reference returns a 404 problem document."
},
"400": {
"$ref": "#/components/responses/Problem"
},
"401": {
"$ref": "#/components/responses/Problem"
},
"404": {
"$ref": "#/components/responses/Problem"
},
"405": {
"$ref": "#/components/responses/Problem"
},
"413": {
"$ref": "#/components/responses/Problem"
},
"429": {
"$ref": "#/components/responses/Problem"
},
"500": {
"$ref": "#/components/responses/Problem"
},
"502": {
"$ref": "#/components/responses/Problem"
},
"503": {
"$ref": "#/components/responses/Problem"
},
"504": {
"$ref": "#/components/responses/Problem"
}
},
"summary": "Resolve a reference in the default translation; a translation alone returns 404"
}
GET /v3/{translation}/{reference}#
Verses for one or more references
Every reference must resolve in the requested translation. A missing or unresolved reference returns a 404 problem document, including a mixed list containing an unresolved reference. Unknown translations also return 404. No default verse is substituted.
Operation ID: getScripture.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
translation |
path | Yes | string | kjv | Translation abbreviation, e.g. kjv |
reference |
path | Yes | string | John3:16 | One or more scripture references separated by ';', e.g. John3:16 or Genesis 1:1-3;Psalm 23 |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | Chapter-keyed scripture object | application/json | #/components/schemas/Scripture |
| 304 | Not modified (conditional request) | — | See contract |
| 400 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 401 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 404 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 405 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 413 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 429 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 500 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 502 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 503 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
| 504 | RFC 9457 error. Existing access policies apply to API data requests. | application/problem+json | #/components/schemas/Problem |
Complete operation contract
{
"operationId": "getScripture",
"description": "Every reference must resolve in the requested translation. A missing or unresolved reference returns a 404 problem document, including a mixed list containing an unresolved reference. Unknown translations also return 404. No default verse is substituted.",
"parameters": [
{
"description": "Translation abbreviation, e.g. kjv",
"in": "path",
"name": "translation",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "One or more scripture references separated by ';', e.g. John3:16 or Genesis 1:1-3;Psalm 23",
"in": "path",
"name": "reference",
"required": true,
"schema": {
"maxLength": 512,
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Scripture"
}
}
},
"description": "Chapter-keyed scripture object"
},
"304": {
"description": "Not modified (conditional request)"
},
"400": {
"$ref": "#/components/responses/Problem"
},
"401": {
"$ref": "#/components/responses/Problem"
},
"404": {
"$ref": "#/components/responses/Problem"
},
"405": {
"$ref": "#/components/responses/Problem"
},
"413": {
"$ref": "#/components/responses/Problem"
},
"429": {
"$ref": "#/components/responses/Problem"
},
"500": {
"$ref": "#/components/responses/Problem"
},
"502": {
"$ref": "#/components/responses/Problem"
},
"503": {
"$ref": "#/components/responses/Problem"
},
"504": {
"$ref": "#/components/responses/Problem"
}
},
"summary": "Verses for one or more references"
}
Component schemas#
Types, required properties, nested objects, constraints and examples below are copied directly from the contract. A property omitted from a schema’s required array is optional, even when examples include it.
Health#
View full Health schema
{
"properties": {
"status": {
"enum": [
"ok",
"ready"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
}
Problem#
RFC 9457 problem document.
View full Problem schema
{
"description": "RFC 9457 problem document.",
"properties": {
"code": {
"type": "string"
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"retry_after": {
"minimum": 0,
"type": "integer"
},
"status": {
"type": "integer"
},
"title": {
"type": "string"
},
"type": {
"format": "uri",
"type": "string"
}
},
"required": [
"type",
"title",
"status",
"code",
"detail",
"instance"
],
"type": "object"
}
Scripture#
One entry per chapter, keyed {translation}{book}{chapter}, with compact API translation metadata and selected verses. Verse source fields are retained; static chapter editorial is excluded.
View full Scripture schema
{
"additionalProperties": {
"properties": {
"abbreviation": {
"type": "string"
},
"book_name": {
"type": "string"
},
"book_nr": {
"type": "integer"
},
"chapter": {
"type": "integer"
},
"direction": {
"type": "string"
},
"encoding": {
"type": "string"
},
"lang": {
"type": "string"
},
"language": {
"type": "string"
},
"name": {
"type": "string"
},
"ref": {
"items": {
"type": "string"
},
"type": "array"
},
"translation": {
"type": "string"
},
"verses": {
"items": {
"$ref": "#/components/schemas/Verse"
},
"type": "array"
}
},
"required": [
"book_nr",
"chapter",
"verses"
],
"type": "object"
},
"description": "One entry per chapter, keyed {translation}_{book}_{chapter}, with compact API translation metadata and selected verses. Verse source fields are retained; static chapter editorial is excluded.",
"type": "object"
}
Verse#
A source verse from the selected v3 data. Core fields are shared by v2 and v3. Optional v3 paragraph, tokens and spans are retained when present, as are other source fields and nested values.
View full Verse schema
{
"additionalProperties": true,
"description": "A source verse from the selected v3 data. Core fields are shared by v2 and v3. Optional v3 paragraph, tokens and spans are retained when present, as are other source fields and nested values.",
"properties": {
"chapter": {
"type": "integer"
},
"name": {
"type": "string"
},
"paragraph": {
"description": "V3: true when this verse begins a paragraph; omitted when absent from the source.",
"type": "boolean"
},
"spans": {
"description": "V3 annotations over token and word ranges, when supplied by the source.",
"items": {
"$ref": "#/components/schemas/VerseSpan"
},
"type": "array"
},
"text": {
"type": "string"
},
"tokens": {
"description": "V3 word tokens in reading order, when supplied by the source.",
"items": {
"$ref": "#/components/schemas/VerseToken"
},
"type": "array"
},
"verse": {
"type": "integer"
}
},
"required": [
"verse",
"name",
"text"
],
"type": "object"
}
VerseSpan#
V3 source annotation. Token positions index the verse tokens array from zero, inclusive. Word positions count display words from one, inclusive; zero means unlocated.
View full VerseSpan schema
{
"additionalProperties": true,
"description": "V3 source annotation. Token positions index the verse tokens array from zero, inclusive. Word positions count display words from one, inclusive; zero means unlocated.",
"properties": {
"attrs": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"span": {
"type": "string"
},
"tag": {
"type": "string"
},
"token_end": {
"minimum": 0,
"type": "integer"
},
"token_start": {
"minimum": 0,
"type": "integer"
},
"word_end": {
"minimum": 0,
"type": "integer"
},
"word_start": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"tag",
"span",
"token_start",
"token_end",
"word_start",
"word_end"
],
"type": "object"
}
VerseToken#
V3 word token. Word positions count whitespace-separated display words from one, inclusive; zero means unlocated. Additional source attributes are retained.
View full VerseToken schema
{
"additionalProperties": true,
"description": "V3 word token. Word positions count whitespace-separated display words from one, inclusive; zero means unlocated. Additional source attributes are retained.",
"properties": {
"gloss": {
"type": "string"
},
"lemma": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Lexical identifiers grouped by scheme, such as strong.",
"type": "object"
},
"morph": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Morphology codes grouped by scheme.",
"type": "object"
},
"morphSegmented": {
"type": "boolean"
},
"n": {
"type": "string"
},
"src": {
"items": {
"type": [
"integer",
"string"
]
},
"type": "array"
},
"subType": {
"type": "string"
},
"token": {
"type": "string"
},
"type": {
"type": "string"
},
"variant": {
"type": "boolean"
},
"variantType": {
"type": "string"
},
"word_end": {
"minimum": 0,
"type": "integer"
},
"word_start": {
"minimum": 0,
"type": "integer"
},
"xlit": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Transliterations grouped by scheme.",
"type": "object"
}
},
"required": [
"token",
"word_start",
"word_end"
],
"type": "object"
}
Authentication contract#
{
"security": [],
"securitySchemes": {
"bearer": {
"description": "Required for API data only on token-only domains. Valid tokens retain unrestricted rate access.",
"scheme": "bearer",
"type": "http"
}
}
}
See access and tokens for public usage and token requests.