{"openapi":"3.1.0","info":{"title":"Moneytest Artifact Audit API","version":"1.10.0","description":"Deterministic artifact tools paid through standard x402 v2 Base USDC or an experimental Lightning HTTP 402 rail, plus a free bounded RecallROI preview. Raw input is not retained."},"servers":[{"url":"https://boulevard-mumbai-copyright-parameters.trycloudflare.com"}],"paths":{"/v1/x402/audit":{"post":{"summary":"Audit one artifact for Base USDC through x402 v2","description":"An unpaid call returns HTTP 402 with PAYMENT-REQUIRED for $0.10 USDC on eip155:8453. Retry with a valid PAYMENT-SIGNATURE; the facilitator verifies and settles before the result is returned.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Paid deterministic audit result","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"Base64-encoded x402 settlement receipt"}},"content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request"},"402":{"description":"x402 USDC payment required","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64-encoded x402 v2 payment requirements"}},"content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/l402/audit":{"post":{"summary":"Audit one Markdown or plain-text artifact","description":"First call returns 402 with a BOLT11 invoice and custom request-bound token. Pay, then retry the identical body with Authorization: Moneytest402 <token>:<preimage>. This is not conformant L402.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Paid deterministic audit result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request"},"402":{"description":"Lightning payment required","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"Moneytest402 token and BOLT11 invoice"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}}}}},"/v1/l402/nostr-event":{"post":{"summary":"Validate and inspect one signed Nostr event","description":"Checks NIP-01 structure, recomputes the event id, verifies the Schnorr signature, and summarizes tags and references. First call returns an experimental Moneytest402 challenge, not conformant L402.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["event"],"properties":{"event":{"type":"object"}}}}}},"responses":{"200":{"description":"Paid Nostr event inspection"},"400":{"description":"Invalid event"},"402":{"description":"Lightning payment required"}}}},"/v1/l402/nostr-validation-guide":{"get":{"summary":"Download the premium Nostr event-validation guide","description":"The first GET returns an experimental Moneytest402 challenge for 250 sats. Pay it, then retry the same URL with Authorization: Moneytest402 <token>:<preimage>.","responses":{"200":{"description":"Paid Markdown guide","content":{"text/markdown":{"schema":{"type":"string"}}}},"402":{"description":"Lightning payment required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}}}}},"/v1/research-scope-commit":{"post":{"summary":"Create a free deterministic commitment for a research scope","description":"Normalizes a non-confidential public scope and returns a SHA-256 commitment without storing the submitted content.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchScopeRequest"}}}},"responses":{"200":{"description":"Deterministic scope commitment"},"400":{"description":"Invalid request"},"413":{"description":"Scope exceeds 12 KB"}}}},"/v1/recallroi/preview":{"post":{"summary":"Run a free bounded RecallROI decision preview","description":"Ranks at most six combined opportunity and attempt records with permanent policy exclusions. Input is processed in memory, not retained, and no selected action is executed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecallRoiPreviewRequest"}}}},"responses":{"200":{"description":"Deterministic decision receipt and paid-tier next steps"},"400":{"description":"Invalid or excluded request"},"413":{"description":"Request exceeds service body limit"}}}},"/v1/recallroi/bothire":{"get":{"summary":"Inspect the paid BotHire direct-mode request schema","description":"Requires a paid BotHire access token for the existing RecallROI listing. Returns instructions without consuming or storing input.","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string"},"description":"Paid BotHire access token. Authorization: Bearer and X-BotHire-Access-Token are also accepted."}],"responses":{"200":{"description":"Authorized direct-mode instructions"},"401":{"description":"Missing, invalid or unpaid BotHire token"},"403":{"description":"Token belongs to another listing"}}},"post":{"summary":"Run the paid RecallROI BotHire diagnostic","description":"Verifies the paid BotHire access token, then ranks at most 20 combined opportunity and attempt records. Input is processed in memory and not retained.","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string"},"description":"Paid BotHire access token. Authorization: Bearer and X-BotHire-Access-Token are also accepted."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecallRoiBotHireRequest"}}}},"responses":{"200":{"description":"Paid deterministic diagnostic and receipt"},"400":{"description":"Invalid or excluded request"},"401":{"description":"Missing, invalid or unpaid BotHire token"},"403":{"description":"Token belongs to another listing"},"413":{"description":"Request exceeds service body limit"},"502":{"description":"BotHire access verification temporarily unavailable"}}}}},"components":{"schemas":{"AuditRequest":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"type":"string","minLength":1,"maxLength":100000},"requirements":{"type":"object","additionalProperties":false,"properties":{"minWords":{"type":"integer","minimum":0,"maximum":1000000},"maxWords":{"type":"integer","minimum":0,"maximum":1000000},"maxBytes":{"type":"integer","minimum":0,"maximum":1000000},"requiredHeadings":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":300}},"requiredPhrases":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":300}},"forbiddenPhrases":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":300}}}}}},"PaymentRequired":{"type":"object","required":["error","price_sats","invoice","token","payment_hash"],"properties":{"error":{"const":"payment_required"},"price_sats":{"type":"integer","enum":[50,250]},"invoice":{"type":"string"},"token":{"type":"string","description":"Custom HMAC token; not an L402 macaroon."},"payment_hash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"ResearchScopeRequest":{"type":"object","required":["scope"],"additionalProperties":false,"properties":{"scope":{"type":"string","minLength":1,"maxLength":12000},"acceptanceCriteria":{"type":"array","maxItems":30,"items":{"type":"string","maxLength":300}},"exclusions":{"type":"array","maxItems":30,"items":{"type":"string","maxLength":300}}}},"RecallRoiPreviewRequest":{"type":"object","required":["opportunities"],"description":"At most 6 combined opportunity and history records. Use non-confidential data without personal information.","properties":{"opportunities":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"object"}},"history":{"type":"array","maxItems":6,"items":{"type":"object"}},"policy":{"type":"object"}}},"RecallRoiBotHireRequest":{"type":"object","required":["opportunities"],"description":"Paid BotHire diagnostic input with at most 20 combined opportunity and history records. It may also be wrapped under input or payload.","properties":{"opportunities":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object"}},"history":{"type":"array","maxItems":20,"items":{"type":"object"}},"policy":{"type":"object"},"input":{"type":"object"},"payload":{"type":"object"}}}}}}