{"openapi":"3.1.0","info":{"title":"새벽의 기록 · Prayer Journal API","version":"1.0.0","description":"Published Korean dawn-prayer journal articles and recordings. Free metadata lists titles, dates and resource URLs. Dedicated article and recording APIs use x402 v2 payments on Base USDC. Ordinary website reading and KakaoTalk previews remain free."},"servers":[{"url":"https://dawn.xoghks.com"}],"externalDocs":{"description":"Free title, date and resource catalog","url":"https://dawn.xoghks.com/api/agent/catalog"},"tags":[{"name":"Paid resources","description":"Current published articles and recording bytes."}],"paths":{"/api/agent/articles":{"get":{"operationId":"getPrayerArticle","tags":["Paid resources"],"summary":"Published prayer journal article","description":"The current published journal article in Markdown. No selectors selects the latest published record. This dedicated agent API requires x402 payment regardless of visitor type. The ordinary website reader and KakaoTalk link previews retain their free access. Selectors are optional; duplicate or unknown query parameters are rejected. An ambiguous date returns 409. HEAD returns metadata or payment requirements without settling a payment.","parameters":[{"name":"date","in":"query","required":false,"description":"Published date. Omitted selects the latest published resource matching any other selectors.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"s","in":"query","required":false,"description":"Series ID from the free catalog; resolves dates shared by multiple series.","schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$","maxLength":160}},{"name":"e","in":"query","required":false,"description":"Entry ID from the free catalog; resolves dates shared by multiple records.","schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$","maxLength":160}}],"security":[{"paymentSignature":[]},{"journalAccess":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"Purchased article in Markdown.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded settlement receipt after a newly settled payment.","schema":{"type":"string"}},"X-Journal-Access":{"description":"Opaque access grant for the purchased resource and version, valid for one hour from first settlement.","schema":{"type":"string"}}},"content":{"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"Invalid, repeated or unsupported selectors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Payment required: 0.01 USDC on Base (eip155:8453). The runtime PAYMENT-REQUIRED challenge is authoritative.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 challenge with Base USDC payment requirements and Bazaar discovery metadata.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"No published resource matches the selection.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Ambiguous date or entry; select series and entry IDs from the catalog.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Payment or resource service is unavailable. Paid content is not returned.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}},"/api/agent/recordings":{"get":{"operationId":"getPrayerRecording","tags":["Paid resources"],"summary":"Published prayer journal recording","description":"Audio bytes for one published recording, with byte-range support. No selectors selects the latest published record with a recording. This dedicated agent API requires x402 payment regardless of visitor type. The ordinary website reader and KakaoTalk link previews retain their free access. Selectors are optional; duplicate or unknown query parameters are rejected. An ambiguous date returns 409. HEAD returns metadata or payment requirements without settling a payment.","parameters":[{"name":"date","in":"query","required":false,"description":"Published date. Omitted selects the latest published resource matching any other selectors.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"s","in":"query","required":false,"description":"Series ID from the free catalog; resolves dates shared by multiple series.","schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$","maxLength":160}},{"name":"e","in":"query","required":false,"description":"Entry ID from the free catalog; resolves dates shared by multiple records.","schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$","maxLength":160}},{"name":"index","in":"query","required":false,"description":"Zero-based recording index from the free catalog.","schema":{"type":"integer","minimum":0,"maximum":9999,"default":0}},{"name":"Range","in":"header","required":false,"description":"Single byte range, for example bytes=0-1023. Payment remains required before any audio bytes are returned.","schema":{"type":"string"}}],"security":[{"paymentSignature":[]},{"journalAccess":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"}},"responses":{"200":{"description":"Purchased recording bytes.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded settlement receipt after a newly settled payment.","schema":{"type":"string"}},"X-Journal-Access":{"description":"Opaque access grant for the purchased resource and version, valid for one hour from first settlement.","schema":{"type":"string"}}},"content":{"audio/mp4":{"schema":{"type":"string","format":"binary"}},"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"audio/wav":{"schema":{"type":"string","format":"binary"}},"audio/webm":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"206":{"description":"Purchased recording byte range.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded settlement receipt after a newly settled payment.","schema":{"type":"string"}},"X-Journal-Access":{"description":"Opaque access grant for the purchased resource and version, valid for one hour from first settlement.","schema":{"type":"string"}},"Content-Range":{"schema":{"type":"string"}},"Accept-Ranges":{"schema":{"type":"string","enum":["bytes"]}}},"content":{"audio/mp4":{"schema":{"type":"string","format":"binary"}},"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"audio/wav":{"schema":{"type":"string","format":"binary"}},"audio/webm":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid, repeated or unsupported selectors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Payment required: 0.05 USDC on Base (eip155:8453). The runtime PAYMENT-REQUIRED challenge is authoritative.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 challenge with Base USDC payment requirements and Bazaar discovery metadata.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"No published resource matches the selection.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Ambiguous date or entry; select series and entry IDs from the catalog.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"416":{"description":"The requested byte range is not satisfiable."},"503":{"description":"Payment or resource service is unavailable. Paid content is not returned.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}}}}},"components":{"securitySchemes":{"paymentSignature":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"Base64-encoded x402 v2 signed payment payload. Verification and settlement precede content delivery."},"journalAccess":{"type":"apiKey","in":"header","name":"X-Journal-Access","description":"Previously issued access grant bound to the paid resource, version and price."}}}}