{"openapi":"3.1.0","info":{"title":"Repent and Prepare the Way — public content API","version":"1.0.0","summary":"The published archive of the Ministry of Repentance and Holiness, read-only.","description":"Written teachings, the prophetic record, and recorded sermons published by the Ministry of Repentance and Holiness.\n\nPublic and read-only: there is no key, no account and no write path. Every item carries a `canonicalUrl`,\nthe page a person would read — quote or summarise freely and link it, so a reader can reach the teaching itself.\n\nArticle bodies come three ways: `content.text` (plain), `content.html` (rendered), and `content.source`, which is the desk's own markup, named `ministry-markup`. Prefer the first two unless you intend to parse the markup.\n\nUnpublished work, the posting desk, reader questions and site analytics are not exposed here and are not reachable from this API.","contact":{"name":"Ministry of Repentance and Holiness","url":"https://read.repentanceonline.com/about"}},"servers":[{"url":"https://read.repentanceonline.com","description":"Production"}],"externalDocs":{"description":"Developer documentation","url":"https://read.repentanceonline.com/docs/api"},"tags":[{"name":"discovery","description":"What this API is and how to use it."},{"name":"articles","description":"Written teachings, doctrine, devotional pieces."},{"name":"prophecies","description":"Records of prophecies, held against their primary source."},{"name":"teachings","description":"Recorded sermons and teachings."},{"name":"taxonomies","description":"Sections, tags and bylines in use."},{"name":"search","description":"One query across the whole archive."}],"paths":{"/api/v1":{"get":{"tags":["discovery"],"operationId":"getServiceDescription","summary":"What this API is, what it holds, and how to page through it.","responses":{"200":{"description":"The service description.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/openapi.json":{"get":{"tags":["discovery"],"operationId":"getOpenApiDocument","summary":"This document.","responses":{"200":{"description":"The OpenAPI specification.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/v1/articles":{"get":{"tags":["articles"],"operationId":"listArticles","summary":"List published articles, newest first.","description":"Summaries only. Retrieve a body from the item endpoint, or from any row's `links.self`.","parameters":[{"name":"q","in":"query","description":"Words to match. Every term must appear somewhere; where it appears decides what it is worth.","schema":{"type":"string","maxLength":200}},{"name":"category","in":"query","description":"One section. Accepted as written (\"Church History\") or slugged (\"church-history\").","schema":{"type":"string","enum":["Teachings","Prophecy","Oracles","Devotional","Doctrine","Church History","Testimony"]}},{"name":"tag","in":"query","description":"One tag, normalised to lowercase hyphenated form.","schema":{"type":"string"}},{"name":"author","in":"query","description":"A byline, matched in full and case-insensitively.","schema":{"type":"string"}},{"name":"from","in":"query","description":"Published on or after this calendar date.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"Published on or before this calendar date.","schema":{"type":"string","format":"date"}},{"name":"page","in":"query","description":"Which page of results, from 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"How many items per page, up to 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"A page of articles.","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ArticleSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"query":{"type":"object","description":"The filters as the API understood them, echoed back.","additionalProperties":true}}}}}},"400":{"description":"A parameter was not understood.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/articles/{slug}":{"get":{"tags":["articles"],"operationId":"getArticle","summary":"One article, in full.","parameters":[{"name":"slug","in":"path","required":true,"description":"The stable identifier, the same one in the public URL.","schema":{"type":"string"}}],"responses":{"200":{"description":"The article.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ArticleDetail"}}}}}},"404":{"description":"No published article with that slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prophecies":{"get":{"tags":["prophecies"],"operationId":"listProphecies","summary":"List prophecy records.","parameters":[{"name":"q","in":"query","description":"Words to match. Every term must appear somewhere; where it appears decides what it is worth.","schema":{"type":"string","maxLength":200}},{"name":"tag","in":"query","description":"One tag, normalised to lowercase hyphenated form.","schema":{"type":"string"}},{"name":"page","in":"query","description":"Which page of results, from 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"How many items per page, up to 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"A page of records.","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProphecyRecord"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"query":{"type":"object","description":"The filters as the API understood them, echoed back.","additionalProperties":true}}}}}},"400":{"description":"A parameter was not understood.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prophecies/{id}":{"get":{"tags":["prophecies"],"operationId":"getProphecyRecord","summary":"One record, with its timeline and independent documentation.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The record.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProphecyRecordDetail"}}}}}},"404":{"description":"No record with that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/teachings":{"get":{"tags":["teachings"],"operationId":"listTeachings","summary":"List recorded teachings.","parameters":[{"name":"q","in":"query","description":"Words to match. Every term must appear somewhere; where it appears decides what it is worth.","schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","description":"Which page of results, from 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"How many items per page, up to 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"A page of recordings.","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TeachingRecording"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"query":{"type":"object","description":"The filters as the API understood them, echoed back.","additionalProperties":true}}}}}},"400":{"description":"A parameter was not understood.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/teachings/{id}":{"get":{"tags":["teachings"],"operationId":"getTeaching","summary":"One recording.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The recording.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/TeachingRecording"}}}}}},"404":{"description":"No recording with that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/categories":{"get":{"tags":["taxonomies"],"operationId":"listCategories","summary":"Sections that hold published writing, counted.","responses":{"200":{"description":"The sections in use.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}}}}}}}}}}},"/api/v1/tags":{"get":{"tags":["taxonomies"],"operationId":"listTags","summary":"Tags in use, most-used first.","responses":{"200":{"description":"The tags in use.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}}}}}}}}}}},"/api/v1/authors":{"get":{"tags":["taxonomies"],"operationId":"listAuthors","summary":"Bylines that have published, counted.","responses":{"200":{"description":"The bylines in use.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Author"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}}}}}}}}}}},"/api/v1/search":{"get":{"tags":["search"],"operationId":"search","summary":"Search articles, prophecy records and recordings together.","description":"Results are lightweight and carry `match.matchedFields`, naming where the query landed. Fetch the full item from `links.self`.","parameters":[{"name":"q","in":"query","description":"Words to match. Every term must appear somewhere; where it appears decides what it is worth.","schema":{"type":"string","maxLength":200},"required":true},{"name":"type","in":"query","description":"Restrict a search to some kinds of item. Comma-separated.","schema":{"type":"string","example":"article,prophecy-record"}},{"name":"category","in":"query","description":"One section. Accepted as written (\"Church History\") or slugged (\"church-history\").","schema":{"type":"string","enum":["Teachings","Prophecy","Oracles","Devotional","Doctrine","Church History","Testimony"]}},{"name":"tag","in":"query","description":"One tag, normalised to lowercase hyphenated form.","schema":{"type":"string"}},{"name":"author","in":"query","description":"A byline, matched in full and case-insensitively.","schema":{"type":"string"}},{"name":"from","in":"query","description":"Published on or after this calendar date.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"Published on or before this calendar date.","schema":{"type":"string","format":"date"}},{"name":"page","in":"query","description":"Which page of results, from 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"How many items per page, up to 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"query":{"type":"object","description":"The filters as the API understood them, echoed back.","additionalProperties":true}}}}}},"400":{"description":"q was missing, too long, or a filter was not understood.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Pagination":{"type":"object","required":["page","limit","total","totalPages","hasNextPage","hasPreviousPage"],"properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer","description":"Items matching the filters, across all pages."},"totalPages":{"type":"integer"},"hasNextPage":{"type":"boolean"},"hasPreviousPage":{"type":"boolean"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_PARAMETER","QUERY_TOO_LONG","ARTICLE_NOT_FOUND","RECORD_NOT_FOUND","TEACHING_NOT_FOUND","NOT_FOUND","METHOD_NOT_ALLOWED","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"parameter":{"type":"string","description":"The parameter at fault, when one is."},"allowed":{"type":"array","items":{"type":"string"},"description":"What would have been accepted."}}}}},"Links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"This item in this API."},"html":{"type":"string","format":"uri","description":"The page a person reads."}}},"AuthorRef":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"},"url":{"type":"string","format":"uri"}}},"CategoryRef":{"type":"object","required":["name","slug","url"],"properties":{"name":{"type":"string","enum":["Teachings","Prophecy","Oracles","Devotional","Doctrine","Church History","Testimony"]},"slug":{"type":"string"},"url":{"type":"string","format":"uri"}}},"ArticleSummary":{"type":"object","required":["id","type","slug","title","summary","author","category","tags","publishedAt","language","canonicalUrl"],"properties":{"id":{"type":"string","description":"The slug. Stable; no database identifier is exposed."},"type":{"type":"string","const":"article"},"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string","description":"The published summary, as it appears under the headline."},"author":{"$ref":"#/components/schemas/AuthorRef"},"category":{"$ref":"#/components/schemas/CategoryRef"},"tags":{"type":"array","items":{"type":"string"}},"publishedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time","description":"Absent on a piece never edited."},"language":{"type":"string","const":"en"},"readingTimeMinutes":{"type":"integer"},"canonicalUrl":{"type":"string","format":"uri"},"image":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"}}},"links":{"$ref":"#/components/schemas/Links"}}},"ArticleDetail":{"allOf":[{"$ref":"#/components/schemas/ArticleSummary"},{"type":"object","required":["content","wordCount"],"properties":{"content":{"type":"object","required":["format","source","text","html"],"properties":{"format":{"type":"string","const":"ministry-markup"},"source":{"type":"string","description":"The desk's markup."},"text":{"type":"string","description":"The body as plain prose."},"html":{"type":"string","description":"The body rendered."}}},"wordCount":{"type":"integer"},"headings":{"type":"array","description":"The chapters of the piece, each with the anchor on the public page.","items":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"scriptureRefs":{"type":"array","items":{"type":"string"},"description":"Passages the piece cites, in the order they appear."},"faqs":{"type":"array","description":"Questions the piece answers directly.","items":{"type":"object","properties":{"q":{"type":"string"},"a":{"type":"string"}}}},"related":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"canonicalUrl":{"type":"string","format":"uri"},"links":{"$ref":"#/components/schemas/Links"}}}}}}]},"ProphecyRecord":{"type":"object","required":["id","type","title","summary","canonicalUrl"],"properties":{"id":{"type":"string"},"type":{"type":"string","const":"prophecy-record"},"recordId":{"type":"string","description":"The desk's record number, or TO BE ASSIGNED."},"title":{"type":"string"},"summary":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"location":{"type":"string"},"subject":{"type":"string"},"publishedAt":{"type":["string","null"],"format":"date-time","description":"Null when the date has not been confirmed against the source; see dateNote."},"dateNote":{"type":"string","description":"Present only when publishedAt is null."},"dateline":{"type":"string","description":"The date as the ministry published it."},"fulfilledByMinistry":{"type":"boolean","description":"The ministry's own designation, reported as such. Not a verification by this API."},"language":{"type":"string","const":"en"},"primarySource":{"type":"string","format":"uri","description":"The original recording."},"canonicalUrl":{"type":"string","format":"uri"},"links":{"$ref":"#/components/schemas/Links"}}},"ProphecyRecordDetail":{"allOf":[{"$ref":"#/components/schemas/ProphecyRecord"},{"type":"object","properties":{"timeline":{"type":"array","items":{"type":"object","additionalProperties":true}},"independentRecords":{"type":"array","description":"Published records from bodies other than the ministry.","items":{"type":"object","additionalProperties":true}}}}]},"TeachingRecording":{"type":"object","required":["id","type","title","canonicalUrl"],"properties":{"id":{"type":"string"},"type":{"type":"string","const":"teaching-recording"},"title":{"type":"string"},"summary":{"type":"string"},"dateline":{"type":"string"},"year":{"type":"string"},"place":{"type":"string"},"series":{"type":"string"},"scripture":{"type":"string"},"language":{"type":"string","const":"en"},"primarySource":{"type":"string","format":"uri"},"canonicalUrl":{"type":"string","format":"uri"},"links":{"$ref":"#/components/schemas/Links"}}},"SearchResult":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/ArticleSummary"},{"$ref":"#/components/schemas/ProphecyRecord"},{"$ref":"#/components/schemas/TeachingRecording"}]},{"type":"object","required":["match"],"properties":{"match":{"type":"object","required":["score","matchedFields"],"properties":{"score":{"type":"number","description":"This site's own weighting. Comparable within one response, meaningless outside it."},"matchedFields":{"type":"array","items":{"type":"string"},"description":"Which fields the query landed in, best first."}}}}}]},"Category":{"type":"object","required":["name","slug","articleCount","url"],"properties":{"name":{"type":"string","enum":["Teachings","Prophecy","Oracles","Devotional","Doctrine","Church History","Testimony"]},"slug":{"type":"string"},"description":{"type":"string"},"articleCount":{"type":"integer"},"url":{"type":"string","format":"uri"}}},"Tag":{"type":"object","required":["tag","articleCount"],"properties":{"tag":{"type":"string"},"articleCount":{"type":"integer"}}},"Author":{"type":"object","required":["name","articleCount"],"properties":{"name":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"},"articleCount":{"type":"integer"},"url":{"type":"string","format":"uri"}}}}}}