{"openapi":"3.1.0","info":{"title":"keel.bot","description":"Independent delivery verification and endpoint reliability scores for agents. Pay per call over L402 (Lightning) or x402 (USDC). No accounts, no API keys. Signed Ed25519 receipts.","version":"0.1.0"},"paths":{"/v1/verify/delivery":{"post":{"summary":"Verify","operationId":"verify_v1_verify_delivery_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/score":{"get":{"summary":"Score","operationId":"score_v1_score_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Window Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/receipts/{rid}":{"get":{"summary":"Get Receipt","operationId":"get_receipt_v1_receipts__rid__get","parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/keel-keys.json":{"get":{"summary":"Pubkey","operationId":"pubkey__well_known_keel_keys_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/pubkey":{"get":{"summary":"Pubkey","operationId":"pubkey_v1_pubkey_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/l402":{"get":{"summary":"Well Known L402","operationId":"well_known_l402__well_known_l402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/docs/methodology":{"get":{"summary":"Methodology","operationId":"methodology_docs_methodology_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"summary":"Llms","operationId":"llms_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health","description":"Liveness + readiness: checks both SQLite stores are writable/readable.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/metrics":{"get":{"summary":"Metrics Endpoint","operationId":"metrics_endpoint_metrics_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"DeliveryRequest":{"properties":{"url":{"type":"string","title":"Url"},"method":{"type":"string","title":"Method","default":"GET"},"headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Headers"},"body":{"anyOf":[{},{"type":"null"}],"title":"Body"},"expected":{"$ref":"#/components/schemas/Expected"},"delivered_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivered Sha256"},"payment_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Ref"}},"type":"object","required":["url"],"title":"DeliveryRequest"},"Expected":{"properties":{"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status","default":200},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"json_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Json Keys"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"contains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Contains"},"min_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Bytes"},"max_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Bytes"},"max_latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Latency Ms"}},"type":"object","title":"Expected"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}