API DOCUMENTATION
Dictionaries API v1: 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://dictionaries.getbible.net.
GET /v1/dictionaries.json#
The catalog of every dictionary in the tree
Every dictionary this tree holds, with its counts and sizes, and the path template of each of its documents relative to v1/.
Operation ID: listDictionaries.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | The catalog of every dictionary in the tree | application/json | #/components/schemas/dictionary-catalog |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"tree"
],
"summary": "The catalog of every dictionary in the tree",
"description": "Every dictionary this tree holds, with its counts and sizes, and the path template of each of its documents relative to v1/.",
"operationId": "listDictionaries",
"responses": {
"200": {
"description": "The catalog of every dictionary in the tree",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/dictionary-catalog"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
},
"parameters": []
}
GET /v1/build.json#
How and when the tree was built
The builder and extractor versions, the build time, the module catalog the modules were selected from and the Bible API the references were resolved against.
Operation ID: getBuild.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | How and when the tree was built | application/json | #/components/schemas/build |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"tree"
],
"summary": "How and when the tree was built",
"description": "The builder and extractor versions, the build time, the module catalog the modules were selected from and the Bible API the references were resolved against.",
"operationId": "getBuild",
"responses": {
"200": {
"description": "How and when the tree was built",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/build"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
},
"parameters": []
}
GET /v1/build-report.json#
The compilation outcome and module failures
The build status, successfully rebuilt modules, failures with their stage and reason, and previously verified modules retained after a failed rebuild. This snapshot describes compilation; the workflow report also records later publication errors.
Operation ID: getBuildReport.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | The compilation outcome and module failures | application/json | #/components/schemas/build-report |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"tree"
],
"summary": "The compilation outcome and module failures",
"description": "The build status, successfully rebuilt modules, failures with their stage and reason, and previously verified modules retained after a failed rebuild. This snapshot describes compilation; the workflow report also records later publication errors.",
"operationId": "getBuildReport",
"responses": {
"200": {
"description": "The compilation outcome and module failures",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/build-report"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
},
"parameters": []
}
GET /v1/hashes.json#
The SHA-256 of every other document
The integrity manifest of the tree: a digest for every other document, which is also the complete list of the paths the tree contains.
Operation ID: getHashes.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | The SHA-256 of every other document | application/json | #/components/schemas/hashes |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"tree"
],
"summary": "The SHA-256 of every other document",
"description": "The integrity manifest of the tree: a digest for every other document, which is also the complete list of the paths the tree contains.",
"operationId": "getHashes",
"responses": {
"200": {
"description": "The SHA-256 of every other document",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/hashes"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
},
"parameters": []
}
GET /v1/openapi.json#
This description
The OpenAPI description of the tree, generated with it.
Operation ID: getOpenApi.
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | This description | application/json | object |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"tree"
],
"summary": "This description",
"description": "The OpenAPI description of the tree, generated with it.",
"operationId": "getOpenApi",
"responses": {
"200": {
"description": "This description",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
},
"parameters": []
}
GET /v1/schema/{document}.json#
The JSON Schema of one document type
The schemas embedded under components, served beside the data.
Operation ID: getSchema.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
document |
path | Yes | string | dictionary-catalog | The document type. |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | The JSON Schema of one document type | application/json | object |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"tree"
],
"summary": "The JSON Schema of one document type",
"description": "The schemas embedded under components, served beside the data.",
"operationId": "getSchema",
"parameters": [
{
"name": "document",
"in": "path",
"required": true,
"description": "The document type.",
"schema": {
"type": "string",
"enum": [
"dictionary-catalog",
"dictionary-metadata",
"dictionary-index",
"dictionary-entry",
"dictionary",
"build",
"build-report",
"hashes"
]
}
}
],
"responses": {
"200": {
"description": "The JSON Schema of one document type",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
}
}
GET /v1/{dictionary}/metadata.json#
One dictionary's provenance, licence, counts and sizes
Where the module came from, under which licence, how many words it holds, how large its whole-dictionary document is, and which Bible its references were resolved against.
Operation ID: getDictionaryMetadata.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
dictionary |
path | Yes | string | strongsgreek | The dictionary's id, as dictionaries.json lists it. |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | One dictionary's provenance, licence, counts and sizes | application/json | #/components/schemas/dictionary-metadata |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"dictionary"
],
"summary": "One dictionary's provenance, licence, counts and sizes",
"description": "Where the module came from, under which licence, how many words it holds, how large its whole-dictionary document is, and which Bible its references were resolved against.",
"operationId": "getDictionaryMetadata",
"parameters": [
{
"name": "dictionary",
"in": "path",
"required": true,
"description": "The dictionary's id, as dictionaries.json lists it.",
"schema": {
"type": "string",
"minLength": 1,
"enum": [
"abbottsmith",
"abbottsmithstrongs",
"amtract",
"bdbglosses_strongs",
"cawdrey",
"cbc",
"daily",
"dodson",
"easton",
"eusebian_num",
"hitchcock",
"isbe",
"klven_iklingon",
"klviklingon_en",
"nave",
"oshm",
"saoa",
"sme",
"smith",
"strongsgreek",
"strongshebrew",
"swe1917of",
"tcr",
"torrey",
"viestrongsgreek",
"webster1806",
"webster1913"
]
}
}
],
"responses": {
"200": {
"description": "One dictionary's provenance, licence, counts and sizes",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/dictionary-metadata"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
}
}
GET /v1/{dictionary}/index.json#
Every word of one dictionary
Every word once, sorted by its accent-insensitive lowercase search term, with the id of the document that holds it.
Operation ID: getDictionaryIndex.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
dictionary |
path | Yes | string | strongsgreek | The dictionary's id, as dictionaries.json lists it. |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | Every word of one dictionary | application/json | #/components/schemas/dictionary-index |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"dictionary"
],
"summary": "Every word of one dictionary",
"description": "Every word once, sorted by its accent-insensitive lowercase search term, with the id of the document that holds it.",
"operationId": "getDictionaryIndex",
"parameters": [
{
"name": "dictionary",
"in": "path",
"required": true,
"description": "The dictionary's id, as dictionaries.json lists it.",
"schema": {
"type": "string",
"minLength": 1,
"enum": [
"abbottsmith",
"abbottsmithstrongs",
"amtract",
"bdbglosses_strongs",
"cawdrey",
"cbc",
"daily",
"dodson",
"easton",
"eusebian_num",
"hitchcock",
"isbe",
"klven_iklingon",
"klviklingon_en",
"nave",
"oshm",
"saoa",
"sme",
"smith",
"strongsgreek",
"strongshebrew",
"swe1917of",
"tcr",
"torrey",
"viestrongsgreek",
"webster1806",
"webster1913"
]
}
}
],
"responses": {
"200": {
"description": "Every word of one dictionary",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/dictionary-index"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
}
}
GET /v1/{dictionary}/{entry}.json#
One word of one dictionary
The definition, the words it links to and from, and the scripture it cites.
Operation ID: getDictionaryEntry.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
dictionary |
path | Yes | string | strongsgreek | The dictionary's id, as dictionaries.json lists it. |
entry |
path | Yes | string | G3056 | The word's id as index.json lists it: a Strong's token such as G3056 or H0430 in a Strong's lexicon, otherwise a deterministic path-safe id, with --2, --3 and so on for later definitions of a repeated key. |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | One word of one dictionary | application/json | #/components/schemas/dictionary-entry |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"dictionary"
],
"summary": "One word of one dictionary",
"description": "The definition, the words it links to and from, and the scripture it cites.",
"operationId": "getDictionaryEntry",
"parameters": [
{
"name": "dictionary",
"in": "path",
"required": true,
"description": "The dictionary's id, as dictionaries.json lists it.",
"schema": {
"type": "string",
"minLength": 1,
"enum": [
"abbottsmith",
"abbottsmithstrongs",
"amtract",
"bdbglosses_strongs",
"cawdrey",
"cbc",
"daily",
"dodson",
"easton",
"eusebian_num",
"hitchcock",
"isbe",
"klven_iklingon",
"klviklingon_en",
"nave",
"oshm",
"saoa",
"sme",
"smith",
"strongsgreek",
"strongshebrew",
"swe1917of",
"tcr",
"torrey",
"viestrongsgreek",
"webster1806",
"webster1913"
]
}
},
{
"name": "entry",
"in": "path",
"required": true,
"description": "The word's id as index.json lists it: a Strong's token such as G3056 or H0430 in a Strong's lexicon, otherwise a deterministic path-safe id, with --2, --3 and so on for later definitions of a repeated key.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "One word of one dictionary",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/dictionary-entry"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
}
}
GET /v1/{dictionary}.json#
The whole dictionary
Every entry document in index order, each byte-for-byte the document served at its own path. A bulk document: metadata.json states its size.
Operation ID: getDictionary.
| Parameter | In | Required | Type | Example / default | Description |
|---|---|---|---|---|---|
dictionary |
path | Yes | string | strongsgreek | The dictionary's id, as dictionaries.json lists it. |
Responses#
| Status | Description | Media type | Schema |
|---|---|---|---|
| 200 | The whole dictionary | application/json | #/components/schemas/dictionary |
| 404 | No such document. The tree is static: a path that hashes.json does not list does not exist. | — | See contract |
Complete operation contract
{
"tags": [
"dictionary"
],
"summary": "The whole dictionary",
"description": "Every entry document in index order, each byte-for-byte the document served at its own path. A bulk document: metadata.json states its size.",
"operationId": "getDictionary",
"parameters": [
{
"name": "dictionary",
"in": "path",
"required": true,
"description": "The dictionary's id, as dictionaries.json lists it.",
"schema": {
"type": "string",
"minLength": 1,
"enum": [
"abbottsmith",
"abbottsmithstrongs",
"amtract",
"bdbglosses_strongs",
"cawdrey",
"cbc",
"daily",
"dodson",
"easton",
"eusebian_num",
"hitchcock",
"isbe",
"klven_iklingon",
"klviklingon_en",
"nave",
"oshm",
"saoa",
"sme",
"smith",
"strongsgreek",
"strongshebrew",
"swe1917of",
"tcr",
"torrey",
"viestrongsgreek",
"webster1806",
"webster1913"
]
}
}
],
"responses": {
"200": {
"description": "The whole dictionary",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/dictionary"
}
}
}
},
"404": {
"description": "No such document. The tree is static: a path that hashes.json does not list does not exist."
}
}
}
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.
dictionary-catalog#
Every dictionary in one v1 tree, with the path template of each of its documents relative to the tree root. The catalog and build.json are the only documents that carry the build time.
View full dictionary-catalog schema
{
"title": "GetBible Dictionary Catalog v1",
"description": "Every dictionary in one v1 tree, with the path template of each of its documents relative to the tree root. The catalog and build.json are the only documents that carry the build time.",
"type": "object",
"required": [
"schema",
"version",
"generated_at",
"base_url",
"metadata_url_template",
"index_url_template",
"dictionary_url_template",
"entry_url_template",
"module_count",
"dictionaries"
],
"properties": {
"schema": {
"const": "getbible-dictionaries-catalog-v1"
},
"version": {
"const": 1
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"base_url": {
"type": "string",
"minLength": 1
},
"metadata_url_template": {
"const": "{dictionary}/metadata.json"
},
"index_url_template": {
"const": "{dictionary}/index.json"
},
"dictionary_url_template": {
"const": "{dictionary}.json"
},
"entry_url_template": {
"const": "{dictionary}/{entry}.json"
},
"module_count": {
"type": "integer",
"minimum": 0
},
"dictionaries": {
"type": "array",
"items": {
"type": "object",
"description": "One dictionary: its id is the first path segment of all of its documents, strong_prefix is G or H for a Strong's lexicon and null otherwise, and bytes is the size of its whole-dictionary document.",
"required": [
"id",
"name",
"language",
"license",
"entry_count",
"unique_key_count",
"strong_prefix",
"bytes"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 2
},
"license": {
"type": "string"
},
"entry_count": {
"type": "integer",
"minimum": 0
},
"unique_key_count": {
"type": "integer",
"minimum": 0
},
"strong_prefix": {
"type": [
"string",
"null"
],
"enum": [
"G",
"H",
null
]
},
"bytes": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
dictionary-metadata#
One dictionary's provenance, licence, counts and sizes. bytes is the size of the whole-dictionary document.
View full dictionary-metadata schema
{
"title": "GetBible Dictionary Metadata v1",
"description": "One dictionary's provenance, licence, counts and sizes. bytes is the size of the whole-dictionary document.",
"type": "object",
"required": [
"schema",
"id",
"module",
"name",
"language",
"version",
"license",
"driver",
"source_type",
"entry_count",
"unique_key_count",
"strong_prefix",
"bytes",
"index_url",
"entry_url_template",
"source",
"source_module_url",
"text_source",
"copyright",
"copyright_holder",
"copyright_contact",
"distribution_notes",
"about",
"conversion_note",
"references"
],
"properties": {
"schema": {
"const": "getbible-dictionary-metadata-v1"
},
"id": {
"type": "string",
"minLength": 1
},
"module": {
"type": "string",
"minLength": 1,
"description": "The source module's own name."
},
"name": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 2
},
"version": {
"type": "string"
},
"license": {
"type": "string"
},
"driver": {
"type": "string"
},
"source_type": {
"type": "string"
},
"entry_count": {
"type": "integer",
"minimum": 0
},
"unique_key_count": {
"type": "integer",
"minimum": 0
},
"strong_prefix": {
"type": [
"string",
"null"
],
"enum": [
"G",
"H",
null
]
},
"bytes": {
"type": "integer",
"minimum": 0
},
"index_url": {
"const": "index.json"
},
"entry_url_template": {
"const": "{entry}.json"
},
"source": {
"const": "CrossWire SWORD"
},
"source_module_url": {
"type": "string",
"minLength": 1,
"description": "The module's own page at its source."
},
"text_source": {
"type": "string"
},
"copyright": {
"type": "string"
},
"copyright_holder": {
"type": "string"
},
"copyright_contact": {
"type": "object",
"required": [
"name",
"email",
"address"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"address": {
"type": "string"
}
},
"additionalProperties": false
},
"distribution_notes": {
"type": "string"
},
"about": {
"type": "string"
},
"conversion_note": {
"type": "string",
"minLength": 1
},
"references": {
"type": "object",
"description": "Which Bible the module's scripture references were resolved against: the API, the versification, the translations whose shape decided which chapters and verses exist, the translation whose book names ref uses, and the librarian and alias tables that resolved the spellings.",
"required": [
"api",
"versification",
"translations",
"names",
"language",
"librarian",
"aliases"
],
"properties": {
"api": {
"const": "getbible-v2"
},
"versification": {
"type": "string"
},
"translations": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"names": {
"type": [
"string",
"null"
]
},
"language": {
"type": "string"
},
"librarian": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"aliases": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
dictionary-index#
Every word in one dictionary, sorted by the accent-insensitive lowercase search term. One fetch is enough to search a dictionary in any direction; the word itself is then at entry_url_template with the record's id.
View full dictionary-index schema
{
"title": "GetBible Dictionary Index v1",
"description": "Every word in one dictionary, sorted by the accent-insensitive lowercase search term. One fetch is enough to search a dictionary in any direction; the word itself is then at entry_url_template with the record's id.",
"type": "object",
"required": [
"schema",
"dictionary",
"language",
"name",
"entry_url_template",
"entry_count",
"unique_key_count",
"entries"
],
"properties": {
"schema": {
"const": "getbible-dictionary-index-v1"
},
"dictionary": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 2
},
"name": {
"type": "string",
"minLength": 1
},
"entry_url_template": {
"const": "{entry}.json"
},
"entry_count": {
"type": "integer",
"minimum": 0
},
"unique_key_count": {
"type": "integer",
"minimum": 0
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"key",
"search"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"key": {
"type": "string",
"minLength": 1
},
"search": {
"type": "string",
"minLength": 1
},
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"occurrence": {
"type": "integer",
"minimum": 2
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
dictionary-entry#
One word of one dictionary. see_also lists the words this entry points at; backlinks lists the words that point back.
View full dictionary-entry schema
{
"title": "GetBible Dictionary Entry v1",
"description": "One word of one dictionary. see_also lists the words this entry points at; backlinks lists the words that point back.",
"type": "object",
"required": [
"schema",
"dictionary",
"language",
"id",
"key",
"occurrence",
"aliases",
"text"
],
"properties": {
"schema": {
"const": "getbible-dictionary-entry-v1"
},
"dictionary": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 2
},
"id": {
"type": "string",
"minLength": 1
},
"key": {
"type": "string",
"minLength": 1
},
"occurrence": {
"type": "integer",
"minimum": 1
},
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"text": {
"type": "string"
},
"see_also": {
"$ref": "#/components/schemas/dictionary-entry/$defs/links"
},
"backlinks": {
"$ref": "#/components/schemas/dictionary-entry/$defs/links"
},
"references": {
"type": "array",
"items": {
"type": "object",
"description": "One scripture reference, resolved against the GetBible Bible API. book, chapter, and verse are Bible API coordinates; verses lists every verse covered when there is more than one, and an item without verse covers the whole chapter. ref is the same reference written canonically, in the book name the module's language uses, in the form the Query API accepts. text is present when the citation was located in the entry text: the citation exactly as the text spells it.",
"required": [
"ref",
"osis",
"book",
"chapter"
],
"properties": {
"text": {
"type": "string",
"minLength": 1
},
"ref": {
"type": "string",
"minLength": 1
},
"osis": {
"type": "string",
"minLength": 1
},
"book": {
"type": "integer",
"minimum": 1,
"maximum": 83
},
"chapter": {
"type": "integer",
"minimum": 0
},
"verse": {
"type": "integer",
"minimum": 0
},
"verses": {
"type": "array",
"description": "Every verse this reference covers, including verse. Absent when it covers only verse.",
"items": {
"type": "integer",
"minimum": 0
},
"minItems": 2,
"uniqueItems": true
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false,
"$defs": {
"links": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"key"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"key": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
}
}
}
dictionary#
One complete dictionary in index order. Each member of entries is byte-for-byte the document served at {dictionary}/{entry}.json. This is a bulk document for offline clients; metadata.json publishes its size in bytes.
View full dictionary schema
{
"title": "GetBible Dictionary v1",
"description": "One complete dictionary in index order. Each member of entries is byte-for-byte the document served at {dictionary}/{entry}.json. This is a bulk document for offline clients; metadata.json publishes its size in bytes.",
"type": "object",
"required": [
"schema",
"dictionary",
"language",
"name",
"entries"
],
"properties": {
"schema": {
"const": "getbible-dictionary-v1"
},
"dictionary": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 2
},
"name": {
"type": "string",
"minLength": 1
},
"entries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/dictionary-entry"
}
}
},
"additionalProperties": false
}
build#
How and when one v1 tree was built: the builder and extractor, the catalog the modules were selected from and the Bible API the references were resolved against.
View full build schema
{
"title": "GetBible Build v1",
"description": "How and when one v1 tree was built: the builder and extractor, the catalog the modules were selected from and the Bible API the references were resolved against.",
"type": "object",
"required": [
"schema",
"builder",
"builder_version",
"extractor",
"extractor_version",
"extractor_contract",
"api_version",
"resource",
"generated_at",
"catalog_url",
"bible_api",
"module_count"
],
"properties": {
"schema": {
"const": "getbible-build-v1"
},
"builder": {
"const": "v1_study_builder"
},
"builder_version": {
"type": "string",
"minLength": 1
},
"extractor": {
"const": "getbiblesword"
},
"extractor_version": {
"type": "string",
"minLength": 1
},
"extractor_contract": {
"type": "string",
"minLength": 1
},
"api_version": {
"const": 1
},
"resource": {
"enum": [
"commentaries",
"dictionaries"
]
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"catalog_url": {
"type": "string",
"minLength": 1
},
"bible_api": {
"type": "string",
"minLength": 1
},
"module_count": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
build-report#
Compilation status and actionable diagnostics for one build. A published snapshot is captured before repository publication; the workflow report is updated with later publication errors. Successfully rebuilt modules and retained previous modules are listed separately.
View full build-report schema
{
"title": "GetBible Build Report v1",
"description": "Compilation status and actionable diagnostics for one build. A published snapshot is captured before repository publication; the workflow report is updated with later publication errors. Successfully rebuilt modules and retained previous modules are listed separately.",
"type": "object",
"required": [
"schema",
"status",
"started_at",
"completed_at",
"requested_resource",
"catalog_url",
"built",
"skipped",
"failed",
"retained",
"errors",
"diagnostics",
"storage",
"commits"
],
"properties": {
"schema": {
"const": "getbible-build-report-v1"
},
"status": {
"enum": [
"running",
"success",
"partial",
"failed"
],
"description": "Running is an in-progress checkpoint. Success means all approved modules built; partial means usable output exists with reported failures. Failed means the run could not complete safely. Publication failures are recorded in the workflow report."
},
"started_at": {
"type": "string",
"format": "date-time"
},
"completed_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"requested_resource": {
"enum": [
"all",
"commentaries",
"dictionaries"
]
},
"catalog_url": {
"type": "string",
"minLength": 1
},
"built": {
"type": "object",
"required": [
"commentaries",
"dictionaries"
],
"properties": {
"commentaries": {
"type": "array",
"items": {
"type": "string"
}
},
"dictionaries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"skipped": {
"type": "array",
"items": {
"$ref": "#/components/schemas/build-report/$defs/moduleIssue"
}
},
"failed": {
"type": "array",
"items": {
"$ref": "#/components/schemas/build-report/$defs/moduleFailure"
}
},
"retained": {
"type": "array",
"description": "Failed modules whose prior verified documents remain in the published tree.",
"items": {
"$ref": "#/components/schemas/build-report/$defs/moduleIssue"
}
},
"errors": {
"type": "array",
"items": {
"type": "object",
"required": [
"stage",
"error_type",
"reason"
],
"properties": {
"stage": {
"type": "string",
"minLength": 1
},
"error_type": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string"
},
"resource": {
"enum": [
"commentaries",
"dictionaries"
]
}
},
"additionalProperties": false
}
},
"diagnostics": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object"
}
}
},
"storage": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"commits": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"null"
]
}
}
},
"$defs": {
"moduleIssue": {
"type": "object",
"required": [
"resource",
"module",
"reason"
],
"properties": {
"resource": {
"enum": [
"commentaries",
"dictionaries"
]
},
"module": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"moduleFailure": {
"type": "object",
"required": [
"resource",
"module",
"reason",
"stage",
"error_type"
],
"properties": {
"resource": {
"enum": [
"commentaries",
"dictionaries"
]
},
"module": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string"
},
"stage": {
"type": "string",
"minLength": 1
},
"error_type": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
hashes#
The SHA-256 of every other document in one v1 tree, keyed by path relative to the tree root; also the complete list of the paths the tree contains.
View full hashes schema
{
"title": "GetBible Hashes v1",
"description": "The SHA-256 of every other document in one v1 tree, keyed by path relative to the tree root; also the complete list of the paths the tree contains.",
"type": "object",
"required": [
"schema",
"algorithm",
"files"
],
"properties": {
"schema": {
"const": "getbible-hashes-v1"
},
"algorithm": {
"const": "sha256"
},
"files": {
"type": "object",
"additionalProperties": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
}
},
"additionalProperties": false
}
Authentication contract#
{
"security": [],
"securitySchemes": {}
}
See access and tokens for public usage and token requests.