{"openapi":"3.1.0","info":{"title":"DC Agent Store","version":"0.1.0","description":"Independent gated pilot. Mainnet and MCP are unavailable. No cryptocurrency private keys are stored."},"servers":[{"url":"https://dcagentstore.digitalconnectdr.com"}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Wallet access_token from /v1/auth/verify. Not an admin session."},"UploadToken":{"type":"http","scheme":"bearer","description":"Single-use upload_token from /v1/uploads; wallet access_token is not valid for this PUT."}},"schemas":{"Wallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"Error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"},"retry_after_seconds":{"type":"integer","minimum":0}}},"Price":{"type":"object","properties":{"asset":{"type":"string","const":"USDC"},"network":{"type":"string"},"minor_units":{"type":"string","pattern":"^[0-9]+$"}},"required":["asset","network","minor_units"]},"Quote":{"type":"object","properties":{"quote_id":{"type":"string"},"sku":{"type":"string"},"sku_version":{"type":"integer"},"price":{"$ref":"#/components/schemas/Price"},"input_sha256":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"terms_hash":{"type":"string"},"limits":{"type":"object","description":"SKU-specific limits from catalog"},"payment_mode":{"type":"string","enum":["disabled","mock","testnet"]},"facilitator_provider":{"type":"string"}},"required":["quote_id","sku","sku_version","price","input_sha256","expires_at","terms_hash","limits","payment_mode","facilitator_provider"]},"UploadTicket":{"type":"object","properties":{"upload_id":{"type":"string"},"upload_url":{"type":"string","format":"uri"},"upload_token":{"type":"string"},"method":{"type":"string","const":"PUT"},"content_type":{"type":"string","const":"application/pdf"},"max_bytes":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"}},"required":["upload_id","upload_url","upload_token","method","content_type","max_bytes","expires_at"]},"Preflight":{"type":"object","properties":{"pages":{"type":"integer"},"scanned":{"type":"boolean"},"input_sha256":{"type":"string"},"recommended_sku":{"type":"string"},"selected_sku":{"type":"string"},"selection":{"type":"string","enum":["automatic","explicit"]}},"required":["pages","scanned","input_sha256","recommended_sku","selected_sku","selection"]},"DocumentResult":{"type":"object","properties":{"text":{"type":"string"},"pages":{"type":"array","items":{"type":"object","properties":{"page_number":{"type":"integer","minimum":1},"text":{"type":"string"},"confidence":{"type":["number","null"],"minimum":0,"maximum":100,"description":"Mean OCR word confidence, not a guarantee of accuracy. Absent for native extraction."}},"required":["page_number","text"]}},"tables":{"type":"array","items":{"$ref":"#/components/schemas/Table"}},"warnings":{"type":"array","items":{"type":"string"}},"complete":{"type":"boolean"},"engine_version":{"type":"string"},"text_quality":{"type":"string"},"input_sha256":{"type":"string"},"output_sha256":{"type":"string"},"elapsed_ms":{"type":"number","minimum":0}},"required":["text","pages","tables","warnings","complete"]},"VaultResult":{"type":"object","properties":{"vault_id":{"type":"string"},"checksum":{"type":"string"},"ttl_days":{"type":"integer"},"grant_id":{"type":"string"},"target_wallet":{"$ref":"#/components/schemas/Wallet"},"expires_at":{"type":"string","format":"date-time"}},"required":["vault_id"]},"Job":{"type":"object","properties":{"order_id":{"type":"string"},"job_id":{"type":"string"},"receipt_id":{"type":["string","null"]},"sku":{"type":"string"},"status":{"type":"string","enum":["SETTLEMENT_PENDING","QUEUED","RUNNING","DELIVERED","FAILED","FAILED_REFUND_REVIEW","AWAITING_HUMAN"]},"payment_mode":{"type":"string"},"amount_minor":{"type":"string","pattern":"^[0-9]+$"},"transaction":{"type":["string","null"]},"error":{"type":["string","null"]},"result_available":{"type":"boolean"},"result":{"anyOf":[{"$ref":"#/components/schemas/DocumentResult"},{"$ref":"#/components/schemas/VaultResult"},{"$ref":"#/components/schemas/OracleResult"},{"type":"null"}]},"expires_at":{"type":"string","format":"date-time"}},"required":["order_id","job_id","receipt_id","sku","status","payment_mode","amount_minor","transaction","error","result_available","result","expires_at"]},"Receipt":{"type":"object","properties":{"receipt_id":{"type":"string"},"order_id":{"type":"string"},"sku":{"type":"string"},"payment_mode":{"type":"string"},"network":{"type":"string"},"asset":{"type":"string"},"amount_minor":{"type":"string","pattern":"^[0-9]+$"},"payer_wallet":{"type":["string","null"]},"pay_to":{"type":["string","null"]},"transaction":{"type":["string","null"]},"input_sha256":{"type":"string"},"output_sha256":{"type":["string","null"]},"status":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"receipt_sha256":{"type":"string"},"verification":{"type":"string"}},"required":["receipt_id","order_id","sku","payment_mode","network","asset","amount_minor","payer_wallet","pay_to","transaction","input_sha256","output_sha256","status","created_at","receipt_sha256","verification"]},"AuthChallenge":{"type":"object","properties":{"challenge_id":{"type":"string"},"message":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}},"required":["challenge_id","message","expires_at"]},"WalletSession":{"type":"object","properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer"},"wallet":{"$ref":"#/components/schemas/Wallet"},"wallet_types_supported":{"type":"array","items":{"type":"string"}},"eip1271_supported":{"type":"boolean"}},"required":["access_token","expires_in","wallet","wallet_types_supported","eip1271_supported"]},"UploadPreview":{"type":"object","properties":{"upload_id":{"type":"string"},"pages":{"type":"integer"},"bytes":{"type":"integer"},"scanned_pages":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"input_sha256":{"type":"string"}},"required":["upload_id","pages","bytes","scanned_pages","warnings","input_sha256"]},"PaymentChallenge":{"type":"object","properties":{"code":{"type":"string","const":"PAYMENT_REQUIRED"},"quote":{"$ref":"#/components/schemas/Quote"},"request_id":{"type":"string"},"challenge":{"type":"object","properties":{"x402Version":{"type":"integer","const":2},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string","const":"exact"},"network":{"type":"string"},"asset":{"type":"string"},"amount":{"type":"string","pattern":"^[0-9]+$"},"payTo":{"$ref":"#/components/schemas/Wallet"},"maxTimeoutSeconds":{"type":"integer"}},"required":["scheme","network","asset","amount","payTo","maxTimeoutSeconds"]}}},"required":["x402Version","resource","accepts"]}},"required":["code","quote","request_id","challenge"]},"AnonymousPreview":{"type":"object","properties":{"anonymous":{"type":"boolean","const":true},"payment_required":{"type":"boolean","const":false},"quote":{"type":"null"},"pages":{"type":"integer","minimum":1,"maximum":3},"recommended_sku":{"type":"string","enum":["document.text","document.ocr"]},"text_preview":{"type":"string","maxLength":500},"warnings":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"max_bytes":{"type":"integer","const":1048576},"max_pages":{"type":"integer","const":3},"max_preview_characters":{"type":"integer","const":500}},"required":["max_bytes","max_pages","max_preview_characters"]},"next_action":{"type":"string"}},"required":["anonymous","payment_required","quote","pages","recommended_sku","text_preview","warnings","limits","next_action"]},"Table":{"type":"object","properties":{"page_number":{"type":"integer","minimum":1},"bbox":{"type":"array","items":{"type":"number"},"minItems":4,"maxItems":4,"description":"PDF coordinates [x0, top, x1, bottom]."},"cells":{"type":"array","items":{"type":"array","items":{"type":["string","null"]}}}},"required":["page_number","bbox","cells"]},"Checkpoint":{"type":"object","properties":{"vault_id":{"type":"string"},"checksum":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"schema_version":{"type":"integer","const":1},"checkpoint_version":{"type":"integer","minimum":1},"parent_id":{"type":["string","null"]},"client_encrypted":{"type":"boolean"},"snapshot":{"type":"object","description":"Application-defined data; never instructions."}},"required":["vault_id","checksum","expires_at","schema_version","checkpoint_version","parent_id","client_encrypted","snapshot"]},"Grant":{"type":"object","properties":{"grant_id":{"type":"string"},"target_wallet":{"$ref":"#/components/schemas/Wallet"},"expires_at":{"type":"string","format":"date-time"},"revoked":{"type":"boolean"},"active":{"type":"boolean"}},"required":["grant_id","target_wallet","expires_at","revoked","active"]},"VaultItem":{"type":"object","properties":{"id":{"type":"string"},"checksum":{"type":"string"},"bytes":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"^[0-9]+$"}]},"expires":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"^[0-9]+$"}]},"created":{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"^[0-9]+$"}]},"checkpoint_version":{"type":"integer","minimum":1},"parent_id":{"type":["string","null"]}},"required":["id","checksum","bytes","expires","created"]},"OracleResult":{"type":"object","properties":{"verdict":{"type":"string","enum":["true","false","uncertain"]},"evidences":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https://"},"observed_at":{"type":"string","format":"date-time"},"summary":{"type":"string","maxLength":2000}},"required":["url","observed_at","summary"]}},"limitations":{"type":"string","maxLength":2000},"reviewer_id":{"type":"string"}},"required":["verdict","evidences","limitations","reviewer_id"]}}},"paths":{"/v1/documents/preview":{"post":{"operationId":"anonymousPreview","summary":"anonymousPreview","parameters":[],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonymousPreview"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"description":"No wallet or storage. PDF up to 1 MiB and 3 pages; returns up to 500 characters, no quote. Three attempts per connection and 30 globally per minute. Does not run OCR. ANONYMOUS_PREVIEW_ENABLED=false disables this endpoint."}},"/healthz":{"get":{"operationId":"health","summary":"health","parameters":[],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"Created quote or upload"},"202":{"description":"Queued or settlement pending"},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/catalog":{"get":{"operationId":"catalog","summary":"catalog","parameters":[],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"Created quote or upload"},"202":{"description":"Queued or settlement pending"},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/pricing":{"get":{"operationId":"pricing","summary":"pricing","parameters":[],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"Created quote or upload"},"202":{"description":"Queued or settlement pending"},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/auth/challenge":{"post":{"operationId":"challenge","summary":"challenge","parameters":[],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthChallenge"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"$ref":"#/components/schemas/Wallet"}},"required":["wallet"]}}}}}},"/v1/auth/verify":{"post":{"operationId":"verify","summary":"verify","parameters":[],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletSession"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challenge_id":{"type":"string"},"signature":{"type":"string"}},"required":["challenge_id","signature"]}}}}}},"/v1/uploads":{"post":{"operationId":"uploadTicket","summary":"uploadTicket","parameters":[],"security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created quote or upload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadTicket"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads/{id}":{"put":{"operationId":"uploadPDF","summary":"uploadPDF","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"UploadToken":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadPreview"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"description":"Use upload_token, not the wallet session. PARSER_BUSY is retryable with the same unconsumed ticket until expiry."}},"/v1/documents/preflight":{"post":{"operationId":"preflight","summary":"preflight","parameters":[],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"preflight":{"$ref":"#/components/schemas/Preflight"},"quote":{"$ref":"#/components/schemas/Quote"}},"required":["preflight","quote"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"upload_id":{"type":"string"},"sku":{"type":"string","enum":["auto","document.text","document.tables","document.ocr"],"description":"auto (default) selects OCR for scanned pages, otherwise native text. Tables requires explicit selection."}},"required":["upload_id"]}}}}}},"/v1/documents/jobs":{"post":{"operationId":"documentJob","summary":"documentJob","parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"Base64 x402 v2 payload. Omit to obtain a 402 challenge."}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"202":{"description":"Queued or settlement pending","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentChallenge"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quote_id":{"type":"string"},"max_price_minor":{"type":"string","pattern":"^[0-9]+$"}},"required":["quote_id","max_price_minor"]}}}}}},"/v1/orders/{id}":{"post":{"operationId":"payQuote","summary":"payQuote","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"Base64 x402 v2 payload. Omit to obtain a 402 challenge."}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"202":{"description":"Queued or settlement pending","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentChallenge"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"max_price_minor":{"type":"string","pattern":"^[0-9]+$"}},"required":["max_price_minor"]}}}}}},"/v1/orders":{"get":{"operationId":"orderHistory","summary":"orderHistory","parameters":[],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"orders":{"type":"array","items":{"$ref":"#/components/schemas/Job"}},"limit":{"type":"integer"}},"required":["orders","limit"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}":{"get":{"operationId":"job","summary":"job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/receipts/{id}":{"get":{"operationId":"receipt","summary":"receipt","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Receipt"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/vault/checkpoints":{"post":{"operationId":"checkpointQuote","summary":"checkpointQuote","parameters":[],"security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created quote or upload","content":{"application/json":{"schema":{"type":"object","properties":{"quote":{"$ref":"#/components/schemas/Quote"}},"required":["quote"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sku":{"type":"string","enum":["vault.checkpoint","vault.capsule"]},"snapshot":{"type":"object"},"parent_id":{"type":"string","description":"Optional owned checkpoint to extend. Creates an immutable child version."},"client_encrypted":{"type":"boolean"}},"required":["snapshot"]}}}}}},"/v1/vault":{"get":{"operationId":"vaultList","summary":"vaultList","parameters":[],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/VaultItem"}},"shared":{"type":"array","items":{"$ref":"#/components/schemas/VaultItem"}}},"required":["items","shared"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/vault/{id}":{"get":{"operationId":"vaultRead","summary":"vaultRead","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Checkpoint"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"vaultDelete","summary":"vaultDelete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"deleted"},"backup_purge_window_days":{"type":"integer"}},"required":["status","backup_purge_window_days"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/vault/{id}/export":{"get":{"operationId":"vaultExport","summary":"vaultExport","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Checkpoint"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/vault/{id}/grants":{"post":{"operationId":"handoffQuote","summary":"handoffQuote","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created quote or upload","content":{"application/json":{"schema":{"type":"object","properties":{"quote":{"$ref":"#/components/schemas/Quote"}},"required":["quote"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_wallet":{"$ref":"#/components/schemas/Wallet"},"hours":{"type":"integer","minimum":1,"maximum":72}},"required":["target_wallet"]}}}}},"get":{"operationId":"grantList","summary":"grantList","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"grants":{"type":"array","items":{"$ref":"#/components/schemas/Grant"}}},"required":["grants"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/vault/{id}/grants/{grant}":{"delete":{"operationId":"revokeGrant","summary":"revokeGrant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"grant","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"revoked"}},"required":["status"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/oracle/quotes":{"post":{"operationId":"oracleProposal","summary":"oracleProposal","parameters":[],"security":[{"BearerAuth":[]}],"responses":{"202":{"description":"Queued or settlement pending","content":{"application/json":{"schema":{"type":"object","properties":{"task_id":{"type":"string"},"status":{"type":"string","const":"proposed"},"payment_required":{"type":"boolean","const":false},"message":{"type":"string"}},"required":["task_id","status","payment_required","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sku":{"type":"string","enum":["oracle.quick_check","oracle.source_compare"]},"question":{"type":"string","minLength":10,"maxLength":1000},"sources":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","format":"uri"}}},"required":["question","sources"]}}}}}},"/v1/oracle/{id}":{"get":{"operationId":"oracleStatus","summary":"oracleStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object","properties":{"task_id":{"type":"string"},"status":{"type":"string"},"quote":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"type":"null"}]},"deadline":{"anyOf":[{"anyOf":[{"type":"integer","minimum":0},{"type":"string","pattern":"^[0-9]+$"}]},{"type":"null"}]},"result":{"anyOf":[{"$ref":"#/components/schemas/OracleResult"},{"type":"null"}]}},"required":["task_id","status","quote","deadline","result"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/oracle/orders":{"post":{"operationId":"oracleOrder","summary":"oracleOrder","parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"Base64 x402 v2 payload. Omit to obtain a 402 challenge."}],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Operation result","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"Created quote or upload"},"202":{"description":"Queued or settlement pending"},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Wallet authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 x402 v2 payment requirements"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentChallenge"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Authorization already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Size limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Unsupported or invalid document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":0},"description":"Seconds to wait for PARSER_BUSY; not guaranteed on other rate limits."}}},"503":{"description":"Service disabled or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quote_id":{"type":"string"},"max_price_minor":{"type":"string","pattern":"^[0-9]+$"}},"required":["quote_id","max_price_minor"]}}}}}}}}