{"openapi":"3.1.0","info":{"title":"Seeding Your World public content API","version":"1.0.0","description":"Published Christian teachings, articles and sessions. Read-only; no API key required. No editorial writes or private content. See /developers for usage and rate-limit guidance."},"servers":[{"url":"https://seedingyourworld.org"}],"security":[],"externalDocs":{"description":"Usage, attribution, errors and version policy","url":"https://seedingyourworld.org/developers"},"paths":{"/api/public/v1/resources":{"get":{"operationId":"listPublishedResources","summary":"Find published resources","description":"Anonymous, read-only published content. Authentication does not expand access. No editorial fields or private media. Refresh schedules before attending; null transcript means no reviewed transcript is available.","security":[],"parameters":[{"name":"page","in":"query","description":"Page number.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","description":"Maximum items per page.","schema":{"type":"integer","minimum":1,"maximum":50,"default":12}},{"name":"kind","in":"query","description":"Filter by content format.","schema":{"type":"string","enum":["teaching","article"]}},{"name":"q","in":"query","description":"Search title and summary, not full recordings.","schema":{"type":"string","maxLength":100}}],"responses":{"200":{"description":"Published content.","content":{"application/json":{"schema":{"type":"object","required":["items","page","limit","total","totalPages","hasNextPage"],"properties":{"items":{"type":"array","items":{"type":"object","required":["slug","url","title","kind","summary","byline","bodyText","transcript","recordings","scriptures","topics"],"properties":{"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"title":{"type":"string"},"kind":{"type":"string","enum":["teaching","article"]},"summary":{"type":"string"},"byline":{"type":"string"},"bodyText":{"type":["string","null"],"description":"Published article or study notes as plain text."},"transcript":{"type":["string","null"],"description":"Reviewed published transcript, or null. Never infer recording content when absent."},"publishedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"recordings":{"type":"array","items":{"type":"object","required":["provider","url"],"properties":{"provider":{"type":"string","enum":["youtube","spotify"]},"url":{"type":"string","format":"uri"}}}},"scriptures":{"type":"array","items":{"type":"string"}},"topics":{"type":"array","items":{"type":"object","required":["name","url"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"series":{"type":["object","null"],"properties":{"title":{"type":"string"},"url":{"type":"string","format":"uri"}}},"cover":{"type":["object","null"],"description":"Only public image metadata.","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"}}}}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasNextPage":{"type":"boolean"}}}}}},"400":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"404":{"description":"Missing or unpublished content.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"405":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"503":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}}}}},"/api/public/v1/resources/{slug}":{"get":{"operationId":"getPublishedResource","summary":"Read one published resources","description":"Anonymous, read-only published content. Authentication does not expand access. No editorial fields or private media. Refresh schedules before attending; null transcript means no reviewed transcript is available.","security":[],"parameters":[{"name":"slug","in":"path","required":true,"description":"Permanent published URL slug.","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}}],"responses":{"200":{"description":"Published content.","content":{"application/json":{"schema":{"type":"object","required":["slug","url","title","kind","summary","byline","bodyText","transcript","recordings","scriptures","topics"],"properties":{"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"title":{"type":"string"},"kind":{"type":"string","enum":["teaching","article"]},"summary":{"type":"string"},"byline":{"type":"string"},"bodyText":{"type":["string","null"],"description":"Published article or study notes as plain text."},"transcript":{"type":["string","null"],"description":"Reviewed published transcript, or null. Never infer recording content when absent."},"publishedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"recordings":{"type":"array","items":{"type":"object","required":["provider","url"],"properties":{"provider":{"type":"string","enum":["youtube","spotify"]},"url":{"type":"string","format":"uri"}}}},"scriptures":{"type":"array","items":{"type":"string"}},"topics":{"type":"array","items":{"type":"object","required":["name","url"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"series":{"type":["object","null"],"properties":{"title":{"type":"string"},"url":{"type":"string","format":"uri"}}},"cover":{"type":["object","null"],"description":"Only public image metadata.","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"}}}}}}}},"400":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"404":{"description":"Missing or unpublished content.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"405":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"503":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}}}}},"/api/public/v1/sessions":{"get":{"operationId":"listPublishedSessions","summary":"Find published sessions","description":"Anonymous, read-only published content. Authentication does not expand access. No editorial fields or private media. Refresh schedules before attending; null transcript means no reviewed transcript is available.","security":[],"parameters":[{"name":"page","in":"query","description":"Page number.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","description":"Maximum items per page.","schema":{"type":"integer","minimum":1,"maximum":50,"default":12}}],"responses":{"200":{"description":"Published content.","content":{"application/json":{"schema":{"type":"object","required":["items","page","limit","total","totalPages","hasNextPage"],"properties":{"items":{"type":"array","items":{"type":"object","required":["slug","url","title","summary","startsAt","endsAt","timezone","status","format","joinURL","location"],"properties":{"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"title":{"type":"string"},"summary":{"type":"string"},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","description":"IANA timezone for display."},"status":{"type":"string","enum":["scheduled","cancelled"]},"format":{"type":"string","enum":["online","in-person"]},"joinURL":{"type":["string","null"],"description":"Public joining URL. Null for cancelled or in-person sessions."},"location":{"type":["string","null"]}}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasNextPage":{"type":"boolean"}}}}}},"400":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"404":{"description":"Missing or unpublished content.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"405":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"503":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}}}}},"/api/public/v1/sessions/{slug}":{"get":{"operationId":"getPublishedSession","summary":"Read one published sessions","description":"Anonymous, read-only published content. Authentication does not expand access. No editorial fields or private media. Refresh schedules before attending; null transcript means no reviewed transcript is available.","security":[],"parameters":[{"name":"slug","in":"path","required":true,"description":"Permanent published URL slug.","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}}],"responses":{"200":{"description":"Published content.","content":{"application/json":{"schema":{"type":"object","required":["slug","url","title","summary","startsAt","endsAt","timezone","status","format","joinURL","location"],"properties":{"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"title":{"type":"string"},"summary":{"type":"string"},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","description":"IANA timezone for display."},"status":{"type":"string","enum":["scheduled","cancelled"]},"format":{"type":"string","enum":["online","in-person"]},"joinURL":{"type":["string","null"],"description":"Public joining URL. Null for cancelled or in-person sessions."},"location":{"type":["string","null"]}}}}}},"400":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"404":{"description":"Missing or unpublished content.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"405":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}},"503":{"description":"Request or service error; see detail.","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}}}}}}}}}}