{"openapi":"3.1.0","info":{"title":"harness.talk API","version":"1.0.0","description":"Read-only, keyless access to the King James Bible (1611 first edition, original spelling) and the Geneva Bible 1599 as an immutable, content-addressed corpus for AI agents. Every verse carries its source and sha256. Bulk export: /exports/kjv-1611.jsonl.gz. Loopback fabric: 127.{book}.{chapter}.{verse}:1611 via harnessd.","license":{"name":"Public domain text; MIT harness","url":"https://harness.talk/agents/covenant"},"contact":{"url":"https://harness.talk/community"}},"servers":[{"url":"https://harness.talk"},{"url":"http://127.0.0.1:1611","description":"Local harnessd (resolve only; address is the path)"}],"paths":{"/api/v1/verses/{ref}":{"get":{"operationId":"getVerse","summary":"Fetch one verse (or a verse range) by reference","description":"Fetch one verse (or a verse range) by reference. Returns the exact 1611 KJV text (original spelling) with source id and sha256 for local verification; other ingested texts via `source`.","tags":["corpus"],"parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","description":"A scripture reference. Accepts canonical ids ('jn.3.16', 'jn.3.16-18', 'ps.23'), human forms ('John 3:16', '1 John 5:7', 'Song of Solomon 2:1'), or a fabric quartet ('127.43.3.16').","examples":["jn.3.16","John 3:16-18","127.43.3.16"]},"description":"A scripture reference. Accepts canonical ids ('jn.3.16', 'jn.3.16-18', 'ps.23'), human forms ('John 3:16', '1 John 5:7', 'Song of Solomon 2:1'), or a fabric quartet ('127.43.3.16')."},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"Text source id. Default kjv-1611 (King James 1611 first edition, original spelling). 'geneva-1599' = Geneva Bible 1599 verse text (original spelling; KJV refs with no Geneva counterpart are not_found and listed in `missing` for ranges). 'wlc-oshb' = Hebrew OT, 'sblgnt-morphgnt' = Greek NT (critical text, not the TR); both return the original at the same chapter:verse number with word-level tagging. Asking an OT ref for the Greek source (or vice versa) is not_found; non-ingested sources (textus-receptus) return source_not_ingested.","default":"kjv-1611","enum":["kjv-1611","geneva-1599","wlc-oshb","sblgnt-morphgnt","textus-receptus"]},"description":"Text source id. Default kjv-1611 (King James 1611 first edition, original spelling). 'geneva-1599' = Geneva Bible 1599 verse text (original spelling; KJV refs with no Geneva counterpart are not_found and listed in `missing` for ranges). 'wlc-oshb' = Hebrew OT, 'sblgnt-morphgnt' = Greek NT (critical text, not the TR); both return the original at the same chapter:verse number with word-level tagging. Asking an OT ref for the Greek source (or vice versa) is not_found; non-ingested sources (textus-receptus) return source_not_ingested."}],"responses":{"200":{"description":"Verse object {ref, display, book, chapter, verse, text, source, sha256, quartet} or {ref, count, verses[]} for ranges.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Verse"},{"type":"object","properties":{"verses":{"type":"array","items":{"$ref":"#/components/schemas/Verse"}}}}]}}}},"501":{"description":"source_not_ingested","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"4XX":{"description":"Problem details","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-codeSamples":[{"lang":"shell","source":"curl -s https://harness.talk/api/v1/verses/jn.3.16"}]}},"/api/v1/chapters/{ref}":{"get":{"operationId":"getPassage","summary":"Fetch a whole chapter with prev/next navigation, Psalm superscription, and Psalm 119 headings.","description":"Fetch a whole chapter with prev/next navigation, Psalm superscription, and Psalm 119 headings.","tags":["corpus"],"parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","description":"Book and chapter, e.g. 'jn.3', 'Psalm 23', '127.19.23.0'."},"description":"Book and chapter, e.g. 'jn.3', 'Psalm 23', '127.19.23.0'."}],"responses":{"200":{"description":"{ref, display, book, chapter, title?, headings?, prev, next, quartet, source, verses[]}","content":{"application/json":{"schema":{"type":"object"}}}},"501":{"description":"source_not_ingested","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"4XX":{"description":"Problem details","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-codeSamples":[{"lang":"shell","source":"curl -s https://harness.talk/api/v1/chapters/ps.23"}]}},"/api/v1/search":{"get":{"operationId":"search","summary":"Lexical search over the KJV","description":"Lexical search over the KJV. Plain terms (all must match, light stemming), a \"quoted phrase\" for exact phrase, or a reference to resolve it. Ranked, paginated.","tags":["corpus"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}},{"name":"book","in":"query","required":false,"schema":{"type":"string","description":"Restrict to one book id, e.g. 'ps'."},"description":"Restrict to one book id, e.g. 'ps'."}],"responses":{"200":{"description":"{query, mode: 'reference'|'phrase'|'terms', total, hits: Verse[] with score, limit, offset}","content":{"application/json":{"schema":{"type":"object"}}}},"501":{"description":"source_not_ingested","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"4XX":{"description":"Problem details","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-codeSamples":[{"lang":"shell","source":"curl -s 'https://harness.talk/api/v1/search?q=everlasting+life&limit=5'"}]}},"/api/v1/annotations/{ref}":{"get":{"operationId":"getAnnotations","summary":"Annotation layer for a chapter or verse: the Geneva Bible's chapter arguments, marginal notes, cross-references (source 'geneva-notes')","description":"Annotation layer for a chapter or verse: the Geneva Bible's chapter arguments, marginal notes, cross-references (source 'geneva-notes'). Returns source_not_ingested where the source has no verified data — never a substitute. For the Geneva verse TEXT use getVerse with source=geneva-1599.","tags":["corpus"],"parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","description":"A scripture reference. Accepts canonical ids ('jn.3.16', 'jn.3.16-18', 'ps.23'), human forms ('John 3:16', '1 John 5:7', 'Song of Solomon 2:1'), or a fabric quartet ('127.43.3.16')."},"description":"A scripture reference. Accepts canonical ids ('jn.3.16', 'jn.3.16-18', 'ps.23'), human forms ('John 3:16', '1 John 5:7', 'Song of Solomon 2:1'), or a fabric quartet ('127.43.3.16')."},{"name":"source","in":"query","required":false,"schema":{"type":"string","default":"geneva-notes"}}],"responses":{"200":{"description":"{ref, source, count, annotations: [{id, kind, ref, text, anchor?, targets?, source}]}","content":{"application/json":{"schema":{"type":"object"}}}},"501":{"description":"source_not_ingested","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"4XX":{"description":"Problem details","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-codeSamples":[{"lang":"shell","source":"curl -s https://harness.talk/api/v1/annotations/gn.3"}]}},"/api/v1/words/{ref}":{"get":{"operationId":"getWords","summary":"Original-language text with word-level tagging for a verse, range, or chapter","description":"Original-language text with word-level tagging for a verse, range, or chapter. OT → Hebrew (WLC/OSHB: word, Strong's, morphology; Aramaic verses flagged). NT → Greek (SBLGNT/MorphGNT: word, lemma, morphology, POS). SBLGNT is a critical text, NOT the Textus Receptus behind the KJV; versification follows the original and is never remapped — verses the KJV has but the original lacks are listed in `missing`.","tags":["corpus"],"parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","description":"A scripture reference. Accepts canonical ids ('jn.3.16', 'jn.3.16-18', 'ps.23'), human forms ('John 3:16', '1 John 5:7', 'Song of Solomon 2:1'), or a fabric quartet ('127.43.3.16')."},"description":"A scripture reference. Accepts canonical ids ('jn.3.16', 'jn.3.16-18', 'ps.23'), human forms ('John 3:16', '1 John 5:7', 'Song of Solomon 2:1'), or a fabric quartet ('127.43.3.16')."}],"responses":{"200":{"description":"{ref, source: 'wlc-oshb'|'sblgnt-morphgnt', count, missing?: string[], verses: [{ref, display, language: 'hebrew'|'aramaic'|'greek', text, sha256, words: [{p, w, s?|l?, m, pos?}]}], fields}","content":{"application/json":{"schema":{"type":"object"}}}},"501":{"description":"source_not_ingested","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"4XX":{"description":"Problem details","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-codeSamples":[{"lang":"shell","source":"curl -s https://harness.talk/api/v1/words/jn.3.16"}]}},"/api/v1/resolve/{quartet}":{"get":{"operationId":"resolveQuartet","summary":"Resolve a fabric address 127.{book}.{chapter}.{verse} to its verse, chapter, or book — identical to what harnessd serves on loopback port 1611","description":"Resolve a fabric address 127.{book}.{chapter}.{verse} to its verse, chapter, or book — identical to what harnessd serves on loopback port 1611. Try local first, fall back here.","tags":["corpus"],"parameters":[{"name":"quartet","in":"path","required":true,"schema":{"type":"string","pattern":"^127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$","examples":["127.43.3.16","127.19.23.0","127.1.0.0"]}}],"responses":{"200":{"description":"Verse | Chapter | Book object with `scope` and `address`, or problem+json.","content":{"application/json":{"schema":{"type":"object"}}}},"501":{"description":"source_not_ingested","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"4XX":{"description":"Problem details","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-codeSamples":[{"lang":"shell","source":"curl -s https://harness.talk/api/v1/resolve/127.43.3.16   # or locally: curl -s 127.43.3.16:1611"}]}},"/api/v1/books":{"get":{"operationId":"listBooks","tags":["corpus"],"summary":"All 66 books with chapter/verse counts and book sha256","responses":{"200":{"description":"Book list"}}}},"/api/v1/books/{id}":{"get":{"operationId":"getBook","tags":["corpus"],"summary":"One book with per-chapter verse counts","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Book"},"404":{"description":"book_unknown"}}}},"/api/v1/sources":{"get":{"operationId":"listSources","tags":["provenance"],"summary":"Source registry with status (ingested | partial | declared) and corpus Merkle root","responses":{"200":{"description":"Sources"}}}},"/graphql":{"post":{"operationId":"graphql","tags":["specification"],"summary":"GraphQL endpoint","description":"Specification — not yet live. Schema draft on /api-docs#graphql.","x-status":"planned","responses":{"501":{"description":"Not implemented"}}}},"/api/v1/agents":{"post":{"operationId":"registerAgent","tags":["specification"],"summary":"Agent registry","description":"Specification — not yet live. Message shapes on /agents/protocol#coordination.","x-status":"planned","responses":{"501":{"description":"Not implemented"}}}},"/api/v1/webhooks":{"post":{"operationId":"createWebhook","tags":["specification"],"summary":"Webhook subscriptions","description":"Specification — not yet live.","x-status":"planned","responses":{"501":{"description":"Not implemented"}}}}},"components":{"schemas":{"Verse":{"type":"object","required":["ref","display","book","chapter","verse","text","source","sha256","quartet"],"properties":{"ref":{"type":"string","example":"jn.3.16"},"display":{"type":"string","example":"John 3:16"},"book":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"ordinal":{"type":"integer"},"testament":{"type":"string","enum":["OT","NT"]}}},"chapter":{"type":"integer"},"verse":{"type":"integer"},"text":{"type":"string"},"source":{"type":"string","example":"kjv-1611"},"sha256":{"type":"string","description":"sha256(ref + '\\n' + text); also the Merkle leaf"},"quartet":{"type":"string","example":"127.43.3.16"}}},"Problem":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string","enum":["ref_unparseable","book_unknown","chapter_out_of_range","verse_out_of_range","quartet_invalid","source_not_ingested","query_empty","not_found"]},"status":{"type":"integer"},"detail":{"type":"string"}}}}},"tags":[{"name":"corpus","description":"Live. Immutable, cacheable, keyless."},{"name":"provenance","description":"Live."},{"name":"specification","description":"Documented contracts that are not yet served. Marked x-status: planned."}]}