{"info":{"_postman_id":"56ff74c9-41a8-43ee-906a-bf5ccce24da6","name":"ScriptureFlow Public API","description":"<html><head></head><body><p>The public preview contract for ScriptureFlow's runtime lookup endpoints and\ngenerated static JSON resources. Discover exact, case-sensitive version keys\nthrough <code>/translations.json</code>; version keys are machine identifiers such as\n<code>en-kjv</code>, not display labels such as <code>kjv</code> or <code>en-KJV</code>.</p>\n<p>The preview currently requires no authentication. Scripture translation\nlicensing and attribution requirements remain applicable to API consumers.</p>\n<p>Contact Support:\n Name: ScriptureFlow</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"1355224","collectionId":"56ff74c9-41a8-43ee-906a-bf5ccce24da6","publishedId":"2sBXwvJoj6","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-06-20T09:19:25.000Z"},"item":[{"name":"status.json","item":[{"name":"Get public build status","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('Response is JSON', function () {","    pm.response.to.be.json;","})","","pm.test('Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('Has required Status fields', function () {","    const json = pm.response.json();","    pm.expect(json).to.have.property('generated_at').that.is.a('string');","    pm.expect(json).to.have.property('total_discovered').that.is.a('number');","    pm.expect(json).to.have.property('total_ready').that.is.a('number');","    pm.expect(json).to.have.property('total_warning').that.is.a('number');","    pm.expect(json).to.have.property('total_failed').that.is.a('number');","    pm.expect(json).to.have.property('split_indexes').that.is.a('number');","    pm.expect(json).to.have.property('split_index_translations').that.is.an('array');","    pm.expect(json).to.have.property('failed').that.is.an('array');","})","","pm.test('generated_at is a valid ISO 8601 date-time', function () {","    const json = pm.response.json();","    pm.expect(new Date(json.generated_at).toString()).to.not.equal('Invalid Date');","})","","pm.test('total_ready is greater than or equal to 0', function () {","    const json = pm.response.json();","    pm.expect(json.total_ready).to.be.at.least(0);","})","","pm.test('[Smoke] Status code is 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('[Smoke] Content-Type is JSON', function () {","    pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');","})","","pm.test('[Smoke] Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('[Smoke] Body has \"status\" field (string)', function () {","    pm.expect(jsonData).to.have.property('status');","    pm.expect(jsonData.status).to.be.a('string');","})","","pm.test('[Smoke] Body has \"last_updated\" field (string, ISO 8601)', function () {","    pm.expect(jsonData).to.have.property('last_updated');","    pm.expect(jsonData.last_updated).to.be.a('string');","    pm.expect(jsonData.last_updated).to.match(/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/);","})","","pm.test('[Smoke] Body has \"total_ready\" field (number >= 0)', function () {","    pm.expect(jsonData).to.have.property('total_ready');","    pm.expect(jsonData.total_ready).to.be.a('number');","    pm.expect(jsonData.total_ready).to.be.at.least(0);","})"]}}],"id":"3cbd5479-0f39-4e52-9d8d-411d2920807d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/status.json","urlObject":{"path":["status.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[]}},"response":[{"id":"0641a5a1-242f-459f-962f-c68fe1535080","name":"Current generated API build status.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/status.json"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"generated_at\": \"1983-04-01T09:03:16.102Z\",\n  \"total_discovered\": 8356,\n  \"total_ready\": 7184,\n  \"total_warning\": 3525,\n  \"total_failed\": 6101,\n  \"split_indexes\": 816,\n  \"split_index_translations\": [\n    {\n      \"version\": \"string\",\n      \"part_count\": 123,\n      \"largest_part_bytes\": 2561\n    },\n    {\n      \"version\": \"string\",\n      \"part_count\": 4118,\n      \"largest_part_bytes\": 1256\n    }\n  ],\n  \"failed\": [\n    {\n      \"version\": \"string\",\n      \"failures\": [\n        \"string\",\n        \"string\"\n      ]\n    },\n    {\n      \"version\": \"string\",\n      \"failures\": [\n        \"string\",\n        \"string\"\n      ]\n    }\n  ]\n}"},{"id":"316df50f-fc8d-430f-b5ec-d49f50a5e4d7","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":"https://scriptureflow-api-preview.pages.dev/status.json"},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"3cbd5479-0f39-4e52-9d8d-411d2920807d"}],"id":"a19dadad-af3f-4e3d-99b8-485a80075d6e","_postman_id":"a19dadad-af3f-4e3d-99b8-485a80075d6e","description":""},{"name":"translations.json","item":[{"name":"List published translation version keys","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('Response is JSON', function () {","    pm.response.to.be.json;","})","","pm.test('Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('Response is a non-empty array', function () {","    const json = pm.response.json();","    pm.expect(json).to.be.an('array').that.is.not.empty;","})","","pm.test('Each translation has required fields', function () {","    const json = pm.response.json();","    json.forEach(function (item) {","        pm.expect(item).to.have.property('version').that.is.a('string');","        pm.expect(item).to.have.property('language_code').that.is.a('string');","        pm.expect(item).to.have.property('translation_name').that.is.a('string');","        pm.expect(item).to.have.property('status').that.is.a('string');","        pm.expect(item).to.have.property('books_found').that.is.a('number');","        pm.expect(item).to.have.property('chapters_found').that.is.a('number');","        pm.expect(item).to.have.property('verses_found').that.is.a('number');","    });","})","","pm.test('Version keys match expected pattern (e.g. en-kjv)', function () {","    const json = pm.response.json();","    json.forEach(function (item) {","        pm.expect(item.version).to.match(/^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)+$/);","    });","})","","pm.test('Store first version key as environment variable', function () {","    const json = pm.response.json();","    if (json.length > 0) {","        pm.environment.set('version', json[0].version);","    }","})","","pm.test('[Smoke] Status code is 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('[Smoke] Content-Type is JSON', function () {","    pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');","})","","pm.test('[Smoke] Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('[Smoke] Body is a non-empty array', function () {","    pm.expect(jsonData).to.be.an('array').that.is.not.empty;","})","","pm.test('[Smoke] Each item is a string', function () {","    jsonData.forEach(function (item) {","        pm.expect(item).to.be.a('string');","    });","})","","pm.test('[Smoke] Each item matches version key pattern (e.g. en-kjv)', function () {","    jsonData.forEach(function (item) {","        pm.expect(item).to.match(/^[a-z]{2}-[a-z]+$/i);","    });","})"]}}],"id":"94d016a8-d5ca-4d1f-9325-b0e3feb20953","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/translations.json","description":"<p>Use the exact <code>version</code> value returned here in all translation-scoped requests.</p>\n","urlObject":{"path":["translations.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[]}},"response":[{"id":"ec94c759-4a33-48a1-946d-2e184215bbe1","name":"Published translations available to API clients.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/translations.json"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"version\": \"en-kjv\",\n    \"language_code\": \"eng\",\n    \"translation_name\": \"King James Version\",\n    \"status\": \"ready\",\n    \"books_found\": 80,\n    \"chapters_found\": 1362,\n    \"verses_found\": 36820,\n    \"verses_index_type\": \"split-index\"\n  }\n]"},{"id":"8f5f7426-0e30-4fab-a196-6ff09e63f678","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":"https://scriptureflow-api-preview.pages.dev/translations.json"},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"94d016a8-d5ca-4d1f-9325-b0e3feb20953"}],"id":"1b6f92a8-b486-4572-a391-28499668eee3","_postman_id":"1b6f92a8-b486-4572-a391-28499668eee3","description":""},{"name":"public-catalog.json","item":[{"name":"Get the public translation catalog","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const jsonData = pm.response.json();","","pm.test(\"[Smoke] Status is 200\", () => {","    pm.response.to.have.status(200);","});","","pm.test(\"[Smoke] Response is JSON\", () => {","    pm.response.to.be.json;","});","","pm.test(\"[Smoke] Response time is under 3000ms\", () => {","    pm.expect(pm.response.responseTime).to.be.below(3000);","});","","pm.test(\"[Smoke] generated_at is a valid ISO 8601 date string\", () => {","    pm.expect(jsonData.generated_at).to.be.a(\"string\");","    pm.expect(new Date(jsonData.generated_at).toISOString()).to.equal(jsonData.generated_at);","});","","pm.test(\"[Smoke] total_discovered is a non-negative number\", () => {","    pm.expect(jsonData.total_discovered).to.be.a(\"number\");","    pm.expect(jsonData.total_discovered).to.be.at.least(0);","});","","pm.test(\"[Smoke] total_ready is a non-negative number\", () => {","    pm.expect(jsonData.total_ready).to.be.a(\"number\");","    pm.expect(jsonData.total_ready).to.be.at.least(0);","});","","pm.test(\"[Smoke] total_warning is a non-negative number\", () => {","    pm.expect(jsonData.total_warning).to.be.a(\"number\");","    pm.expect(jsonData.total_warning).to.be.at.least(0);","});","","pm.test(\"[Smoke] total_failed is a non-negative number\", () => {","    pm.expect(jsonData.total_failed).to.be.a(\"number\");","    pm.expect(jsonData.total_failed).to.be.at.least(0);","});","","pm.test(\"[Smoke] translations is an array\", () => {","    pm.expect(jsonData.translations).to.be.an(\"array\");","});","","pm.test(\"[Smoke] translations.length equals total_ready + total_warning\", () => {","    pm.expect(jsonData.translations.length).to.equal(jsonData.total_ready + jsonData.total_warning);","});","","pm.test(\"[Smoke] each translation item has required fields with correct types\", () => {","    jsonData.translations.forEach((t, i) => {","        pm.expect(t.version, `translations[${i}].version`).to.be.a(\"string\").and.not.empty;","        pm.expect(t.language_code, `translations[${i}].language_code`).to.be.a(\"string\").and.not.empty;","        pm.expect(t.translation_name, `translations[${i}].translation_name`).to.be.a(\"string\").and.not.empty;","        pm.expect(t.status, `translations[${i}].status`).to.be.a(\"string\").and.not.empty;","        pm.expect(t.books_found, `translations[${i}].books_found`).to.be.a(\"number\").and.at.least(0);","        pm.expect(t.chapters_found, `translations[${i}].chapters_found`).to.be.a(\"number\").and.at.least(0);","        pm.expect(t.verses_found, `translations[${i}].verses_found`).to.be.a(\"number\").and.at.least(0);","        pm.expect(t.verses_index_type, `translations[${i}].verses_index_type`).to.be.a(\"string\").and.not.empty;","    });","});"]}}],"id":"0e906c5e-5fd7-4229-b893-42f3b519cf8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/public-catalog.json","urlObject":{"path":["public-catalog.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[]}},"response":[{"id":"f0f69f16-1c78-4574-b653-8b0ebf8ddd86","name":"Catalog summary and published translations.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/public-catalog.json"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"generated_at\": \"1959-06-13T09:21:57.720Z\",\n  \"total_discovered\": 4811,\n  \"total_ready\": 9581,\n  \"total_warning\": 6411,\n  \"total_failed\": 5671,\n  \"translations\": [\n    {\n      \"version\": \"string\",\n      \"language_code\": \"string\",\n      \"translation_name\": \"string\",\n      \"language_name\": \"string\",\n      \"translation_abbreviation\": \"string\",\n      \"direction\": \"ttb\",\n      \"books_available\": [\n        \"string\",\n        \"string\"\n      ],\n      \"total_books\": 8083,\n      \"total_chapters\": 6636,\n      \"total_verses\": 5025,\n      \"status\": \"ready\",\n      \"books_found\": 2321,\n      \"chapters_found\": 7917,\n      \"verses_found\": 4461,\n      \"verses_index_type\": \"single-file\",\n      \"source\": {\n        \"source_path\": \"string\",\n        \"metadata_path\": \"string\",\n        \"source_type\": \"string\",\n        \"source_version\": \"string\"\n      },\n      \"license\": \"string\",\n      \"copyright\": \"string\",\n      \"metadata\": {\n        \"key_0\": 9863.98078291287,\n        \"key_1\": \"string\",\n        \"key_2\": \"string\"\n      }\n    },\n    {\n      \"version\": \"string\",\n      \"language_code\": \"string\",\n      \"translation_name\": \"string\",\n      \"language_name\": \"string\",\n      \"translation_abbreviation\": \"string\",\n      \"direction\": \"btt\",\n      \"books_available\": [\n        \"string\",\n        \"string\"\n      ],\n      \"total_books\": 9418,\n      \"total_chapters\": 9441,\n      \"total_verses\": 3472,\n      \"status\": \"ready\",\n      \"books_found\": 9949,\n      \"chapters_found\": 5846,\n      \"verses_found\": 516,\n      \"verses_index_type\": \"single-file\",\n      \"source\": {\n        \"source_path\": \"string\",\n        \"metadata_path\": \"string\",\n        \"source_type\": \"string\",\n        \"source_version\": \"string\"\n      },\n      \"license\": \"string\",\n      \"copyright\": \"string\",\n      \"metadata\": {\n        \"key_0\": true\n      }\n    }\n  ]\n}"},{"id":"c7bfc217-a74b-4657-ab4f-bae22d0c0ca5","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":"https://scriptureflow-api-preview.pages.dev/public-catalog.json"},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"0e906c5e-5fd7-4229-b893-42f3b519cf8b"}],"id":"c90cd453-8e57-4bd4-8a68-f2327872359e","_postman_id":"c90cd453-8e57-4bd4-8a68-f2327872359e","description":""},{"name":"canonical-books.json","item":[{"name":"List canonical books and accepted aliases","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('Response is JSON', function () {","    pm.response.to.be.json;","})","","pm.test('Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('Response is a non-empty array', function () {","    const json = pm.response.json();","    pm.expect(json).to.be.an('array').that.is.not.empty;","})","","pm.test('Each canonical book has required fields', function () {","    const json = pm.response.json();","    json.forEach(function (book) {","        pm.expect(book).to.have.property('slug').that.is.a('string');","        pm.expect(book).to.have.property('name').that.is.a('string');","        pm.expect(book).to.have.property('aliases').that.is.an('array');","    });","})","","pm.test('Bible has 66 or more canonical books', function () {","    const json = pm.response.json();","    pm.expect(json.length).to.be.at.least(66);","})","","pm.test('[Smoke] Status code is 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('[Smoke] Content-Type is JSON', function () {","    pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');","})","","pm.test('[Smoke] Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('[Smoke] Body is a non-empty array', function () {","    pm.expect(jsonData).to.be.an('array').that.is.not.empty;","})","","pm.test('[Smoke] Each item has id (string), name (string), aliases (array)', function () {","    jsonData.forEach(function (item) {","        pm.expect(item).to.have.property('id').that.is.a('string');","        pm.expect(item).to.have.property('name').that.is.a('string');","        pm.expect(item).to.have.property('aliases').that.is.an('array');","    });","})"]}}],"id":"ac0f0169-78e2-409e-88e8-b95759c5df45","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/canonical-books.json","urlObject":{"path":["canonical-books.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[]}},"response":[{"id":"60862503-270b-42e0-a506-f6519a4a4f71","name":"Canonical book map used to normalize lookup aliases.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/canonical-books.json"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"canonical_book\": \"string\",\n    \"osis_id\": \"string\",\n    \"usfm_id\": \"string\",\n    \"order\": 8143,\n    \"english_name\": \"string\",\n    \"aliases\": [\n      \"string\",\n      \"string\"\n    ],\n    \"localized_aliases\": {\n      \"key_0\": [\n        \"string\",\n        \"string\"\n      ],\n      \"key_1\": [\n        \"string\",\n        \"string\"\n      ]\n    }\n  },\n  {\n    \"canonical_book\": \"string\",\n    \"osis_id\": \"string\",\n    \"usfm_id\": \"string\",\n    \"order\": 2794,\n    \"english_name\": \"string\",\n    \"aliases\": [\n      \"string\",\n      \"string\"\n    ],\n    \"localized_aliases\": {\n      \"key_0\": [\n        \"string\",\n        \"string\"\n      ]\n    }\n  }\n]"},{"id":"6e7c8dbc-8231-4ac2-bbf4-7eada636658d","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":"https://scriptureflow-api-preview.pages.dev/canonical-books.json"},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"ac0f0169-78e2-409e-88e8-b95759c5df45"}],"id":"9b4ab50a-04c4-4061-b6a9-97e242f6ad8a","_postman_id":"9b4ab50a-04c4-4061-b6a9-97e242f6ad8a","description":""},{"name":"{version}","item":[{"name":"translation.json","item":[{"name":"Get translation metadata","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const jsonData = pm.response.json();","const usedVersion = pm.request.url.variables.get(\"version\") || pm.environment.get(\"version\");","const fullBibleVersion = pm.environment.get(\"fullBibleVersion\");","","pm.test(\"[Smoke] Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"[Smoke] Content-Type is JSON\", function () {","    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");","});","","pm.test(\"[Smoke] Response time is under 3000ms\", function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","});","","pm.test(\"[Smoke] Body has version (string)\", function () {","    pm.expect(jsonData).to.have.property(\"version\").that.is.a(\"string\").and.not.empty;","});","","pm.test(\"[Smoke] Body has language_code (string)\", function () {","    pm.expect(jsonData).to.have.property(\"language_code\").that.is.a(\"string\").and.not.empty;","});","","pm.test(\"[Smoke] Body has translation_name (string)\", function () {","    pm.expect(jsonData).to.have.property(\"translation_name\").that.is.a(\"string\").and.not.empty;","});","","pm.test(\"[Smoke] Body has status (string)\", function () {","    pm.expect(jsonData).to.have.property(\"status\").that.is.a(\"string\").and.not.empty;","});","","pm.test(\"[Smoke] Body has books_found (number >= 1)\", function () {","    pm.expect(jsonData).to.have.property(\"books_found\").that.is.a(\"number\");","    pm.expect(jsonData.books_found).to.be.at.least(1);","});","","pm.test(\"[Smoke] Body has chapters_found (number >= 1)\", function () {","    pm.expect(jsonData).to.have.property(\"chapters_found\").that.is.a(\"number\");","    pm.expect(jsonData.chapters_found).to.be.at.least(1);","});","","pm.test(\"[Smoke] Body has verses_found (number >= 1)\", function () {","    pm.expect(jsonData).to.have.property(\"verses_found\").that.is.a(\"number\");","    pm.expect(jsonData.verses_found).to.be.at.least(1);","});","","if (usedVersion === fullBibleVersion) {","    pm.test(\"[Regression] Full Bible has exactly 66 books_found\", function () {","        pm.expect(jsonData.books_found).to.equal(66);","    });","}"]}}],"id":"c4ea3760-64df-4f1d-a799-61dae2f16fa5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/:version/translation.json","urlObject":{"path":[":version","translation.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[{"description":{"content":"<p>Exact, case-sensitive machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"type":"any","value":"en-kjv","key":"version"}]}},"response":[{"id":"3bd0b3d6-83f7-4c59-963d-8147cb9fcc15","name":"Translation-level metadata and availability totals.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/translation.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","translation.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"version\": \"string\",\n  \"language_code\": \"string\",\n  \"translation_name\": \"string\",\n  \"language_name\": \"string\",\n  \"translation_abbreviation\": \"string\",\n  \"direction\": \"btt\",\n  \"books_available\": [\n    \"string\",\n    \"string\"\n  ],\n  \"total_books\": 8909,\n  \"total_chapters\": 3977,\n  \"total_verses\": 5528,\n  \"status\": \"warning\",\n  \"books_found\": 8277,\n  \"chapters_found\": 4431,\n  \"verses_found\": 6732,\n  \"verses_index_type\": \"single-file\",\n  \"source\": {\n    \"source_path\": \"string\",\n    \"metadata_path\": \"string\",\n    \"source_type\": \"string\",\n    \"source_version\": \"string\"\n  },\n  \"license\": \"string\",\n  \"copyright\": \"string\",\n  \"metadata\": {\n    \"key_0\": 7306,\n    \"key_1\": 7388\n  }\n}"},{"id":"75daf55d-f778-4245-9e87-4f641a9bbe74","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/translation.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","translation.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"c4ea3760-64df-4f1d-a799-61dae2f16fa5"}],"id":"c79492d2-96e4-42c2-b90e-f214c8806835","_postman_id":"c79492d2-96e4-42c2-b90e-f214c8806835","description":""},{"name":"books.json","item":[{"name":"List books available in a translation","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const jsonData = pm.response.json();","const usedVersion = pm.request.url.variables.get(\"version\") || pm.environment.get(\"version\");","const fullBibleVersion = pm.environment.get(\"fullBibleVersion\");","","pm.test(\"[Smoke] Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"[Smoke] Content-Type is JSON\", function () {","    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");","});","","pm.test(\"[Smoke] Response time is under 3000ms\", function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","});","","pm.test(\"[Smoke] Body is a non-empty array\", function () {","    pm.expect(jsonData).to.be.an(\"array\").that.is.not.empty;","});","","pm.test(\"[Smoke] Each item has slug (string), name (string), chapters (number >= 1)\", function () {","    jsonData.forEach(function (item, i) {","        pm.expect(item, \"item \" + i + \" slug\").to.have.property(\"slug\").that.is.a(\"string\").and.not.empty;","        pm.expect(item, \"item \" + i + \" name\").to.have.property(\"name\").that.is.a(\"string\").and.not.empty;","        pm.expect(item, \"item \" + i + \" chapters\").to.have.property(\"chapters\").that.is.a(\"number\");","        pm.expect(item.chapters, \"item \" + i + \" chapters >= 1\").to.be.at.least(1);","    });","});","","if (usedVersion === fullBibleVersion) {","    pm.test(\"[Regression] Full Bible has exactly 66 books\", function () {","        pm.expect(jsonData.length).to.equal(66);","    });","}"]}}],"id":"37982c23-e7bd-4afd-8a89-ae95c88ea818","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/:version/books.json","urlObject":{"path":[":version","books.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[{"description":{"content":"<p>Exact, case-sensitive machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"type":"any","value":"en-kjv","key":"version"}]}},"response":[{"id":"f5893017-5468-4ef8-bb4b-ac5806d17d25","name":"Translation-scoped book index.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/books.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","books.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"string\",\n    \"version\": \"string\",\n    \"book\": \"string\",\n    \"book_slug\": \"string\",\n    \"chapter_count\": 8170,\n    \"verse_count\": 1452,\n    \"source_path\": \"string\",\n    \"api_path\": \"string\",\n    \"language_code\": \"string\",\n    \"canonical_book\": \"string\",\n    \"book_number\": 9714,\n    \"testament\": \"other\",\n    \"metadata\": {\n      \"key_0\": false\n    }\n  },\n  {\n    \"id\": \"string\",\n    \"version\": \"string\",\n    \"book\": \"string\",\n    \"book_slug\": \"string\",\n    \"chapter_count\": 7477,\n    \"verse_count\": 5926,\n    \"source_path\": \"string\",\n    \"api_path\": \"s\",\n    \"language_code\": \"string\",\n    \"canonical_book\": \"string\",\n    \"book_number\": null,\n    \"testament\": \"old\",\n    \"metadata\": {\n      \"key_0\": \"string\",\n      \"key_1\": \"string\"\n    }\n  }\n]"},{"id":"0f6e8566-3dac-4a0a-84d3-00021019c987","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/books.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","books.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"37982c23-e7bd-4afd-8a89-ae95c88ea818"}],"id":"85965f98-8279-42ab-8d4c-410a43841fc2","_postman_id":"85965f98-8279-42ab-8d4c-410a43841fc2","description":""},{"name":"chapters.json","item":[{"name":"List chapters available in a translation","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const jsonData = pm.response.json();","const usedVersion = pm.request.url.variables.get(\"version\") || pm.environment.get(\"version\");","const fullBibleVersion = pm.environment.get(\"fullBibleVersion\");","","pm.test(\"[Smoke] Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"[Smoke] Content-Type is JSON\", function () {","    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");","});","","pm.test(\"[Smoke] Response time is under 3000ms\", function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","});","","pm.test(\"[Smoke] Body is a non-empty array\", function () {","    pm.expect(jsonData).to.be.an(\"array\").that.is.not.empty;","});","","pm.test(\"[Smoke] Each item has book (string), chapter (number >= 1), verses (number >= 1)\", function () {","    jsonData.forEach(function (item, i) {","        pm.expect(item, \"item \" + i + \" book\").to.have.property(\"book\").that.is.a(\"string\").and.not.empty;","        pm.expect(item, \"item \" + i + \" chapter\").to.have.property(\"chapter\").that.is.a(\"number\");","        pm.expect(item.chapter, \"item \" + i + \" chapter >= 1\").to.be.at.least(1);","        pm.expect(item, \"item \" + i + \" verses\").to.have.property(\"verses\").that.is.a(\"number\");","        pm.expect(item.verses, \"item \" + i + \" verses >= 1\").to.be.at.least(1);","    });","});","","if (usedVersion === fullBibleVersion) {","    pm.test(\"[Regression] Full Bible has at least 1189 chapters\", function () {","        pm.expect(jsonData.length).to.be.at.least(1189);","    });","}"]}}],"id":"61fd78b4-d2b5-4be1-916c-9aebccc929ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/:version/chapters.json","urlObject":{"path":[":version","chapters.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[{"description":{"content":"<p>Exact, case-sensitive machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"type":"any","value":"en-kjv","key":"version"}]}},"response":[{"id":"9f143af4-05e2-4225-8def-84b38639bf21","name":"Translation-scoped chapter index.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/chapters.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","chapters.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": \"string\",\n    \"version\": \"string\",\n    \"book\": \"string\",\n    \"book_slug\": \"string\",\n    \"chapter\": 2681,\n    \"reference\": \"string\",\n    \"source_path\": \"string\",\n    \"api_path\": \"string\",\n    \"verse_count\": 4722,\n    \"language_code\": \"string\",\n    \"canonical_book\": null,\n    \"verses\": [\n      {\n        \"verse\": 7723,\n        \"text\": \"string\"\n      },\n      {\n        \"verse\": 6150,\n        \"text\": \"string\"\n      }\n    ],\n    \"metadata\": {\n      \"key_0\": 5042.913614248634,\n      \"key_1\": true\n    }\n  },\n  {\n    \"id\": \"string\",\n    \"version\": \"string\",\n    \"book\": \"string\",\n    \"book_slug\": \"string\",\n    \"chapter\": 1523,\n    \"reference\": \"string\",\n    \"source_path\": \"string\",\n    \"api_path\": \"string\",\n    \"verse_count\": 8163,\n    \"language_code\": \"string\",\n    \"canonical_book\": \"string\",\n    \"verses\": [\n      {\n        \"verse\": \"string\",\n        \"text\": \"string\"\n      },\n      {\n        \"verse\": 870,\n        \"text\": \"string\"\n      }\n    ],\n    \"metadata\": {\n      \"key_0\": \"string\",\n      \"key_1\": 1927.113756825134\n    }\n  }\n]"},{"id":"747b7c84-ea3d-45eb-adc6-b42f2c0bbf7d","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/chapters.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","chapters.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"61fd78b4-d2b5-4be1-916c-9aebccc929ff"}],"id":"b0782b67-e6d2-496b-bbae-3600d96d9680","_postman_id":"b0782b67-e6d2-496b-bbae-3600d96d9680","description":""},{"name":"verses-index.json","item":[{"name":"Get the translation verse index","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const jsonData = pm.response.json();","const usedVersion = pm.request.url.variables.get(\"version\") || pm.environment.get(\"version\");","const fullBibleVersion = pm.environment.get(\"fullBibleVersion\");","","const isArray = Array.isArray(jsonData);","const isSplitManifest = !isArray &&","    typeof jsonData === \"object\" &&","    jsonData !== null &&","    typeof jsonData.type === \"string\" &&","    typeof jsonData.part_count === \"number\" &&","    Array.isArray(jsonData.parts);","","pm.test(\"[Smoke] Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"[Smoke] Content-Type is JSON\", function () {","    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");","});","","pm.test(\"[Smoke] Response time is under 5000ms\", function () {","    pm.expect(pm.response.responseTime).to.be.below(5000);","});","","pm.test(\"[Smoke] Body is a non-empty array or a valid split-index manifest\", function () {","    pm.expect(isArray || isSplitManifest, \"expected array or split-index manifest\").to.be.true;","    if (isArray) {","        pm.expect(jsonData.length).to.be.at.least(1);","    } else {","        pm.expect(jsonData.parts.length).to.be.at.least(1);","    }","});","","pm.test(\"[Smoke] If split-index manifest, has type (string), part_count (number >= 1), parts (non-empty array)\", function () {","    if (isSplitManifest) {","        pm.expect(jsonData.type).to.be.a(\"string\").and.not.empty;","        pm.expect(jsonData.part_count).to.be.a(\"number\").and.at.least(1);","        pm.expect(jsonData.parts).to.be.an(\"array\").that.is.not.empty;","    }","});","","pm.test(\"[Smoke] If verse array, first entry has book (string), chapter (number), verse (number)\", function () {","    if (isArray && jsonData.length > 0) {","        const first = jsonData[0];","        pm.expect(first).to.have.property(\"book\").that.is.a(\"string\").and.not.empty;","        pm.expect(first).to.have.property(\"chapter\").that.is.a(\"number\");","        pm.expect(first).to.have.property(\"verse\").that.is.a(\"number\");","    }","});","","if (usedVersion === fullBibleVersion) {","    pm.test(\"[Regression] Full Bible verse array has at least 31000 entries\", function () {","        if (isArray) {","            pm.expect(jsonData.length).to.be.at.least(31000);","        } else {","            // split-index: assert part_count covers a full Bible","            pm.expect(jsonData.part_count).to.be.at.least(1);","        }","    });","}"]}}],"id":"edbc3d92-4ef6-45e5-b07d-f6da6a8adcf6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/:version/verses-index.json","description":"<p>Small indexes are returned as a JSON array. Large indexes are returned as\na split-index manifest whose <code>parts</code> point to generated part files. Most\nclients should use the runtime lookup endpoints instead of loading an\nentire index.</p>\n","urlObject":{"path":[":version","verses-index.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[{"description":{"content":"<p>Exact, case-sensitive machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"type":"any","value":"en-kjv","key":"version"}]}},"response":[{"id":"b5d96a30-b190-4e3e-a355-dc31334bae0e","name":"A single verse array or split-index manifest.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/verses-index.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","verses-index.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"version\": \"string\",\n    \"book\": \"string\",\n    \"chapter\": 5329,\n    \"verse\": 3999,\n    \"reference\": \"string\",\n    \"text\": \"string\",\n    \"id\": \"string\",\n    \"language_code\": \"string\",\n    \"language_name\": \"string\",\n    \"translation_name\": \"string\",\n    \"translation_abbreviation\": \"string\",\n    \"book_slug\": \"string\",\n    \"canonical_book\": null,\n    \"book_number\": 6009,\n    \"testament\": \"deuterocanon\",\n    \"source_path\": \"string\",\n    \"api_path\": \"string\",\n    \"canonical_order\": 3267,\n    \"metadata\": {\n      \"key_0\": 1707.3748407752487,\n      \"key_1\": 9601,\n      \"key_2\": 5897\n    }\n  },\n  {\n    \"version\": \"string\",\n    \"book\": \"string\",\n    \"chapter\": 7421,\n    \"verse\": 8087,\n    \"reference\": \"s\",\n    \"text\": \"string\",\n    \"id\": \"string\",\n    \"language_code\": \"string\",\n    \"language_name\": \"string\",\n    \"translation_name\": \"string\",\n    \"translation_abbreviation\": \"string\",\n    \"book_slug\": \"string\",\n    \"canonical_book\": \"string\",\n    \"book_number\": 3567,\n    \"testament\": \"old\",\n    \"source_path\": \"string\",\n    \"api_path\": \"string\",\n    \"canonical_order\": null,\n    \"metadata\": {\n      \"key_0\": \"string\",\n      \"key_1\": true\n    }\n  }\n]"},{"id":"55a7a722-8ab3-4ab3-9f97-a79f3444a3f9","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/verses-index.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","verses-index.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"edbc3d92-4ef6-45e5-b07d-f6da6a8adcf6"}],"id":"c5e25c70-0615-4222-8d07-a6e6116f8b93","_postman_id":"c5e25c70-0615-4222-8d07-a6e6116f8b93","description":""},{"name":"random.json","item":[{"name":"Get the generated Verse of the Day","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const jsonData = pm.response.json();","const usedVersion = pm.request.url.variables.get(\"version\") || pm.environment.get(\"version\");","const fullBibleVersion = pm.environment.get(\"fullBibleVersion\");","","pm.test(\"[Smoke] Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"[Smoke] Content-Type is JSON\", function () {","    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");","});","","pm.test(\"[Smoke] Response time is under 3000ms\", function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","});","","pm.test(\"[Smoke] Body has version (string)\", function () {","    pm.expect(jsonData).to.have.property(\"version\").that.is.a(\"string\").and.not.empty;","});","","pm.test(\"[Smoke] Body has book (string)\", function () {","    pm.expect(jsonData).to.have.property(\"book\").that.is.a(\"string\").and.not.empty;","});","","pm.test(\"[Smoke] Body has chapter (number >= 1)\", function () {","    pm.expect(jsonData).to.have.property(\"chapter\").that.is.a(\"number\");","    pm.expect(jsonData.chapter).to.be.at.least(1);","});","","pm.test(\"[Smoke] Body has verse (number >= 1)\", function () {","    pm.expect(jsonData).to.have.property(\"verse\").that.is.a(\"number\");","    pm.expect(jsonData.verse).to.be.at.least(1);","});","","pm.test(\"[Smoke] Body has text (non-empty string)\", function () {","    pm.expect(jsonData).to.have.property(\"text\").that.is.a(\"string\");","    pm.expect(jsonData.text.trim().length).to.be.at.least(1);","});","","if (usedVersion === fullBibleVersion) {","    pm.test(\"[Regression] version field matches fullBibleVersion\", function () {","        pm.expect(jsonData.version).to.equal(fullBibleVersion);","    });","}"]}}],"id":"9c324fa8-03b3-4056-aa72-f200191081f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/:version/random.json","description":"<p>Returns a stable generated verse for the translation. This is not a live\nrandom endpoint. Use <code>/api/quick-verse</code> when refreshing should select a\nnew runtime-random verse.</p>\n","urlObject":{"path":[":version","random.json"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[],"variable":[{"description":{"content":"<p>Exact, case-sensitive machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"type":"any","value":"en-kjv","key":"version"}]}},"response":[{"id":"4fc3c387-6e9d-4f65-b228-0b76e004a68a","name":"Stable generated Verse of the Day.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/random.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","random.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"version\": \"string\",\n  \"reference\": \"string\",\n  \"book\": \"string\",\n  \"chapter\": 3999,\n  \"verse\": 8069,\n  \"text\": \"string\",\n  \"source_path\": \"string\",\n  \"api_path\": \"string\"\n}"},{"id":"d95cf3fa-aac1-420b-87c7-50588228ca80","name":"The generated resource or version was not found. Static-host responses may not use the runtime `ErrorResponse` envelope.","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/:version/random.json","host":["https://scriptureflow-api-preview.pages.dev"],"path":[":version","random.json"],"variable":[{"key":"version","value":"en-kjv","description":"Exact, case-sensitive machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"9c324fa8-03b3-4056-aa72-f200191081f9"}],"id":"aad3fa37-2dfa-4ad5-9ab0-c1a0f168c29a","_postman_id":"aad3fa37-2dfa-4ad5-9ab0-c1a0f168c29a","description":""}],"id":"e4c66984-72fe-4691-bb62-b5e6e3b82a43","_postman_id":"e4c66984-72fe-4691-bb62-b5e6e3b82a43","description":""},{"name":"api","item":[{"name":"verse","item":[{"name":"Look up a verse or same-chapter passage","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Response is JSON', function () {","    pm.response.to.be.json;","})","","pm.test('Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('Response has ok field (boolean)', function () {","    const json = pm.response.json();","    pm.expect(json).to.have.property('ok').that.is.a('boolean');","})","","pm.test('Response has type field (string)', function () {","    const json = pm.response.json();","    pm.expect(json).to.have.property('type').that.is.a('string');","})","","pm.test('On 200: verse_lookup has required fields', function () {","    if (pm.response.code === 200) {","        const json = pm.response.json();","        pm.expect(json.ok).to.be.true;","        pm.expect(json.type).to.be.oneOf([","            'verse_lookup',","            'passage_lookup'","        ]);","        pm.expect(json).to.have.property('version').that.is.a('string');","        pm.expect(json).to.have.property('reference').that.is.a('string');","        pm.expect(json).to.have.property('text').that.is.a('string');","        pm.expect(json).to.have.property('served_at_utc').that.is.a('string');","        pm.expect(json).to.have.property('result');","        pm.expect(json).to.have.property('behavior').that.is.an('object');","        pm.expect(json).to.have.property('source').that.is.an('object');","    }","})","","pm.test('On error: error response has ok=false, error_code, and error message', function () {","    if (pm.response.code !== 200) {","        const json = pm.response.json();","        pm.expect(json.ok).to.be.false;","        pm.expect(json).to.have.property('error_code').that.is.a('string');","        pm.expect(json).to.have.property('error').that.is.a('string');","    }","})","","pm.test('On 200 verse_lookup: result has id, book, chapter, verse, text', function () {","    if (pm.response.code === 200) {","        const json = pm.response.json();","        if (json.type === 'verse_lookup') {","            const r = json.result;","            pm.expect(r).to.have.property('id').that.is.a('string');","            pm.expect(r).to.have.property('book').that.is.a('string');","            pm.expect(r).to.have.property('chapter').that.is.a('number');","            pm.expect(r).to.have.property('verse').that.is.a('number');","            pm.expect(r).to.have.property('text').that.is.a('string');","        }","    }","})","","pm.test('On 200 passage_lookup: verses is a non-empty array', function () {","    if (pm.response.code === 200) {","        const json = pm.response.json();","        if (json.type === 'passage_lookup') {","            pm.expect(json).to.have.property('verses').that.is.an('array').and.is.not.empty;","        }","    }","})","","pm.test('[Smoke] Status code is 200 or a valid 4xx error', function () {","    pm.expect(statusCode).to.be.oneOf([","        200,","        400,","        404,","        422","    ]);","})","","pm.test('[Smoke] Content-Type is JSON', function () {","    pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');","})","","pm.test('[Smoke] Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})"]}}],"id":"e9688c7d-80b5-459d-aa55-4f220e8b5cc7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=John 3:16&book=John&chapter=3&verse=16&start_verse=100&end_verse=100","description":"<p>Supply <code>version</code> plus either a free-text <code>reference</code>, or structured\n<code>book</code>, <code>chapter</code>, and <code>verse</code>/<code>start_verse</code> fields. A non-empty\n<code>reference</code> takes priority over structured lookup fields. <code>start_verse</code>\nis an alias for <code>verse</code> and takes priority over it when both are present.\n<code>end_verse</code> creates an inclusive, same-chapter range. Cross-chapter ranges\nare not supported.</p>\n","urlObject":{"path":["api","verse"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[{"description":{"content":"<p>Exact machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"key":"version","value":"en-kjv"},{"description":{"content":"<p>Free-text reference such as <code>John 3:16</code> or <code>Amos 8:4-6</code>; takes priority when present.</p>\n","type":"text/plain"},"key":"reference","value":"John 3:16"},{"description":{"content":"<p>Book name, slug, or supported alias for structured lookup.</p>\n","type":"text/plain"},"key":"book","value":"John"},{"description":{"content":"<p>Chapter number for structured lookup.</p>\n","type":"text/plain"},"key":"chapter","value":"3"},{"description":{"content":"<p>Starting verse for structured lookup. Used unless <code>start_verse</code> is present.</p>\n","type":"text/plain"},"key":"verse","value":"16"},{"description":{"content":"<p>Alias for <code>verse</code>; takes priority over <code>verse</code> when both are supplied.</p>\n","type":"text/plain"},"key":"start_verse","value":"100"},{"description":{"content":"<p>Inclusive end of a same-chapter range, at most 50 verses including the start.</p>\n","type":"text/plain"},"key":"end_verse","value":"100"}],"variable":[]}},"response":[{"id":"979ec65b-7607-4a44-af9c-6b478b874b35","name":"A single verse or inclusive same-chapter passage.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=John 3:16&book=John&chapter=3&verse=16&start_verse=100&end_verse=100","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"},{"description":"Free-text reference such as `John 3:16` or `Amos 8:4-6`; takes priority when present.","key":"reference","value":"John 3:16"},{"description":"Book name, slug, or supported alias for structured lookup.","key":"book","value":"John"},{"description":"Chapter number for structured lookup.","key":"chapter","value":"3"},{"description":"Starting verse for structured lookup. Used unless `start_verse` is present.","key":"verse","value":"16"},{"description":"Alias for `verse`; takes priority over `verse` when both are supplied.","key":"start_verse","value":"100"},{"description":"Inclusive end of a same-chapter range, at most 50 verses including the start.","key":"end_verse","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": true,\n  \"type\": \"verse_lookup\",\n  \"version\": \"en-kjv\",\n  \"reference\": \"John 3:16\",\n  \"book\": \"john\",\n  \"chapter\": 3,\n  \"verse\": 16,\n  \"text\": \"For God so loved the world...\",\n  \"served_at_utc\": \"2026-06-20T07:14:53.528Z\",\n  \"query\": {\n    \"version\": \"en-kjv\",\n    \"book\": \"John\",\n    \"canonical_book\": \"john\",\n    \"chapter\": 3,\n    \"verse\": 16\n  },\n  \"result\": {\n    \"id\": \"en-kjv:john:3:16\",\n    \"version\": \"en-kjv\",\n    \"book\": \"john\",\n    \"book_slug\": \"john\",\n    \"canonical_book\": \"john\",\n    \"chapter\": 3,\n    \"verse\": 16,\n    \"reference\": \"John 3:16\",\n    \"text\": \"For God so loved the world...\",\n    \"source_path\": \"bibles/en-kjv/books/john/chapters/3/verses/16.json\",\n    \"api_path\": \"/en-kjv/books/john/chapters/3/verses/16.json\"\n  },\n  \"source\": {\n    \"method\": \"book-asset\",\n    \"index\": \"/en-kjv/books/john.json\",\n    \"api_path\": \"/en-kjv/books/john/chapters/3/verses/16.json\",\n    \"source_path\": \"bibles/en-kjv/books/john/chapters/3/verses/16.json\",\n    \"source_text_origin\": \"book_asset\"\n  },\n  \"behavior\": {\n    \"selection\": \"requested_reference\",\n    \"refresh_returns_new_verse\": false,\n    \"runtime_lookup\": true,\n    \"static_generated\": false\n  },\n  \"lookup\": {\n    \"method\": \"book-asset\"\n  }\n}"},{"id":"f9a7f80e-b010-450d-98d3-907bdf149490","name":"Invalid query, reference, version, or numeric range.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=John 3:16&book=John&chapter=3&verse=16&start_verse=100&end_verse=100","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"},{"description":"Free-text reference such as `John 3:16` or `Amos 8:4-6`; takes priority when present.","key":"reference","value":"John 3:16"},{"description":"Book name, slug, or supported alias for structured lookup.","key":"book","value":"John"},{"description":"Chapter number for structured lookup.","key":"chapter","value":"3"},{"description":"Starting verse for structured lookup. Used unless `start_verse` is present.","key":"verse","value":"16"},{"description":"Alias for `verse`; takes priority over `verse` when both are supplied.","key":"start_verse","value":"100"},{"description":"Inclusive end of a same-chapter range, at most 50 verses including the start.","key":"end_verse","value":"100"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": false,\n  \"type\": \"verse_lookup\",\n  \"error_code\": \"INVALID_VERSION\",\n  \"error\": \"Invalid version. Use a published ScriptureFlow version key such as en-lsv.\",\n  \"query\": {\n    \"version\": \"../secret\"\n  }\n}"},{"id":"dbc86d59-1e9f-4044-a281-835a71c1771f","name":"Translation book asset or one or more requested verses were not found.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=John 3:16&book=John&chapter=3&verse=16&start_verse=100&end_verse=100","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"},{"description":"Free-text reference such as `John 3:16` or `Amos 8:4-6`; takes priority when present.","key":"reference","value":"John 3:16"},{"description":"Book name, slug, or supported alias for structured lookup.","key":"book","value":"John"},{"description":"Chapter number for structured lookup.","key":"chapter","value":"3"},{"description":"Starting verse for structured lookup. Used unless `start_verse` is present.","key":"verse","value":"16"},{"description":"Alias for `verse`; takes priority over `verse` when both are supplied.","key":"start_verse","value":"100"},{"description":"Inclusive end of a same-chapter range, at most 50 verses including the start.","key":"end_verse","value":"100"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": false,\n  \"type\": \"verse_lookup\",\n  \"error_code\": \"BOOK_ASSET_NOT_FOUND\",\n  \"error\": \"Book lookup asset not found\",\n  \"query\": {\n    \"version\": \"en-lsv\",\n    \"book\": \"Unknown\",\n    \"chapter\": 1,\n    \"verse\": 1\n  }\n}"},{"id":"2cc978c1-e964-43cd-b037-ed94517ea06e","name":"Required canonical book metadata was unavailable.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=John 3:16&book=John&chapter=3&verse=16&start_verse=100&end_verse=100","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"},{"description":"Free-text reference such as `John 3:16` or `Amos 8:4-6`; takes priority when present.","key":"reference","value":"John 3:16"},{"description":"Book name, slug, or supported alias for structured lookup.","key":"book","value":"John"},{"description":"Chapter number for structured lookup.","key":"chapter","value":"3"},{"description":"Starting verse for structured lookup. Used unless `start_verse` is present.","key":"verse","value":"16"},{"description":"Alias for `verse`; takes priority over `verse` when both are supplied.","key":"start_verse","value":"100"},{"description":"Inclusive end of a same-chapter range, at most 50 verses including the start.","key":"end_verse","value":"100"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": false,\n  \"type\": \"verse_lookup\",\n  \"error_code\": \"CANONICAL_BOOK_MAP_UNAVAILABLE\",\n  \"error\": \"Canonical book map not available\"\n}"}],"_postman_id":"e9688c7d-80b5-459d-aa55-4f220e8b5cc7"}],"id":"194e4fbf-5090-45b1-9e4f-bf66a3456ead","_postman_id":"194e4fbf-5090-45b1-9e4f-bf66a3456ead","description":""},{"name":"quick-verse","item":[{"name":"Get a runtime-selected random verse","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('Response is JSON', function () {","    pm.response.to.be.json;","})","","pm.test('Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('ok is true', function () {","    const json = pm.response.json();","    pm.expect(json.ok).to.be.true;","})","","pm.test('type is quick_verse', function () {","    const json = pm.response.json();","    pm.expect(json.type).to.equal('quick_verse');","})","","pm.test('Has required QuickVerseResponse fields', function () {","    const json = pm.response.json();","    pm.expect(json).to.have.property('version').that.is.a('string');","    pm.expect(json).to.have.property('reference').that.is.a('string');","    pm.expect(json).to.have.property('book').that.is.a('string');","    pm.expect(json).to.have.property('chapter').that.is.a('number');","    pm.expect(json).to.have.property('verse').that.is.a('number');","    pm.expect(json).to.have.property('text').that.is.a('string');","    pm.expect(json).to.have.property('served_at_utc').that.is.a('string');","    pm.expect(json).to.have.property('result').that.is.an('object');","    pm.expect(json).to.have.property('behavior').that.is.an('object');","    pm.expect(json).to.have.property('source').that.is.an('object');","})","","pm.test('behavior.refresh_returns_new_verse is true', function () {","    const json = pm.response.json();","    pm.expect(json.behavior.refresh_returns_new_verse).to.be.true;","})","","pm.test('Cache-Control header is no-store', function () {","    pm.expect(pm.response.headers.get('Cache-Control')).to.equal('no-store');","})","","pm.test('served_at_utc is a valid ISO 8601 date-time', function () {","    const json = pm.response.json();","    pm.expect(new Date(json.served_at_utc).toString()).to.not.equal('Invalid Date');","})","","pm.test('result has id, version, book, chapter, verse, text', function () {","    const json = pm.response.json();","    const r = json.result;","    pm.expect(r).to.have.property('id').that.is.a('string');","    pm.expect(r).to.have.property('version').that.is.a('string');","    pm.expect(r).to.have.property('book').that.is.a('string');","    pm.expect(r).to.have.property('chapter').that.is.a('number');","    pm.expect(r).to.have.property('verse').that.is.a('number');","    pm.expect(r).to.have.property('text').that.is.a('string');","})","","pm.test('[Smoke] Status code is 200', function () {","    pm.response.to.have.status(200);","})","","pm.test('[Smoke] Content-Type is JSON', function () {","    pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');","})","","pm.test('[Smoke] Response time is under 3000ms', function () {","    pm.expect(pm.response.responseTime).to.be.below(3000);","})","","pm.test('[Smoke] Body has \"ok\" field (boolean true)', function () {","    pm.expect(jsonData).to.have.property('ok');","    pm.expect(jsonData.ok).to.be.true;","})","","pm.test('[Smoke] Body has \"type\" field equal to \"quick_verse\"', function () {","    pm.expect(jsonData).to.have.property('type').that.is.a('string');","    pm.expect(jsonData.type).to.equal('quick_verse');","})","","pm.test('[Smoke] Body has \"result\" field (object)', function () {","    pm.expect(jsonData).to.have.property('result').that.is.an('object');","})","","pm.test('[Smoke] result.book is a string', function () {","    pm.expect(jsonData.result).to.have.property('book').that.is.a('string');","})","","pm.test('[Smoke] result.chapter is a number >= 1', function () {","    pm.expect(jsonData.result).to.have.property('chapter').that.is.a('number');","    pm.expect(jsonData.result.chapter).to.be.at.least(1);","})","","pm.test('[Smoke] result.verse is a number >= 1', function () {","    pm.expect(jsonData.result).to.have.property('verse').that.is.a('number');","    pm.expect(jsonData.result.verse).to.be.at.least(1);","})","","pm.test('[Smoke] result.text is a non-empty string', function () {","    pm.expect(jsonData.result).to.have.property('text').that.is.a('string');","    pm.expect(jsonData.result.text.trim().length).to.be.at.least(1);","})","","pm.test('[Smoke] Body has \"served_at_utc\" field (string)', function () {","    pm.expect(jsonData).to.have.property('served_at_utc').that.is.a('string');","})","","pm.test('[Smoke] Cache-Control header contains \"no-store\"', function () {","    const cacheControl = pm.response.headers.get('Cache-Control') || '';","    pm.expect(cacheControl).to.include('no-store');","})"]}}],"id":"0e3ae04a-e8bf-4f6e-9b17-7433ebddc921","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv","description":"<p>Selects a verse at request time from the requested translation. Refreshing\nmay return a different verse. This is distinct from the stable generated\n<code>/{version}/random.json</code> Verse of the Day. Internally, the endpoint can use\neither a single verse index or a split-index manifest. Responses currently\nuse <code>Cache-Control: no-store</code>.</p>\n","urlObject":{"path":["api","quick-verse"],"host":["https://scriptureflow-api-preview.pages.dev"],"query":[{"description":{"content":"<p>Exact machine identifier from <code>/translations.json</code> (for example <code>en-kjv</code>, not <code>kjv</code> or <code>en-KJV</code>).</p>\n","type":"text/plain"},"key":"version","value":"en-kjv"}],"variable":[]}},"response":[{"id":"302ed640-ef0a-4d34-a198-48e14e93f9f0","name":"Runtime-selected verse. The response is not stored by caches.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","quick-verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"Current runtime cache directive.","type":"text/plain"},"key":"Cache-Control","value":"string"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": true,\n  \"type\": \"quick_verse\",\n  \"version\": \"en-kjv\",\n  \"reference\": \"John 3:16\",\n  \"book\": \"john\",\n  \"chapter\": 3,\n  \"verse\": 16,\n  \"text\": \"For God so loved the world...\",\n  \"served_at_utc\": \"2026-06-20T07:14:54.112Z\",\n  \"result\": {\n    \"id\": \"en-kjv:john:3:16\",\n    \"version\": \"en-kjv\",\n    \"book\": \"john\",\n    \"chapter\": 3,\n    \"verse\": 16,\n    \"reference\": \"John 3:16\",\n    \"text\": \"For God so loved the world...\"\n  },\n  \"behavior\": {\n    \"selection\": \"runtime_random\",\n    \"refresh_returns_new_verse\": true,\n    \"translation_scoped\": true,\n    \"static_generated\": false\n  },\n  \"source\": {\n    \"method\": \"runtime_random\",\n    \"index\": \"/en-kjv/verses-index.json\",\n    \"api_path\": \"/en-kjv/books/john/chapters/3/verses/16.json\",\n    \"source_path\": \"bibles/en-kjv/books/john/chapters/3/verses/16.json\",\n    \"source_text_origin\": \"verse_index\"\n  },\n  \"lookup\": {\n    \"method\": \"split-index\",\n    \"index\": \"/en-kjv/verses-index.json\",\n    \"split_part\": 1,\n    \"split_part_path\": \"/en-kjv/verses-index-parts/part-001.json\"\n  }\n}"},{"id":"5105b2d8-5772-4e73-b61f-50af02466f0f","name":"Invalid or missing version key.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","quick-verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": false,\n  \"type\": \"quick_verse\",\n  \"error_code\": \"INVALID_VERSION\",\n  \"error\": \"Invalid version. Use a published ScriptureFlow version key such as en-kjv.\",\n  \"version\": \"../secret\",\n  \"query\": {\n    \"version\": \"../secret\"\n  }\n}"},{"id":"420018c6-8721-4b52-8efc-27de3547cf30","name":"Version index or usable verse entries were not found.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","quick-verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": false,\n  \"type\": \"quick_verse\",\n  \"error_code\": \"VERSION_INDEX_NOT_FOUND\",\n  \"error\": \"Version index not found\",\n  \"version\": \"en-missing\",\n  \"query\": {\n    \"version\": \"en-missing\"\n  },\n  \"index\": \"/en-missing/verses-index.json\"\n}"},{"id":"f8df2db9-f85c-4608-94fb-66d707b010f5","name":"Verse text, split-index part, or index format could not be resolved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv","host":["https://scriptureflow-api-preview.pages.dev"],"path":["api","quick-verse"],"query":[{"description":"Exact machine identifier from `/translations.json` (for example `en-kjv`, not `kjv` or `en-KJV`).","key":"version","value":"en-kjv"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"ok\": false,\n  \"type\": \"quick_verse\",\n  \"error_code\": \"VERSE_TEXT_NOT_RESOLVED\",\n  \"error\": \"Random verse was selected, but verse text could not be resolved\",\n  \"version\": \"en-example\",\n  \"selected\": {\n    \"book\": \"john\",\n    \"chapter\": 3,\n    \"verse\": 16,\n    \"api_path\": \"/en-example/books/john/chapters/3/verses/16.json\"\n  }\n}"}],"_postman_id":"0e3ae04a-e8bf-4f6e-9b17-7433ebddc921"}],"id":"0f216442-024b-4010-99c9-a9a0b5ba7fbd","_postman_id":"0f216442-024b-4010-99c9-a9a0b5ba7fbd","description":""}],"id":"55a2407b-153f-463c-96be-19672697c472","_postman_id":"55a2407b-153f-463c-96be-19672697c472","description":""}],"variable":[{"key":"baseUrl","value":"https://scriptureflow-api-preview.pages.dev"}]}