{"openapi":"3.1.0","info":{"title":"WithZero capabilities","version":"1.0.0","description":"Practical on-demand capabilities for agents to create, research, publish, remember, deploy, schedule, and act."},"servers":[{"url":"https://agents.withzero.xyz"}],"paths":{"/api/v1/memory/memories":{"post":{"operationId":"memory_post__api_v1_memories","summary":"Remember a fact or context in durable agent memory.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.remember","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ns":{"description":"Namespace under the caller (e.g. agent:coder). Defaults to \"default\".","type":"string","minLength":1,"maxLength":128},"key":{"description":"Caller-chosen key, unique per (owner, ns). Omit to auto-generate.","type":"string","minLength":1,"maxLength":256},"content":{"type":"string","minLength":1,"maxLength":8192,"description":"The memory text to remember."},"tags":{"description":"Optional tags for later filtering.","maxItems":32,"type":"array","items":{"type":"string"}},"pinned":{"description":"Mark as a \"standing order\": always surfaced by recall and never consolidated/suppressed by dreaming. Omit on update to leave it unchanged.","type":"boolean"}},"required":["content"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"key":{"type":"string"},"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"replayed":{"type":"boolean"},"balance_micros":{"type":"string","description":"Remaining refundable direct-rail prepaid balance in USDC micros. ZeroClick usage never changes it."}},"required":["id","key","billing_rail","replayed","balance_micros"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/contexts":{"post":{"operationId":"memory_post__api_v1_contexts","summary":"Recall memories matching a query (free).","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.recall","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ns":{"description":"Restrict recall to this namespace. Omit to search all of the caller's memories.","type":"string","minLength":1,"maxLength":128},"query":{"type":"string","minLength":1,"maxLength":4096,"description":"Natural-language query to recall against."},"limit":{"description":"Max memories to return (default 10).","type":"integer","minimum":1,"maximum":100}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ns":{"type":"string"},"key":{"type":"string"},"content":{"type":"string"},"distance":{"type":"number","description":"Cosine distance (0 = identical, smaller = more relevant)."},"pinned":{"type":"boolean","description":"A \"standing order\" — always surfaced ahead of distance-ranked rows, exempt from dreaming."},"is_summary":{"type":"boolean","description":"True if this row is a dreaming summary node. Pass its `id` to POST /api/v1/contexts/expand to read back the original memories it consolidated."}},"required":["id","ns","key","content","distance","pinned","is_summary"],"additionalProperties":false}}},"required":["memories"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/contexts/expand":{"post":{"operationId":"memory_post__api_v1_contexts_expand","summary":"Expand a recalled summary into the original memories it consolidated (free).","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.expand","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"summary_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The id of a summary memory (is_summary=true, as returned by recall) to expand into the original memories it consolidated."},"query":{"description":"Optional: rank the children by relevance to this query and return the top `limit` (default 10). Omit to return the whole cluster in chronological order (default 200).","type":"string","minLength":1,"maxLength":4096},"limit":{"description":"Max child memories to return (default 10 when `query` is set, else 200).","type":"integer","minimum":1,"maximum":200}},"required":["summary_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ns":{"type":"string"},"key":{"type":"string"},"content":{"type":"string"},"distance":{"description":"Cosine distance to `query` (smaller = more relevant). Present only when `query` was given.","type":"number"}},"required":["id","ns","key","content"],"additionalProperties":false}}},"required":["memories"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/deposits":{"post":{"operationId":"memory_post__api_v1_deposits","summary":"Deposit USDC into the prepaid memory balance (specify the amount via amount_usdc_micros in the request body; $0.10 funds ~10k memories — see GET /api/v1/rates).","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.1","sku":"memory.deposit","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amount_usdc_micros":{"type":"string","pattern":"^[1-9]\\d*$","description":"Amount to deposit, in USDC micros (1 USDC = 1_000_000). Positive integer; must match the paid amount."}},"required":["amount_usdc_micros"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"type":"string"},"balance_micros":{"type":"string","description":"Prepaid balance after the deposit, in USDC micros."}},"required":["owner","balance_micros"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]},"delete":{"operationId":"memory_delete__api_v1_deposits","summary":"Withdraw unspent prepaid balance.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.withdraw","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amount_micros":{"type":"string","pattern":"^[1-9]\\d*$","description":"Amount of unspent balance to withdraw, in USDC micros. Positive integer."}},"required":["amount_micros"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"type":"string"},"withdrawn_micros":{"type":"string"},"balance_micros":{"type":"string","description":"Prepaid balance after the withdrawal."},"refund_tx_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"On-chain USDC refund transaction hash."}},"required":["owner","withdrawn_micros","balance_micros","refund_tx_hash"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/buyer/link-codes":{"post":{"operationId":"memory_post__api_v1_buyer_link_codes","summary":"Mint a single-use code (10 min) that links another purchasing channel to this buyer account.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.buyer_link_code","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"},"expires_at":{"type":"string"},"buyer_id":{"type":"string"}},"required":["code","expires_at","buyer_id"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/buyer/links":{"post":{"operationId":"memory_post__api_v1_buyer_links","summary":"Present a link code minted on another channel: merges this channel into that buyer account.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.buyer_link","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","minLength":1}},"required":["code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"linked":{"type":"boolean","const":true},"buyer_id":{"type":"string"},"channel":{"type":"string"}},"required":["linked","buyer_id","channel"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/account":{"get":{"operationId":"memory_get__api_v1_account","summary":"Read balance + ledger + dreaming audit.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"memory.account","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"type":"string"},"balance_micros":{"type":"string"},"ledger":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"amount_micros":{"type":"string","description":"Signed: + deposit, − debit/withdrawal."},"created_at":{"type":"string"}},"required":["kind","amount_micros","created_at"],"additionalProperties":false}},"maintenance":{"type":"object","properties":{"consolidations_made":{"type":"number"},"contradicts_edges_found":{"type":"number"},"memories_decayed":{"type":"number"},"last_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["consolidations_made","contradicts_edges_found","memories_decayed","last_run_at"],"additionalProperties":false,"description":"What the server-managed dreaming lifecycle last did for this owner — the value behind the LLM debits."}},"required":["owner","balance_micros","ledger","maintenance"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["memory"]}},"/api/v1/memory/rates":{"get":{"operationId":"memory_get__api_v1_rates","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"embedding":{"type":"object","properties":{"model":{"type":"string"},"input_micros_per_mtokens":{"type":"string","description":"What a remember() debits per 1M input tokens of content. A typical fact (~75 tokens) costs ~10 micros."}},"required":["model","input_micros_per_mtokens"],"additionalProperties":false},"dreaming":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"input_micros_per_mtokens":{"type":"string"},"output_micros_per_mtokens":{"type":"string"}},"required":["input_micros_per_mtokens","output_micros_per_mtokens"],"additionalProperties":false},"description":"Per-model rates for the server-managed consolidation (\"dreaming\") lifecycle, billed reserve→settle at actual usage."},"free_operations":{"type":"array","items":{"type":"string"},"description":"Operations that debit nothing."},"pricing_notes":{"type":"string","description":"How direct refundable escrow and ZeroClick per-write usage fund writes, free reads, key management, storage, and managed lifecycle."}},"required":["embedding","dreaming","free_operations","pricing_notes"],"additionalProperties":false}}}}},"tags":["memory"]}},"/api/v1/memory/attestation":{"get":{"operationId":"memory_get__api_v1_attestation","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"privacy_tier":{"type":"string","description":"Current tier per docs/memory-tee-privacy-design.md."},"encryption_at_rest":{"type":"object","properties":{"scheme":{"type":"string"},"kms_key":{"type":"string"},"embeddings":{"type":"string","description":"The disclosed side-channel: vectors stay cleartext so pgvector can search them (closed by Tier B+)."}},"required":["scheme","kms_key","embeddings"],"additionalProperties":false},"enclave":{"type":"object","properties":{"status":{"type":"string","description":"Honest state of the confidential-compute rails."},"bound_image_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ONLY image the DEK-unwrap grant is bound to. Any other build — even validly attested — is denied the key."},"workload_identity_pool":{"type":"string"},"kms_grant":{"type":"string","description":"The operator-blindness grant to verify."}},"required":["status","bound_image_digest","workload_identity_pool","kms_grant"],"additionalProperties":false},"residual_risks":{"type":"array","items":{"type":"string"},"description":"What this deployment does NOT yet protect against — read before trusting."},"verify":{"type":"array","items":{"type":"string"},"description":"Commands a buyer can run to check the claims against GCP directly."}},"required":["privacy_tier","encryption_at_rest","enclave","residual_risks","verify"],"additionalProperties":false}}}}},"tags":["memory"]}},"/api/v1/inbox/inboxes":{"post":{"operationId":"inbox_post__api_v1_inboxes","summary":"Provision your inbox — call this FIRST (free, ~6-month lease keyed to your signed wallet; re-call to extend before it expires). Then: publish via POST /api/v1/events, long-poll GET /api/v1/inbox, ack handled events via POST /api/v1/inbox/ack, check the lease via GET /api/v1/inboxes/me. Receive other wallets’ events via POST /api/v1/subscriptions and external webhooks via POST /api/v1/connections. See the API description for the full workflow. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.provision","pricingVersion":1},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"type":"string","description":"Your wallet address; the inbox is keyed to it."},"expiresAt":{"type":"string","description":"ISO timestamp the lease is active until."},"messageTtlDays":{"type":"number","description":"How long delivered messages are retained."},"maxMessages":{"type":"number","description":"Maximum stored (unexpired) messages."},"lifetimeTopups":{"type":"number","description":"Number of times this lease has been extended."}},"required":["owner","expiresAt","messageTtlDays","maxMessages","lifetimeTopups"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/events":{"post":{"operationId":"inbox_post__api_v1_events","summary":"Publish an event into your inbox. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.publish","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"topic":{"type":"string","minLength":1,"maxLength":256,"description":"Dot-delimited topic, e.g. \"render.completed\"."},"payload":{"description":"Arbitrary JSON event body."},"attributes":{"description":"Optional flat metadata.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"idempotencyKey":{"description":"Repeated key for the same recipient is a no-op.","type":"string","maxLength":256}},"required":["topic","payload"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveries":{"type":"array","items":{"type":"object","properties":{"owner":{"type":"string","description":"Recipient inbox wallet."},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Stored message id (existing id when duplicate)."},"status":{"type":"string","enum":["delivered","duplicate","skipped_no_lease","skipped_full"]}},"required":["owner","id","status"],"additionalProperties":false},"description":"One entry per recipient: the publisher itself plus any subscribers."}},"required":["deliveries"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/inbox":{"get":{"operationId":"inbox_get__api_v1_inbox","summary":"Long-poll drain: return unacked events, optionally filtered by topic. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.drain","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"topic":{"type":"string"},"payload":{},"attributes":{"anyOf":[{},{"type":"null"}]},"publishedAt":{"type":"string"}},"required":["id","topic","payload","attributes","publishedAt"],"additionalProperties":false}},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Id of the last event returned; null when empty."}},"required":["events","cursor"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/inbox/ack":{"post":{"operationId":"inbox_post__api_v1_inbox_ack","summary":"Mark drained events handled so they stop appearing. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.ack","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ids":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":"Message ids to mark handled."}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"acked":{"type":"number","description":"Number of messages newly acked."}},"required":["acked"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/inbox/ack-link":{"post":{"operationId":"inbox_post__api_v1_inbox_ack_link","summary":"Mint a signed one-click ack link for one of your messages. Embed it in a hosted page so a human can clear the item without a wallet. Redeemed at GET/POST /api/v1/inbox/ack/redeem. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.ack-link","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Message id to mint a one-click ack link for."},"ttl_sec":{"description":"Link lifetime in seconds (default 7 days, max 30 days).","type":"integer","exclusiveMinimum":0,"maximum":2592000}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","description":"Public one-click ack URL. Embed it in a hosted page (e.g. a scheduler cdn dashboard); clicking it (with a confirm step) acks the message — no wallet/proof needed by the clicker."},"expires_at":{"type":"string"}},"required":["url","expires_at"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/inboxes/me":{"get":{"operationId":"inbox_get__api_v1_inboxes_me","summary":"Lease status and pending-message count. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.me","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"type":"string"},"expiresAt":{"type":"string"},"active":{"type":"boolean","description":"False once the lease has expired — top up to restore."},"messageTtlDays":{"type":"number"},"maxMessages":{"type":"number"},"lifetimeTopups":{"type":"number"},"pendingMessages":{"type":"number","description":"Unacked, unexpired messages waiting to be drained."}},"required":["owner","expiresAt","active","messageTtlDays","maxMessages","lifetimeTopups","pendingMessages"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/subscriptions":{"post":{"operationId":"inbox_post__api_v1_subscriptions","summary":"Subscribe your inbox to a publisher topic. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.subscribe","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fromWallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Publisher wallet whose events you want delivered to your inbox."},"topicPattern":{"type":"string","minLength":1,"maxLength":256,"description":"Topic glob, e.g. \"render.*\" or \"news.summary\"."},"trigger":{"description":"Optional action on a fresh match: a scheduler-run (dispatch a task run) or a webhook (signed URL callback).","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"scheduler-run"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","taskId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","format":"uri"},"secret":{"type":"string","minLength":8,"maxLength":256}},"required":["type","url"],"additionalProperties":false}]}},"required":["fromWallet","topicPattern"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"fromWallet":{"type":"string"},"topicPattern":{"type":"string"},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"scheduler-run"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","taskId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","format":"uri"},"secret":{"type":"string","minLength":8,"maxLength":256}},"required":["type","url"],"additionalProperties":false}]},{"type":"null"}]},"createdAt":{"type":"string"}},"required":["id","fromWallet","topicPattern","trigger","createdAt"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]},"get":{"operationId":"inbox_get__api_v1_subscriptions","summary":"List your subscriptions. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.subscriptions","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fromWallet":{"type":"string"},"topicPattern":{"type":"string"},"trigger":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"scheduler-run"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","taskId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","format":"uri"},"secret":{"type":"string","minLength":8,"maxLength":256}},"required":["type","url"],"additionalProperties":false}]},{"type":"null"}]},"createdAt":{"type":"string"}},"required":["id","fromWallet","topicPattern","trigger","createdAt"],"additionalProperties":false}}},"required":["subscriptions"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/subscriptions/{id}":{"delete":{"operationId":"inbox_delete__api_v1_subscriptions__id_","summary":"Delete a subscription. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.unsubscribe","pricingVersion":1},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/connections":{"post":{"operationId":"inbox_post__api_v1_connections","summary":"Register an external webhook source; returns its inbound URL + secret. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.connect","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":128,"description":"Human label for this source."},"sourceType":{"type":"string","enum":["github","stripe","generic"],"description":"Signature scheme + payload normalizer."},"secret":{"description":"HMAC secret. For github/stripe paste the provider secret; omit for generic to auto-generate.","type":"string","minLength":8,"maxLength":256}},"required":["name","sourceType"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"url":{"type":"string","description":"Inbound webhook URL to configure in the external system."},"secret":{"type":"string","description":"HMAC secret (shown once). Configure the external system to sign with it."},"createdAt":{"type":"string"}},"required":["id","name","sourceType","url","secret","createdAt"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]},"get":{"operationId":"inbox_get__api_v1_connections","summary":"List your webhook connections. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.connections","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"url":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","name","sourceType","url","createdAt"],"additionalProperties":false}}},"required":["connections"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/connections/{id}":{"delete":{"operationId":"inbox_delete__api_v1_connections__id_","summary":"Revoke a webhook connection. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.disconnect","pricingVersion":1},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/buyer/link-codes":{"post":{"operationId":"inbox_post__api_v1_buyer_link_codes","summary":"Mint a single-use code (10 min) that links another purchasing channel to this buyer account. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.buyer_link_code","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"},"expires_at":{"type":"string"},"buyer_id":{"type":"string"}},"required":["code","expires_at","buyer_id"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/inbox/buyer/links":{"post":{"operationId":"inbox_post__api_v1_buyer_links","summary":"Present a link code minted on another channel: merges this channel into that buyer account. 📖 Full guide: https://inbox.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"inbox.buyer_link","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","minLength":1}},"required":["code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"linked":{"type":"boolean","const":true},"buyer_id":{"type":"string"},"channel":{"type":"string"}},"required":["linked","buyer_id","channel"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["inbox"]}},"/api/v1/scheduler/tasks":{"post":{"operationId":"scheduler_post__api_v1_tasks","summary":"Create a recurring or on-demand task. Direct endpoint: max_amount_usdc_micros is refundable escrow and X-Pay-Amount-Micros must match it. ZeroClick endpoint: it is a seller-local lifetime execution cap; marketplace access/usage is authoritative and no seller escrow is created. Optional: schedule, max_sibling_calls, llm, tool_list, dependencies, env, notify_email, end_at. See GET /api/v1 and /llms.txt for rail-specific setup.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schedule":{"anyOf":[{"type":"object","properties":{"cron":{"type":"string","minLength":1,"description":"Raw 5-field cron expression (e.g. '0 7 * * *')."},"timezone":{"default":"UTC","description":"IANA timezone (default UTC).","type":"string"}},"required":["cron","timezone"],"additionalProperties":false},{"type":"object","properties":{"every":{"type":"string","enum":["minute","hourly","daily","weekly"]},"at":{"description":"HH:MM 24h time; required for 'daily' and 'weekly'.","type":"string","pattern":"^([01][0-9]|2[0-3]):[0-5][0-9]$"},"dayOfWeek":{"description":"Three-letter day of week; required for 'weekly'.","type":"string","enum":["mon","tue","wed","thu","fri","sat","sun"]},"timezone":{"default":"UTC","description":"IANA timezone (default UTC).","type":"string"}},"required":["every","timezone"],"additionalProperties":false}],"description":"Either a raw cron expression or a convenience shape; the convenience shape compiles to a 5-field cron string server-side."},"runtime":{"type":"string","enum":["python","node"],"description":"Sandbox runtime; 'python' or 'node'."},"source":{"type":"string","minLength":1,"description":"Verbatim code for the run, written to /workspace/<entrypoint>. It can reach the public internet, and four helpers are available as GLOBALS — no import, no keys, no setup: generate_text(...) for the built-in LLM (needs an `llm` profile on the task), call(sibling, path, body?, method?, max_price_micros?) to invoke another Zero capability through the per-run proxy, store_artifact(name, data, content_type?) for durable cdn hosting (needs `artifacts.enabled`), and request_continuation(delay_sec?) to schedule an immediate follow-up run when the work is larger than one run cap (chunk → persist progress externally → request_continuation() → exit 0; granted only on a clean exit, capped back-to-back). Call them directly — e.g. python `r = generate_text('hi')`, node `const r = await call('cdn','/x')`. (The explicit `from withzero_sdk import generate_text, call, store_artifact` / `import { generateText, call, storeArtifact } from './withzero-sdk.js'` also works but is optional.) `generate_text` accepts optional OpenRouter reasoning config. CALL() CONTRACT: every helper returns `{ status, body }` where `status` is the upstream HTTP status (int) and `body` is the parsed JSON response (or null). In node these are ASYNC — `await call(...)` / `await generate_text(...)`; in python they are SYNCHRONOUS — `r = call(...)` (no await). call() TARGETS, two kinds: (a) a FIRST-PARTY sibling by NAME (urlshortener/cdn/forms/screenshot/inbox) — billed a flat per-call fee, no max_price_micros needed. (b) ANY PAID marketplace capability by its capabilityId. PAID MARKETPLACE FLOW (discover-then-cap): the sandbox has public internet egress, so to call a paid third-party capability you FIRST discover its `capabilityId`, price, accepted payment protocol (x402 or MPP), and request path/body by querying Zero yourself at https://api.zero.xyz (capability search/get; the capability's OWN OpenAPI describes its request path + body). THEN call it as `call(capabilityId, path, body?, method?, max_price_micros)` — pass the capabilityId as the FIRST arg and max_price_micros (the most USDC micros you accept for this one call). The scheduler resolves the capabilityId server-side, pays via x402 (from a Base float) or MPP (from Tempo escrow) out of the escrow wallet, enforces your cap before signing, and refunds the difference — you never handle keys or sign anything. EXAMPLE (paid, python): `r = call(\"cap_abc123\", \"/v1/enrich\", {\"domain\": \"acme.com\"}, max_price_micros=50000)` — pays at most 0.05 USDC for one call to capability cap_abc123. ERROR CODES a call() may surface in the proxy response: PRICE_CAP_EXCEEDED (the paid challenge exceeded your max_price_micros — payment aborted before signing, nothing spent), PRICE_UNKNOWN (missing/invalid max_price_micros or capabilityId for a paid target), CAPABILITY_PROTOCOL_UNSUPPORTED (the capability offers neither x402 nor MPP), SIBLING_NOT_ALLOWED (target not in the task `tool_list`), CALL_CAP_EXCEEDED (per-run max_sibling_calls hit), SIBLING_PAYMENT_FAILED (resolution/settlement failed; reservation released). ALLOWLIST: a target (sibling name or capabilityId) is callable only when it is in the task `tool_list`, OR when `tool_list` is left open with `max_sibling_calls` > 0 (then `max_sibling_spend_micros` is REQUIRED and bounds total per-run paid spend). The full catalog + worked examples are at GET /api/v1 (the `sandbox` section)."},"entrypoint":{"type":"string","minLength":1,"description":"File name for `source` (e.g. 'main.py' or 'index.js')."},"dependencies":{"description":"Optional extra packages installed in the sandbox prelude; max 20 per runtime. **Always pin versions** — sandboxes install fresh on every run, so an unpinned package silently upgrades when a new major ships. Node: \"name@version\" or \"@scope/name@version\" (e.g. [\"mppx@0.7.0\", \"viem@2.21.0\"]). Python: \"name==version\" (e.g. [\"requests==2.31.0\"]).","type":"object","properties":{"python":{"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9._-]+(==[\\w.-]+)?$"}},"node":{"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(@[a-z0-9-]+\\/)?[a-z0-9-]+(@[\\w.-]+)?$"}}},"additionalProperties":false},"env":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$"},"additionalProperties":{"type":"string","maxLength":4096},"description":"BYO env vars injected into the sandbox. Never returned in any GET response."},"tool_list":{"description":"Allowlist of capability identifiers the run may proxy through — first-party sibling names (urlshortener/cdn/forms/screenshot/inbox) AND/OR marketplace capabilityIds. THREE states: OMIT the field → OPEN proxy when `max_sibling_calls` > 0 (reach ANY capability; `max_sibling_spend_micros` is then REQUIRED to bound spend) — with `max_sibling_calls` 0/omitted it is stored as DENY-ALL instead; send `[]` → DENY-ALL (every capability is blocked; the safe restriction default); send `[items]` → SCOPED to exactly those identifiers. An explicit `[]` is NOT open — only an omitted tool_list with `max_sibling_calls` > 0 is. Marketplace capabilityIds (and their pricing/protocol) are discovered via Zero's capability search at https://api.zero.xyz; first-party sibling names + their per-call openapi are listed at GET /api/v1/_siblings.","maxItems":64,"type":"array","items":{"type":"string","minLength":1,"maxLength":256}},"max_sibling_spend_micros":{"description":"Optional per-run sibling-spend ceiling in USDC micros (positive integer as string, or number up to 2^53-1). REQUIRED when `tool_list` is omitted AND `max_sibling_calls` > 0 (open proxy) so spend stays bounded; optional otherwise. Replaces the legacy max_sibling_calls × per-call-fee reservation in the run ceiling.","type":"string","pattern":"^[1-9]\\d*$"},"llm":{"description":"Enables the built-in LLM for your source (call generate_text(...) — pre-imported, auto-authenticated). Omit to disable LLM calls. Pick a profile (quick|standard|bulk|research|long); GET /api/v1/rates → llm_profiles lists each profile's models, default_model, and caps. FUNDING: the chosen profile's max_cost_usdc_micros_per_run is reserved into estimated_ceiling_micros every run (quick $0.05, standard $0.15, bulk $0.15, research $1.00, long $2.00), so raise max_amount_usdc_micros to match — or lower the reserve with max_cost_usdc_micros_per_run.","type":"object","properties":{"profile":{"default":"standard","description":"LLM workload envelope. Use 'quick', 'standard', 'bulk', 'research', or 'long'.","type":"string","enum":["quick","standard","bulk","research","long"]},"model":{"description":"Optional preferred model selector used when sandbox code omits a model.","type":"string","pattern":"^[a-z][a-z0-9-]*(\\/[A-Za-z0-9._:-]+)?$"},"models":{"description":"Optional allowlist of internal LLM aliases or provider/model ids this task may use. Defaults from the profile.","minItems":1,"maxItems":16,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9-]*(\\/[A-Za-z0-9._:-]+)?$"}},"max_calls_per_run":{"description":"Optional lower hard cap on LLM broker calls per run.","type":"integer","exclusiveMinimum":0,"maximum":100},"max_input_bytes_per_call":{"description":"Optional lower hard cap on UTF-8 prompt+system bytes per LLM call.","type":"integer","exclusiveMinimum":0,"maximum":1048576},"max_output_tokens_per_call":{"description":"Optional lower hard cap on generated tokens requested from the broker.","type":"integer","exclusiveMinimum":0,"maximum":128000},"max_cost_usdc_micros_per_run":{"description":"Optional lower per-run LLM spend ceiling in USDC micros (string or number). Added to the task claim ceiling.","type":"string","pattern":"^[1-9]\\d*$"}},"required":["profile"],"additionalProperties":false},"artifacts":{"description":"Optional durable artifact storage for sandbox code via the cdn capability. Omit to disable. Free in v1; bounded by per-run caps.","type":"object","properties":{"enabled":{"default":false,"description":"Opt in to durable artifact storage. Off by default.","type":"boolean"},"max_uploads_per_run":{"description":"Optional lower hard cap on artifact uploads per run; max 20. Default 5.","type":"integer","exclusiveMinimum":0,"maximum":20},"max_bytes_per_upload":{"description":"Optional lower hard cap on decoded bytes per artifact; max 10485760. Default 1048576.","type":"integer","exclusiveMinimum":0,"maximum":10485760}},"required":["enabled"],"additionalProperties":false},"max_runtime_sec":{"type":"integer","exclusiveMinimum":0,"maximum":900,"description":"Hard cap on per-run wall-clock seconds; max 900."},"max_sibling_calls":{"default":0,"description":"Hard cap on sibling proxy calls per run; max 1000. Defaults to 0 — no sibling calls; set it > 0 to let `source` use call(...).","type":"integer","minimum":0,"maximum":1000},"max_amount_usdc_micros":{"description":"Channel deposit ceiling in USDC micros (positive integer as string, or number up to 2^53-1). Bounds total lifetime spend. Size it >= estimated_ceiling_micros * (runs you want before a top-up); if it is below one ceiling the task pauses before its first run. LLM-enabled tasks reserve the profile cost cap per run — see the `llm` field.","type":"string","pattern":"^[1-9]\\d*$"},"notify_email":{"description":"Optional address for best-effort run-completion emails. When set, each scheduled (cron) or async `/trigger` run sends one email on finalize with its status, duration, cost, and the tail of stdout. Synchronous runs (`/runs`, `/webhook`) do not email — the result is returned inline. Delivery never blocks or fails a run.","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"end_at":{"description":"Optional ISO-8601 auto-stop time. The dispatch loop flips status to `completed` once now() >= end_at.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["runtime","source","entrypoint","max_runtime_sec","max_sibling_calls","max_amount_usdc_micros"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"next_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"channel_open_tx":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_amount_micros":{"type":"string"},"balance_available_micros":{"type":"string"},"estimated_ceiling_micros":{"type":"string"},"cron":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"type":"string"}},"required":["id","status","next_run_at","billing_rail","channel_id","channel_open_tx","max_amount_micros","balance_available_micros","estimated_ceiling_micros","cron","timezone"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","INVALID_CRON","UNSUPPORTED_RUNTIME","UNSUPPORTED_DEPENDENCY","UNKNOWN_SIBLING"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["IDEMPOTENCY_CONFLICT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"parameters":[{"name":"X-Pay-Amount-Micros","in":"header","required":true,"schema":{"type":"string","pattern":"^[1-9]\\d*$"},"description":"The actual amount charged for THIS call, in USDC micros (1 USDC = 1_000_000 micros), as a positive-integer decimal string with no decimal point, sign, or fractional part (e.g. \"1500000\" for $1.50). It MUST exactly equal the amount field mirrored in the request body — `max_amount_usdc_micros` on create (the upfront escrow deposit) and `top_up_amount_micros` on fund. The payment middleware reads this header to size the x402/MPP 402 challenge (it runs BEFORE the handler), and the handler independently reads the body field; the two are cross-checked. A missing, non-positive-integer, or mismatched value fails the cross-check and returns `400 PRICE_RESOLVER_FAILED`. This header is the charge that the resulting 402 payment challenge settles on-chain."},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1},"description":"A unique, client-generated key identifying ONE logical create. A retry that resends the SAME key with an identical body returns the EXISTING task — no duplicate task is created and the buyer is NOT charged a second time. Resending the SAME key with a DIFFERENT body is rejected with `409 IDEMPOTENCY_CONFLICT`. Required so this real-money create can be retried safely (e.g. after a network timeout) without risking a double charge."}],"tags":["scheduler"]}},"/api/v1/scheduler/tasks/clone":{"post":{"operationId":"scheduler_post__api_v1_tasks_clone","summary":"Clone an existing task spec into a fresh template (env values masked). 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.clone","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from_task_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Source task to clone the spec from. May be deleted or completed."}},"required":["from_task_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schedule":{"type":"object","properties":{"cron":{"type":"string"},"timezone":{"type":"string"}},"required":["cron","timezone"],"additionalProperties":false},"runtime":{"type":"string"},"source":{"type":"string"},"entrypoint":{"type":"string"},"dependencies":{"anyOf":[{},{"type":"null"}]},"tool_list":{"type":"array","items":{"type":"string"}},"llm":{"anyOf":[{},{"type":"null"}]},"artifacts":{"anyOf":[{},{"type":"null"}]},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"max_runtime_sec":{"type":"number"},"max_sibling_calls":{"type":"number"},"max_amount_usdc_micros":{"type":"string"},"notify_email":{"anyOf":[{"type":"string"},{"type":"null"}]},"end_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["runtime","source","entrypoint","dependencies","llm","artifacts","max_runtime_sec","max_sibling_calls","max_amount_usdc_micros","notify_email","end_at"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}":{"patch":{"operationId":"scheduler_patch__api_v1_tasks__id_","summary":"Update notify_email, end_at, or tool_list (additions only). 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.patch","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notify_email":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"end_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"tool_list":{"type":"array","items":{"type":"string"}},"max_sibling_spend_micros":{"description":"Raise the per-run sibling-spend ceiling (USDC micros; string, or number up to 2^53-1). Raises only — lowering forces clone+recreate.","type":"string","pattern":"^[1-9]\\d*$"},"max_runtime_sec":{"description":"Raise the per-run wall-clock cap in seconds (max 900). Raises only — lowering forces clone+recreate. 409 RUN_IN_FLIGHT while a run is claimed/running; retry after it finishes. Raising it raises the per-run ceiling reservation — top up if the balance drops below one ceiling.","type":"integer","exclusiveMinimum":0,"maximum":900}},"additionalProperties":false,"description":"Only `notify_email`, `end_at`, `tool_list` (additions only), `max_sibling_spend_micros` (raises only), and `max_runtime_sec` (raises only, no run in flight) may be patched. All other fields are immutable."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tool_list":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"max_sibling_spend_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_runtime_sec":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimated_ceiling_micros":{"type":"string"},"notify_email":{"anyOf":[{"type":"string"},{"type":"null"}]},"end_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","tool_list","max_sibling_spend_micros","max_runtime_sec","estimated_ceiling_micros","notify_email","end_at"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]},"get":{"operationId":"scheduler_get__api_v1_tasks__id_","summary":"Fetch a task. Owner-gated by proof. `env` is never returned. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.get","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"owner":{"type":"string"},"status":{"type":"string"},"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"cron":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"type":"string"},"runtime":{"type":"string"},"entrypoint":{"type":"string"},"source":{"type":"string"},"dependencies":{"anyOf":[{},{"type":"null"}]},"tool_list":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"llm":{"anyOf":[{},{"type":"null"}]},"notify_email":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_runtime_sec":{"type":"number"},"max_sibling_calls":{"type":"number"},"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Direct rail payment channel/challenge id. Null on the ZeroClick rail."},"channel_open_tx":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Direct rail payment reference. Null on the ZeroClick rail."},"channel_close_tx":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_amount_micros":{"type":"string","description":"Direct rail: refundable escrow ceiling. ZeroClick rail: seller-local lifetime execution cap; no buyer money is deposited here."},"cumulative_cost_micros":{"type":"string","description":"Actual finalized run usage plus active reservations, in micros. ZeroClick settlement is reported to the marketplace."},"latest_voucher_micros":{"type":"string"},"balance_available_micros":{"type":"string","description":"Direct rail: remaining escrow. ZeroClick rail: remaining seller-local execution cap, not a refundable monetary balance."},"estimated_ceiling_micros":{"type":"string","description":"Worst-case cost of one run given max_runtime_sec + max_sibling_calls. Compare against balance_available_micros to predict remaining runs."},"lifetime_cost_micros":{"type":"string"},"lifetime_runs":{"type":"number"},"avg_cost_per_run_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"next_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"end_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_paused_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_paused_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"recovery_hint":{"anyOf":[{"type":"object","properties":{"reason":{"type":"string"},"needs_top_up_micros":{"type":"string","description":"Minimum top_up_amount_micros that would let the task resume."},"recommended_top_up_micros":{"type":"string","description":"Suggested top-up that covers ~10 more worst-case runs."},"fund_route":{"type":"string","description":"Endpoint to call to increase direct escrow or the ZeroClick seller-local execution cap."},"delete_route":{"type":"string","description":"Stop the task. Direct rail refunds remaining escrow; ZeroClick rail has no seller-held balance to refund."}},"required":["reason","needs_top_up_micros","recommended_top_up_micros","fund_route","delete_route"],"additionalProperties":false},{"type":"null"}],"description":"Populated when status is paused_insufficient_funds. Tells the agent exactly how to recover."},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","owner","status","billing_rail","cron","timezone","runtime","entrypoint","source","dependencies","tool_list","llm","notify_email","max_runtime_sec","max_sibling_calls","channel_id","channel_open_tx","channel_close_tx","max_amount_micros","cumulative_cost_micros","latest_voucher_micros","balance_available_micros","estimated_ceiling_micros","lifetime_cost_micros","lifetime_runs","avg_cost_per_run_micros","next_run_at","last_run_at","end_at","last_paused_reason","last_paused_at","recovery_hint","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]},"delete":{"operationId":"scheduler_delete__api_v1_tasks__id_","summary":"Stop a task. Direct rail closes the payment channel and refunds remaining escrow. ZeroClick rail releases pending reservations and reports no refund because buyer billing is held by the marketplace. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.delete","pricingVersion":1},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"channel_close_tx":{"anyOf":[{"type":"string"},{"type":"null"}]},"seller_claimed_micros":{"type":"string"},"buyer_refunded_micros":{"type":"string"}},"required":["id","status","billing_rail","channel_close_tx","seller_claimed_micros","buyer_refunded_micros"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VOUCHER_BEHIND_CUMULATIVE"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/fund":{"post":{"operationId":"scheduler_post__api_v1_tasks__id__fund","summary":"Increase max_amount_micros. Direct endpoint: X-Pay-Amount-Micros must match top_up_amount_micros and the settled payment extends refundable escrow; no Idempotency-Key header required because replay protection is payment-bound. ZeroClick endpoint: the amount only raises the seller-local lifetime execution cap; marketplace usage remains authoritative and no seller escrow moves. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.fund","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"top_up_amount_micros":{"description":"Additional USDC to add to the task, in micros (1 USDC = 1_000_000 micros; string or number up to 2^53-1). Bumped onto max_amount_micros.","type":"string","pattern":"^[1-9]\\d*$"}},"required":["top_up_amount_micros"],"additionalProperties":false,"description":"Top up a task to extend its runway. Use when a task is `paused_insufficient_funds` or you want a margin before it pauses."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","description":"New status — flips from 'paused_insufficient_funds' to 'active' if the top-up covers the ceiling."},"max_amount_micros":{"type":"string","description":"New cap after the top-up."},"cumulative_cost_micros":{"type":"string"},"balance_available_micros":{"type":"string"},"estimated_ceiling_micros":{"type":"string"},"topped_up_micros":{"type":"string"},"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"fund_tx_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Direct rail: on-chain channel id. ZeroClick rail: null because no seller escrow moved."}},"required":["id","status","max_amount_micros","cumulative_cost_micros","balance_available_micros","estimated_ceiling_micros","topped_up_micros","billing_rail","fund_tx_hash"],"additionalProperties":false,"description":"Top-up confirmation. The new balance covers (max_amount - cumulative_cost); compare against estimated_ceiling_micros to see how many runs the topped-up balance can still cover."}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["IDEMPOTENCY_CONFLICT","CHANNEL_MISMATCH"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"parameters":[{"name":"X-Pay-Amount-Micros","in":"header","required":true,"schema":{"type":"string","pattern":"^[1-9]\\d*$"},"description":"The actual amount charged for THIS call, in USDC micros (1 USDC = 1_000_000 micros), as a positive-integer decimal string with no decimal point, sign, or fractional part (e.g. \"1500000\" for $1.50). It MUST exactly equal the amount field mirrored in the request body — `max_amount_usdc_micros` on create (the upfront escrow deposit) and `top_up_amount_micros` on fund. The payment middleware reads this header to size the x402/MPP 402 challenge (it runs BEFORE the handler), and the handler independently reads the body field; the two are cross-checked. A missing, non-positive-integer, or mismatched value fails the cross-check and returns `400 PRICE_RESOLVER_FAILED`. This header is the charge that the resulting 402 payment challenge settles on-chain."}],"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/env":{"put":{"operationId":"scheduler_put__api_v1_tasks__id__env","summary":"Replace the BYO env blob. KMS-re-encrypted at rest; never echoed. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.env.put","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"env":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$"},"additionalProperties":{"type":"string","maxLength":4096},"description":"Full replacement env map; submit `{}` to clear."}},"required":["env"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"env_key_version":{"type":"string"},"env_keys":{"type":"array","items":{"type":"string"}}},"required":["id","env_key_version","env_keys"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/pause":{"post":{"operationId":"scheduler_post__api_v1_tasks__id__pause","summary":"Manually pause a task. Future runs are skipped until resumed. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.pause","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body; pauses the task."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"last_paused_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_paused_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","status","last_paused_reason","last_paused_at"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/resume":{"post":{"operationId":"scheduler_post__api_v1_tasks__id__resume","summary":"Resume a paused task. 409 TASK_PAUSED_INSUFFICIENT_FUNDS if balance < ceiling. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.resume","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body; recomputes next_run_at and flips status to active."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"next_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"balance_available_micros":{"type":"string"},"estimated_ceiling_micros":{"type":"string"}},"required":["id","status","next_run_at","balance_available_micros","estimated_ceiling_micros"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/webhook":{"put":{"operationId":"scheduler_put__api_v1_tasks__id__webhook","summary":"Enable or rotate the task webhook secret (returned ONCE). Present it as Authorization: Bearer to POST /tasks/:id/webhook to trigger a run without a wallet. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.webhook.put","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body. Enables or rotates the task webhook secret."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"secret":{"type":"string","description":"The webhook secret — shown ONCE. Present it as `Authorization: Bearer <secret>` to POST /api/v1/tasks/:id/webhook."},"enabled":{"type":"boolean"}},"required":["secret","enabled"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]},"delete":{"operationId":"scheduler_delete__api_v1_tasks__id__webhook","summary":"Disable the task webhook (clears the secret). Idempotent. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.webhook.delete","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body. Disables the task webhook (clears the secret)."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/runs":{"post":{"operationId":"scheduler_post__api_v1_tasks__id__runs","summary":"Run a task right now, synchronously: claims, runs the sandbox inline, and blocks until the run finalizes, then returns it. Billed like a normal cron run. Use it to trigger an on-demand run or to test a cron you just set up before trusting the schedule. Does NOT advance next_run_at. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.runs.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body. Runs the task immediately and synchronously — blocks until the run finalizes, then returns it."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"run_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"task_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"trigger":{"type":"string"},"claimed_at":{"type":"string"}},"required":["run_id","task_id","status","trigger","claimed_at"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]},"get":{"operationId":"scheduler_get__api_v1_tasks__id__runs","summary":"Slim per-run rows, cursor-paginated (limit ≤50). 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.runs.list","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"exit_code":{"anyOf":[{"type":"number"},{"type":"null"}]},"cost_total_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"sibling_call_count":{"type":"number"},"trigger":{"type":"string"}},"required":["id","status","started_at","finished_at","exit_code","cost_total_micros","sibling_call_count","trigger"],"additionalProperties":false}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["runs","next_cursor"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/trigger":{"post":{"operationId":"scheduler_post__api_v1_tasks__id__trigger","summary":"Trigger a run asynchronously (non-blocking): pulls next_run_at to now; the dispatch tick runs it within ~1 min. Returns immediately. No-op on non-active tasks. Use POST /tasks/:id/runs for a synchronous run. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.trigger","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body. Triggers a run asynchronously — pulls the task's next run forward to now so the dispatch tick executes it within ~1 minute; returns immediately WITHOUT waiting for the result. Contrast POST /tasks/:id/runs (synchronous). A non-active task is a safe no-op."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"task_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"next_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"enqueued":{"type":"boolean","description":"true if next_run_at was pulled forward; false if the task was not active (no-op)."}},"required":["task_id","status","next_run_at","enqueued"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/enqueue":{"post":{"operationId":"scheduler_post__api_v1_tasks__id__enqueue","summary":"DEPRECATED — use POST /tasks/:id/trigger. Behaves identically (async, non-blocking). 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.enqueue","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false,"description":"Empty body. Triggers a run asynchronously — pulls the task's next run forward to now so the dispatch tick executes it within ~1 minute; returns immediately WITHOUT waiting for the result. Contrast POST /tasks/:id/runs (synchronous). A non-active task is a safe no-op."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"task_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"next_run_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"enqueued":{"type":"boolean","description":"true if next_run_at was pulled forward; false if the task was not active (no-op)."}},"required":["task_id","status","next_run_at","enqueued"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","IMMUTABLE_FIELD","IMMUTABLE_TOOL_REMOVAL"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_PAUSED_INSUFFICIENT_FUNDS","TASK_PAUSED_MANUAL","RUN_IN_FLIGHT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/tasks/{id}/ledger":{"get":{"operationId":"scheduler_get__api_v1_tasks__id__ledger","summary":"Cursor-paginated task audit. Direct rail: authoritative append-only money ledger. ZeroClick rail: operational rows only; ZeroClick marketplace usage is authoritative for buyer billing. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.tasks.ledger.list","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"authoritative_billing":{"type":"string","enum":["scheduler_ledger","zeroclick_marketplace"],"description":"Direct buyer money is authoritative in this ledger. ZeroClick buyer billing is authoritative in the marketplace usage ledger."},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string"},"amount_micros":{"type":"string","description":"Signed; positive = inbound, negative = outbound."},"balance_available_after":{"type":"string"},"balance_reserved_after":{"type":"string"},"on_chain_tx":{"anyOf":[{"type":"string"},{"type":"null"}]},"run_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"created_at":{"type":"string"}},"required":["id","kind","amount_micros","balance_available_after","balance_reserved_after","on_chain_tx","run_id","metadata","created_at"],"additionalProperties":false}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["billing_rail","authoritative_billing","entries","next_cursor"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"410":{"description":"Resource is gone (deleted / completed)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_DELETED","TASK_COMPLETED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/runs/{id}":{"get":{"operationId":"scheduler_get__api_v1_runs__id_","summary":"Deep-dive single run with truncated stdout/stderr + logs_url. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.runs.get","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"task_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"trigger":{"type":"string"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimed_at":{"type":"string"},"heartbeat_at":{"type":"string"},"exit_code":{"anyOf":[{"type":"number"},{"type":"null"}]},"stdout":{"anyOf":[{"type":"string"},{"type":"null"}]},"stderr":{"anyOf":[{"type":"string"},{"type":"null"}]},"cost_daytona_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"cost_overhead_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"cost_siblings_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"cost_total_micros":{"anyOf":[{"type":"string"},{"type":"null"}]},"sibling_call_count":{"type":"number"},"daytona_sandbox_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"logs_url":{"type":"string"},"artifacts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"path":{"type":"string"},"bytes":{"type":"number"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"}},"required":["name","url","path","bytes","content_type","created_at"],"additionalProperties":false},"description":"Durable artifacts stored by the run via the cdn capability. Fetchable by URL."}},"required":["id","task_id","status","trigger","started_at","finished_at","claimed_at","heartbeat_at","exit_code","stdout","stderr","cost_daytona_micros","cost_overhead_micros","cost_siblings_micros","cost_total_micros","sibling_call_count","daytona_sandbox_id","logs_url","artifacts"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["TASK_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/api/v1/scheduler/owner/usage":{"get":{"operationId":"scheduler_get__api_v1_owner_usage","summary":"Cross-task usage rollup for the caller. current_balance_micros is refundable escrow on the direct rail and a non-refundable seller-local execution cap on the ZeroClick rail. 📖 Full guide: https://scheduler.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"scheduler.owner.usage","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"billing_rail":{"type":"string","enum":["direct","zeroclick"]},"total_spend_micros":{"type":"string"},"total_runs":{"type":"number"},"current_balance_micros":{"type":"string","description":"Direct rail: aggregate remaining escrow. ZeroClick rail: aggregate remaining seller-local execution cap, not refundable money."},"top_tasks":{"type":"array","items":{"type":"object","properties":{"task_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"lifetime_cost_micros":{"type":"string"},"lifetime_runs":{"type":"number"}},"required":["task_id","lifetime_cost_micros","lifetime_runs"],"additionalProperties":false}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["billing_rail","total_spend_micros","total_runs","current_balance_micros","top_tasks","next_cursor"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"429":{"description":"Rate-limited","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["RATE_LIMIT"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["scheduler"]}},"/scheduler/api/v1":{"get":{"operationId":"scheduler_get__api_v1","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":{},"description":"The full scheduler agent catalog: `getting_started` (minimal + full_walkthrough), `key_concepts`, the `sandbox` section (the call()/generate_text/store_artifact contract with signatures, return shapes, the discover-then-cap flow for paid marketplace capabilities, and worked examples), the `lifecycle` route map, `error_codes`, and `discovery_urls`."}}}}},"summary":"📖 Full guide: https://scheduler.withzero.xyz/llms.txt","tags":["scheduler"]}},"/api/v1/scheduler/rates":{"get":{"operationId":"scheduler_get__api_v1_rates","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"daytona_per_second_micros":{"type":"string","description":"Per-second Daytona sandbox cost. Multiplied by max_runtime_sec for the runtime term of the ceiling."},"sibling_fee_micros":{"type":"string","description":"Flat per-sibling-call fee. Multiplied by max_sibling_calls for the siblings term of the ceiling."},"overhead_per_run_micros":{"type":"string","description":"Fixed per-run overhead. Always added once to the ceiling."},"dep_install_per_second_micros":{"type":"string","description":"Per-second cost charged for the pip/npm install prelude. Same rate as daytona today."},"dep_install_budget_per_pkg_sec":{"type":"number","description":"Budget seconds reserved per declared package, multiplied into the ceiling at dep_install_per_second_micros. Sized from real Daytona benchmarks (worst observed ~2.5s/dep on a cold pip cache; budget gives ~50% headroom). Set conservatively so a buyer who pays the ceiling can fund the install AND the runtime."},"max_runtime_sec_hard_cap":{"type":"number","description":"Server-enforced upper bound on max_runtime_sec — requests above this 400."},"max_sibling_calls_hard_cap":{"type":"number","description":"Server-enforced upper bound on max_sibling_calls — requests above this 400."},"max_llm_calls_hard_cap":{"type":"number","description":"Server-enforced upper bound on per-run LLM calls. Profile and task config may lower this."},"llm_profiles":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"default_model":{"type":"string"},"models":{"type":"array","items":{"type":"string"}},"max_calls_per_run":{"type":"number"},"max_input_bytes_per_call":{"type":"number"},"max_output_tokens_per_call":{"type":"number"},"max_cost_usdc_micros_per_run":{"type":"string"}},"required":["default_model","models","max_calls_per_run","max_input_bytes_per_call","max_output_tokens_per_call","max_cost_usdc_micros_per_run"],"additionalProperties":false},"description":"Built-in LLM workload profiles. Actual LLM charges are reported after each call and capped per run by the selected profile/task override."},"llm_models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"string"}},"provider":{"type":"string"},"description":{"type":"string"},"max_output_tokens":{"type":"number"},"input_usdc_micros_per_million_tokens":{"type":"string"},"output_usdc_micros_per_million_tokens":{"type":"string"}},"required":["aliases","provider","description","max_output_tokens","input_usdc_micros_per_million_tokens","output_usdc_micros_per_million_tokens"],"additionalProperties":false},"description":"Per-model billing basis (>= OpenRouter list price) and output ceiling. The per-call reservation is roughly input_bytes*input_rate + (max_output_tokens + any reasoning budget)*output_rate; pick a model and size max_output_tokens so that fits the profile's max_cost_usdc_micros_per_run, otherwise the call 402s with LLM_BUDGET_EXCEEDED."},"llm_model_aliases":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Alias → canonical model id (e.g. 'reasoning' → 'openai/gpt-5.5'). A models allowlist or selector may use either form."}},"required":["daytona_per_second_micros","sibling_fee_micros","overhead_per_run_micros","dep_install_per_second_micros","dep_install_budget_per_pkg_sec","max_runtime_sec_hard_cap","max_sibling_calls_hard_cap","max_llm_calls_hard_cap","llm_profiles","llm_models","llm_model_aliases"],"additionalProperties":false,"description":"Static rates for cost prediction. Per-run ceiling = max_runtime_sec*daytona_per_second_micros + max_sibling_calls*sibling_fee_micros + (declared dependency count)*dep_install_budget_per_pkg_sec*dep_install_per_second_micros + (if llm set) the profile max_cost_usdc_micros_per_run + overhead_per_run_micros. This is exactly what dispatch reserves against `max_amount` per run and what tasks-create echoes as `estimated_ceiling_micros`."}}}}},"summary":"📖 Full guide: https://scheduler.withzero.xyz/llms.txt","tags":["scheduler"]}},"/api/v1/scheduler/_siblings":{"get":{"operationId":"scheduler_get__api_v1__siblings","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"siblings":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"openapi_url":{"type":"string"}},"required":["name","description","openapi_url"],"additionalProperties":false}}},"required":["siblings"],"additionalProperties":false}}}}},"summary":"📖 Full guide: https://scheduler.withzero.xyz/llms.txt","tags":["scheduler"]}},"/api/v1/deploy/apps":{"post":{"operationId":"deploy_post__api_v1_apps","summary":"Node.js hosting: ship the Node app you built locally, unchanged — full server runtime on Cloud Run with a dedicated Postgres. Native modules OK. App reads DATABASE_URL + listens on PORT. Filesystem is writable but ephemeral (scale-to-zero) — keep durable state in Postgres. Durable /data file storage (1 GiB included).","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.6","sku":"deploy.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"source":{"type":"string","minLength":1,"description":"Base64-encoded zip of your Node app (must contain a top-level package.json with a `start` script). Runtime is Node."},"term_fee_micros":{"description":"Direct rail only: per-term hosting fee in micro-USDC. MUST equal the X-Pay-Amount-Micros header and current termFeeMicros. Omit through ZeroClick; its app-terms usage ledger is authoritative.","type":"string","pattern":"^[1-9]\\d*$"},"env":{"description":"Extra environment variables for your app, KMS-encrypted at rest. DATABASE_URL / PORT / ZERO_* are injected at deploy — do not set them.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"slug":{"description":"Subdomain to serve at (<slug>.withzero.xyz). Lowercase letters, digits, hyphens. Defaults to a generated id. A taken slug is a 409 SLUG_TAKEN before any charge.","type":"string","minLength":1,"maxLength":63},"ackEphemeral":{"description":"Acknowledge the filesystem is ephemeral: required to deploy an app whose package.json depends on sqlite3/better-sqlite3 (else 400 SQLITE_NOT_DURABLE, before any charge). Durable state belongs in the injected DATABASE_URL Postgres.","type":"boolean"}},"required":["source"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"slug":{"type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"null on a fresh accept — poll GET /api/v1/apps/:id for the live serving URL. An idempotent replay returns the URL once the deploy has persisted it."},"status":{"type":"string","description":"'building' on a fresh accept; an idempotent replay returns the app's current status. Poll GET /api/v1/apps/:id for progress."},"billing_rail":{"type":"string","enum":["direct","zeroclick","internal","key"],"description":"Which rail paid for this term: 'direct' = an on-chain USDC charge, 'zeroclick' = a marketplace term grant, 'key' = the buyer account's prepaid balance drawn by an API key, 'internal' = no money moved."},"replayed":{"type":"boolean"}},"required":["appId","slug","url","status","billing_rail","replayed"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]},"get":{"operationId":"deploy_get__api_v1_apps","summary":"List your apps.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.list","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"apps":{"type":"array","items":{"type":"object","properties":{"appId":{"type":"string"},"slug":{"type":"string"},"status":{"type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Real Cloud Run serving URL (svc.uri), or null before the first deploy persists it."},"termExpiresAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 hosting-term expiry, or null before the first term is set."},"creditsMicros":{"type":"string","description":"Prepaid outbound-call balance in micro-USDC, available (net of holds for in-flight outbound calls) — the same number GET /api/v1/apps/:id reports."},"createdAt":{"type":"string"}},"required":["appId","slug","status","url","termExpiresAt","creditsMicros","createdAt"],"additionalProperties":false}}},"required":["apps"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/apps/{id}/renew":{"post":{"operationId":"deploy_post__api_v1_apps__id__renew","summary":"Extend an app hosting term.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.6","sku":"deploy.renew","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"term_fee_micros":{"description":"Direct rail only: per-term hosting fee in micro-USDC. MUST equal X-Pay-Amount-Micros. Omit through ZeroClick; its app-terms usage ledger is authoritative.","type":"string","pattern":"^[1-9]\\d*$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"termExpiresAt":{"type":"string","description":"The new hosting-term expiry after this renewal (ISO-8601)."},"resumed":{"type":"boolean","description":"True when this renewal brought a paused (lapsed) app back — a redeploy from its last source was queued."},"billing_rail":{"type":"string","enum":["direct","zeroclick","key"],"description":"Which rail paid for this term: 'direct' = an on-chain USDC charge, 'zeroclick' = a marketplace term grant, 'key' = the buyer account's prepaid balance drawn by an API key."},"replayed":{"type":"boolean"}},"required":["appId","termExpiresAt","resumed","billing_rail","replayed"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/apps/{id}/credits":{"post":{"operationId":"deploy_post__api_v1_apps__id__credits","summary":"Buy prepaid credits for outbound Zero calls.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"1","sku":"deploy.credits","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"credit_micros":{"type":"string","pattern":"^[1-9]\\d*$","description":"Credits to buy in micro-USDC (1:1 USD). MUST equal the X-Pay-Amount-Micros header. Capped per purchase at creditsTopUpCapMicros (GET /api/v1/rates)."}},"required":["credit_micros"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"creditsMicros":{"type":"string","description":"The app's prepaid credit balance after this top-up (micro-USDC)."}},"required":["appId","creditsMicros"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/credits":{"post":{"operationId":"deploy_post__api_v1_credits","summary":"Fund your buyer account balance — the shared purse every app created with an API key spends.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"1","sku":"deploy.account_credits","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"credit_micros":{"type":"string","pattern":"^[1-9]\\d*$","description":"Credits to buy in micro-USDC (1:1 USD). MUST equal the X-Pay-Amount-Micros header. Capped per purchase at creditsTopUpCapMicros (GET /api/v1/rates)."}},"required":["credit_micros"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accountId":{"type":"string","description":"The buyer account whose shared balance was funded — the same id GET /api/v1/account reports."},"creditsMicros":{"type":"string","description":"The account's prepaid balance after this top-up (micro-USDC). Every app on this purse spends it."}},"required":["accountId","creditsMicros"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR","BAD_REQUEST"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"401":{"description":"Authentication required or token expired","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["ZEROCLICK_SIGNATURE_INVALID"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"403":{"description":"Forbidden by policy","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["NOT_OWNER"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["deploy"]}},"/api/v1/deploy/apps/{id}/deployments":{"post":{"operationId":"deploy_post__api_v1_apps__id__deployments","summary":"Redeploy new source within the current term.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.deploy","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"source":{"type":"string","minLength":1,"description":"Base64-encoded zip of the new app version (top-level package.json + `start` script)."},"env":{"description":"Replacement environment variables, KMS-encrypted at rest. Omit to keep the existing env.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"ackEphemeral":{"description":"Acknowledge the filesystem is ephemeral: required to deploy an app whose package.json depends on sqlite3/better-sqlite3 (else 400 SQLITE_NOT_DURABLE). Durable state belongs in the injected DATABASE_URL Postgres.","type":"boolean"}},"required":["source"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"deploymentId":{"type":"string"},"status":{"type":"string","description":"'building' on a fresh accept (and while a build is in flight); an idempotent replay of a finished deployment returns its terminal status ('live'/'failed'). Poll GET /api/v1/apps/:id for progress."}},"required":["appId","deploymentId","status"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/apps/{id}":{"get":{"operationId":"deploy_get__api_v1_apps__id_","summary":"Get app status, URL, term + credits.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.get","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"slug":{"type":"string"},"status":{"type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Real Cloud Run serving URL (svc.uri), or null before the first deploy persists it."},"termExpiresAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 hosting-term expiry, or null before the first term is set."},"creditsMicros":{"type":"string","description":"Prepaid outbound-call balance in micro-USDC, available (net of holds for in-flight outbound calls). MAY BE NEGATIVE: metered runtime/keep-warm usage debits never block; top up to clear the debt before the exhaustion grace period pauses the app."},"purse":{"type":"string","enum":["app","account"],"description":"Which balance this app spends: 'app' is its own prepaid credits, 'account' is the shared balance of the buyer account that created it. Top up the matching one — an agent should never have to guess which number creditsMicros above refers to."},"keepWarm":{"type":"boolean","description":"Whether the keep-warm add-on (minInstances 1, idle billed from credits) is enabled."},"logsUrl":{"type":"string","description":"Where to tail this app's build + runtime logs (GET /api/v1/apps/:id/logs)."},"createdAt":{"type":"string"}},"required":["appId","slug","status","url","termExpiresAt","creditsMicros","purse","keepWarm","logsUrl","createdAt"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]},"patch":{"operationId":"deploy_patch__api_v1_apps__id_","summary":"Update app env / scale.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.update","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"env":{"description":"Replacement environment variables (full set), KMS-encrypted at rest. Applied on the next redeploy.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"scale":{"description":"Real Cloud Run scale knobs: cpu <= \"2\", memory <= \"1Gi\", maxInstances 1..10 (all applied, clamped, on the next deploy); keepWarm true|false (applied immediately, billed from credits).","type":"object","properties":{"maxInstances":{"description":"Max concurrent instances, clamped to 1..10. Applied on the next redeploy.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"memory":{"description":"Per-instance memory, e.g. \"512Mi\". Clamped to at most \"1Gi\". Applied on the next redeploy.","type":"string"},"cpu":{"description":"Per-instance vCPUs, e.g. \"1\". Clamped to at most \"2\". Applied on the next redeploy.","type":"string"},"keepWarm":{"description":"Keep one instance always warm (minInstances 1) instead of scale-to-zero. Applied immediately when live — no redeploy. Idle time is billed from prepaid credits at the idle rates in GET /api/v1/rates; enabling requires a minimum credit balance (else 402 INSUFFICIENT_CREDITS) and it auto-disables if credits run out.","type":"boolean"}},"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"updated":{"type":"array","items":{"type":"string"},"description":"Which fields were stored (e.g. [\"env\",\"scale\",\"keepWarm\"])."},"redeployRequired":{"type":"boolean","description":"True when env/cpu/memory/maxInstances changed (they apply on the next deploy). A pure keepWarm change applies immediately."},"scalingApplied":{"description":"Present on a keepWarm change targeting a live app: whether the Cloud Run scaling update took effect. false = retry the PATCH. Disabling keepWarm is NOT stored until the scale-down succeeds (idle keeps billing until then).","type":"boolean"}},"required":["appId","updated","redeployRequired"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]},"delete":{"operationId":"deploy_delete__api_v1_apps__id_","summary":"Tear down the app.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.delete","pricingVersion":1},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"status":{"type":"string","description":"'deleting' — teardown has been queued. GET /api/v1/apps/:id keeps reporting the app's pre-delete status (e.g. 'live') while the worker tears resources down; once it flips the app to 'deleted', GET starts returning 404. Poll until the 404."}},"required":["appId","status"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/apps/{id}/logs":{"get":{"operationId":"deploy_get__api_v1_apps__id__logs","summary":"Tail build + runtime logs.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.logs","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appId":{"type":"string"},"entries":{"type":"array","items":{"type":"object","properties":{"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"severity":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"string","description":"'build' or 'runtime'."},"message":{"type":"string"}},"required":["timestamp","severity","source","message"],"additionalProperties":false}}},"required":["appId","entries"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/buyer/link-codes":{"post":{"operationId":"deploy_post__api_v1_buyer_link_codes","summary":"Mint a single-use code (10 min) that links another purchasing channel to this buyer account.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.buyer_link_code","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"},"expires_at":{"type":"string"},"buyer_id":{"type":"string"}},"required":["code","expires_at","buyer_id"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/buyer/links":{"post":{"operationId":"deploy_post__api_v1_buyer_links","summary":"Present a link code minted on another channel: merges this channel into that buyer account.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.buyer_link","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","minLength":1}},"required":["code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"linked":{"type":"boolean","const":true},"buyer_id":{"type":"string"},"channel":{"type":"string"}},"required":["linked","buyer_id","channel"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["deploy"]}},"/api/v1/deploy/account":{"get":{"operationId":"deploy_get__api_v1_account","summary":"Your buyer account: shared credit balance, open holds, live apps, live keys.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.account","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accountId":{"type":"string","description":"Your seller-local buyer account id (byr_…). Stable across wallets and channels you have linked."},"creditsMicros":{"type":"string","description":"Stored account balance in micro-USDC. MAY BE NEGATIVE: metered runtime and storage debits never block."},"openHoldsMicros":{"type":"string","description":"Sum of holds taken for in-flight outbound calls, not yet settled. Not spent — a hold is released in full when its call fails."},"availableMicros":{"type":"string","description":"creditsMicros minus openHoldsMicros — the number a new charge is checked against. A 402 INSUFFICIENT_CREDITS reports this figure."},"liveApps":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Apps of yours holding (or about to hold) a running service. Deleted and failed apps are not counted."},"liveKeys":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Unrevoked API keys on this account. Revoked keys stay listed by GET /api/v1/keys but are not counted here."},"topUp":{"type":"string","description":"The route that adds credits to this balance. Funding takes a wallet proof; a key can spend this balance but never create it."}},"required":["accountId","creditsMicros","openHoldsMicros","availableMicros","liveApps","liveKeys","topUp"],"additionalProperties":false}}}},"401":{"description":"Authentication required or token expired","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["KEY_INVALID","UNAUTHORIZED","ZEROCLICK_SIGNATURE_INVALID"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"403":{"description":"Forbidden by policy","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["NOT_OWNER"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["deploy"]}},"/api/v1/deploy/keys":{"post":{"operationId":"deploy_post__api_v1_keys","summary":"Mint an API key for this buyer account. The secret is returned exactly once and is never recoverable.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.keys_create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"description":"Optional label for this key, e.g. the agent or host that will hold it. Shown in GET /api/v1/keys.","type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"Public key id (key_…) — safe to log. Use it to revoke."},"key":{"type":"string","description":"The secret, in full. Returned EXACTLY ONCE — it is stored only as a SHA-256 hash, so it cannot be shown again by any route. Save it now; if you lose it, mint a new key and revoke this one."},"prefix":{"type":"string","description":"First 8 characters of the secret, echoed by GET /api/v1/keys so you can tell your keys apart. Not enough to authenticate."},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"}},"required":["id","key","prefix","name","created_at"],"additionalProperties":false}}}},"400":{"description":"Validation or schema error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["VALIDATION_ERROR"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"401":{"description":"Authentication required or token expired","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","ZEROCLICK_SIGNATURE_INVALID"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"403":{"description":"Forbidden by policy","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["WALLET_PROOF_REQUIRED","NOT_OWNER"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"409":{"description":"Conflict with current resource state","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["KEY_LIMIT_REACHED"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["deploy"]},"get":{"operationId":"deploy_get__api_v1_keys","summary":"List your API keys (id, label, prefix, timestamps) — never the secrets.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.keys_list","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"prefix":{"type":"string"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When this key last authenticated a request, refreshed at most once a minute. Null = never used."},"revoked_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null while the key is live. Revoked keys stay listed so an id in an old log line remains resolvable."},"created_at":{"type":"string"}},"required":["id","name","prefix","last_used_at","revoked_at","created_at"],"additionalProperties":false}}},"required":["keys"],"additionalProperties":false}}}},"401":{"description":"Authentication required or token expired","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","ZEROCLICK_SIGNATURE_INVALID"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"403":{"description":"Forbidden by policy","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["NOT_OWNER"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["deploy"]}},"/api/v1/deploy/keys/{keyId}":{"delete":{"operationId":"deploy_delete__api_v1_keys__keyId_","summary":"Revoke an API key. Idempotent; a key id belonging to another account is a 404.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"deploy.keys_revoke","pricingVersion":1},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"revoked_at":{"type":"string","description":"When the key died. Revocation is idempotent — re-revoking returns the original timestamp."}},"required":["id","revoked_at"],"additionalProperties":false}}}},"401":{"description":"Authentication required or token expired","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","ZEROCLICK_SIGNATURE_INVALID"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"},"403":{"description":"Forbidden by policy","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["NOT_OWNER"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["KEY_NOT_FOUND"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}},"tags":["deploy"]}},"/api/v1/deploy/rates":{"get":{"operationId":"deploy_get__api_v1_rates","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"termFeeMicros":{"type":"string","description":"Per-term hosting fee in micro-USDC. Pay EXACTLY this as `term_fee_micros` on create/renew."},"buildFeeMicros":{"type":"string","description":"Optional per-build component in micro-USDC (0 = folded into the term fee)."},"termDays":{"type":"number","description":"Hosting-term length in days one term fee buys."},"perProxyCallMicros":{"type":"string","description":"Default worst-case reserve per outbound Zero proxy call, in micro-USDC."},"creditsTopUpCapMicros":{"type":"string","description":"Maximum single credits top-up in micro-USDC — the ceiling for `credit_micros`."},"runVcpuKsecMicros":{"type":"string","description":"Metered runtime: micro-USDC per 1000 vCPU-seconds of active compute, billed from prepaid credits."},"runGibKsecMicros":{"type":"string","description":"Metered runtime: micro-USDC per 1000 GiB-seconds of active memory."},"runReqMillionMicros":{"type":"string","description":"Metered runtime: micro-USDC per 1,000,000 requests."},"runIdleVcpuKsecMicros":{"type":"string","description":"Keep-warm: micro-USDC per 1000 idle vCPU-seconds (minInstances 1)."},"runIdleGibKsecMicros":{"type":"string","description":"Keep-warm: micro-USDC per 1000 idle GiB-seconds."},"freeVcpuSecPerAppMonth":{"type":"string","description":"Per-app monthly free allowance of active vCPU-seconds before metering bills."},"freeGibSecPerAppMonth":{"type":"string","description":"Per-app monthly free allowance of active GiB-seconds."},"freeReqPerAppMonth":{"type":"string","description":"Per-app monthly free allowance of requests."},"keepWarmMinBalanceMicros":{"type":"string","description":"Minimum available credit balance required to enable keepWarm."},"dataIncludedBytes":{"type":"string","description":"Durable /data storage included per app in bytes (1 GiB default) before overage bills."},"dataGibDayMicros":{"type":"string","description":"Durable /data overage: micro-USDC per GiB per day above the included bytes, debited nightly from prepaid credits."},"dataCapBytes":{"type":"string","description":"Durable /data hard cap in bytes — past this the /data mount turns read-only until files shrink below it."}},"required":["termFeeMicros","buildFeeMicros","termDays","perProxyCallMicros","creditsTopUpCapMicros","runVcpuKsecMicros","runGibKsecMicros","runReqMillionMicros","runIdleVcpuKsecMicros","runIdleGibKsecMicros","freeVcpuSecPerAppMonth","freeGibSecPerAppMonth","freeReqPerAppMonth","keepWarmMinBalanceMicros","dataIncludedBytes","dataGibDayMicros","dataCapBytes"],"additionalProperties":false}}}}},"tags":["deploy"]}},"/api/v1/image/images/gpt-5-image":{"post":{"operationId":"image_post__api_v1_images_gpt_5_image","summary":"Generate images from a text prompt with OpenAI GPT-5 Image — strongest instruction following and legible in-image text. Returns hosted image URLs.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.21","sku":"image.gpt-5-image","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the image to generate."},"count":{"default":1,"description":"How many images to generate (1–4).","type":"integer","minimum":1,"maximum":4}},"required":["prompt","count"],"additionalProperties":false,"example":{"prompt":"A watercolor painting of a lighthouse at sunrise","count":1}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["url","mimeType","sizeBytes"],"additionalProperties":false},"description":"The generated images, as hosted URLs."},"model":{"type":"string","description":"The model that produced the images."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["images","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["image"]}},"/api/v1/image/images/nano-banana-pro":{"post":{"operationId":"image_post__api_v1_images_nano_banana_pro","summary":"Generate images from a text prompt with Google's Nano Banana Pro (Gemini 3 Pro Image) — highest-quality photorealistic output. Returns hosted image URLs.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.14","sku":"image.nano-banana-pro","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the image to generate."},"count":{"default":1,"description":"How many images to generate (1–4).","type":"integer","minimum":1,"maximum":4}},"required":["prompt","count"],"additionalProperties":false,"example":{"prompt":"A watercolor painting of a lighthouse at sunrise","count":1}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["url","mimeType","sizeBytes"],"additionalProperties":false},"description":"The generated images, as hosted URLs."},"model":{"type":"string","description":"The model that produced the images."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["images","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["image"]}},"/api/v1/image/images/nano-banana-2":{"post":{"operationId":"image_post__api_v1_images_nano_banana_2","summary":"Generate images from a text prompt with Google's Nano Banana 2 (Gemini 3.1 Flash Image) — fast, high-quality generation. Returns hosted image URLs.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.07","sku":"image.nano-banana-2","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the image to generate."},"count":{"default":1,"description":"How many images to generate (1–4).","type":"integer","minimum":1,"maximum":4}},"required":["prompt","count"],"additionalProperties":false,"example":{"prompt":"A watercolor painting of a lighthouse at sunrise","count":1}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["url","mimeType","sizeBytes"],"additionalProperties":false},"description":"The generated images, as hosted URLs."},"model":{"type":"string","description":"The model that produced the images."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["images","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["image"]}},"/api/v1/image/images/grok-imagine":{"post":{"operationId":"image_post__api_v1_images_grok_imagine","summary":"Generate images from a text prompt with xAI's Grok Imagine quality tier. Returns hosted image URLs.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.05","sku":"image.grok-imagine","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the image to generate."},"count":{"default":1,"description":"How many images to generate (1–4).","type":"integer","minimum":1,"maximum":4}},"required":["prompt","count"],"additionalProperties":false,"example":{"prompt":"A watercolor painting of a lighthouse at sunrise","count":1}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["url","mimeType","sizeBytes"],"additionalProperties":false},"description":"The generated images, as hosted URLs."},"model":{"type":"string","description":"The model that produced the images."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["images","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["image"]}},"/api/v1/image/images/banana-image":{"post":{"operationId":"image_post__api_v1_images_banana_image","summary":"Generate an image from a text prompt with the fast Nano Banana tier — free through the ZeroClick marketplace. Returns a hosted image URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.07","sku":"image.banana-image","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the image to generate."},"count":{"default":1,"description":"How many images to generate (1–1).","type":"integer","minimum":1,"maximum":1}},"required":["prompt","count"],"additionalProperties":false,"example":{"prompt":"A watercolor painting of a lighthouse at sunrise","count":1}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["url","mimeType","sizeBytes"],"additionalProperties":false},"description":"The generated images, as hosted URLs."},"model":{"type":"string","description":"The model that produced the images."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["images","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["image"]}},"/api/v1/video/videos/sora-2-pro":{"post":{"operationId":"video_post__api_v1_videos_sora_2_pro","summary":"Generate a video from a text prompt with OpenAI Sora 2 Pro — production-quality motion with synchronized audio. Returns a job id; poll the status route for the finished video URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"1.2","sku":"video.sora-2-pro","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the video to generate."},"duration":{"default":8,"description":"Clip length in seconds. One of: 4, 8, 12, 16, 20.","anyOf":[{"type":"number","const":4},{"type":"number","const":8},{"type":"number","const":12},{"type":"number","const":16},{"type":"number","const":20}]},"resolution":{"default":"720p","description":"Output resolution. One of: 720p, 1080p.","type":"string","enum":["720p","1080p"]},"aspect_ratio":{"description":"Aspect ratio of the output. One of: 16:9, 9:16.","type":"string","enum":["16:9","9:16"]},"seed":{"description":"Seed for repeatable generation (best effort).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["prompt","duration","resolution"],"additionalProperties":false,"example":{"prompt":"A slow aerial shot over a foggy pine forest at dawn","duration":8}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"job_id":{"type":"string","description":"Job id for the generation. Poll the status route with this id."},"status":{"type":"string","const":"pending","description":"The job has been accepted and is generating."},"model":{"type":"string","description":"The model generating the video."},"price_usdc":{"type":"string","description":"The amount charged for this generation, in USDC."},"poll_path":{"type":"string","description":"Path of the free status route to poll for the finished video."}},"required":["job_id","status","model","price_usdc","poll_path"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["video"]}},"/api/v1/video/videos/veo-3.1":{"post":{"operationId":"video_post__api_v1_videos_veo_3_1","summary":"Generate a video from a text prompt with Google Veo 3.1 — maximum visual fidelity up to 4K with native audio. Returns a job id; poll the status route for the finished video URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.8","sku":"video.veo-3.1","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the video to generate."},"duration":{"default":8,"description":"Clip length in seconds. One of: 4, 6, 8.","anyOf":[{"type":"number","const":4},{"type":"number","const":6},{"type":"number","const":8}]},"resolution":{"default":"1080p","description":"Output resolution. One of: 720p, 1080p, 4K.","type":"string","enum":["720p","1080p","4K"]},"aspect_ratio":{"description":"Aspect ratio of the output. One of: 16:9, 9:16.","type":"string","enum":["16:9","9:16"]},"seed":{"description":"Seed for repeatable generation (best effort).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"audio":{"default":true,"description":"Generate a synchronized audio track.","type":"boolean"}},"required":["prompt","duration","resolution","audio"],"additionalProperties":false,"example":{"prompt":"A slow aerial shot over a foggy pine forest at dawn","duration":8}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"job_id":{"type":"string","description":"Job id for the generation. Poll the status route with this id."},"status":{"type":"string","const":"pending","description":"The job has been accepted and is generating."},"model":{"type":"string","description":"The model generating the video."},"price_usdc":{"type":"string","description":"The amount charged for this generation, in USDC."},"poll_path":{"type":"string","description":"Path of the free status route to poll for the finished video."}},"required":["job_id","status","model","price_usdc","poll_path"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["video"]}},"/api/v1/video/videos/veo-3.1-fast":{"post":{"operationId":"video_post__api_v1_videos_veo_3_1_fast","summary":"Generate a video from a text prompt with Google Veo 3.1 Fast — high quality with native audio at a faster turnaround. Returns a job id; poll the status route for the finished video URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.32","sku":"video.veo-3.1-fast","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the video to generate."},"duration":{"default":8,"description":"Clip length in seconds. One of: 4, 6, 8.","anyOf":[{"type":"number","const":4},{"type":"number","const":6},{"type":"number","const":8}]},"resolution":{"default":"720p","description":"Output resolution. One of: 720p, 1080p, 4K.","type":"string","enum":["720p","1080p","4K"]},"aspect_ratio":{"description":"Aspect ratio of the output. One of: 16:9, 9:16.","type":"string","enum":["16:9","9:16"]},"seed":{"description":"Seed for repeatable generation (best effort).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"audio":{"default":true,"description":"Generate a synchronized audio track.","type":"boolean"}},"required":["prompt","duration","resolution","audio"],"additionalProperties":false,"example":{"prompt":"A slow aerial shot over a foggy pine forest at dawn","duration":8}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"job_id":{"type":"string","description":"Job id for the generation. Poll the status route with this id."},"status":{"type":"string","const":"pending","description":"The job has been accepted and is generating."},"model":{"type":"string","description":"The model generating the video."},"price_usdc":{"type":"string","description":"The amount charged for this generation, in USDC."},"poll_path":{"type":"string","description":"Path of the free status route to poll for the finished video."}},"required":["job_id","status","model","price_usdc","poll_path"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["video"]}},"/api/v1/video/videos/kling-v3.0-pro":{"post":{"operationId":"video_post__api_v1_videos_kling_v3_0_pro","summary":"Generate a video from a text prompt with Kuaishou Kling 3.0 Pro — premium realism and motion, clips from 3 to 15 seconds. Returns a job id; poll the status route for the finished video URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.336","sku":"video.kling-v3.0-pro","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the video to generate."},"duration":{"default":5,"description":"Clip length in seconds. One of: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.","anyOf":[{"type":"number","const":3},{"type":"number","const":4},{"type":"number","const":5},{"type":"number","const":6},{"type":"number","const":7},{"type":"number","const":8},{"type":"number","const":9},{"type":"number","const":10},{"type":"number","const":11},{"type":"number","const":12},{"type":"number","const":13},{"type":"number","const":14},{"type":"number","const":15}]},"resolution":{"default":"720p","description":"Output resolution. One of: 720p.","type":"string","enum":["720p"]},"aspect_ratio":{"description":"Aspect ratio of the output. One of: 16:9, 9:16, 1:1.","type":"string","enum":["16:9","9:16","1:1"]},"seed":{"description":"Seed for repeatable generation (best effort).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"audio":{"default":false,"description":"Generate a synchronized audio track.","type":"boolean"}},"required":["prompt","duration","resolution","audio"],"additionalProperties":false,"example":{"prompt":"A slow aerial shot over a foggy pine forest at dawn","duration":5}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"job_id":{"type":"string","description":"Job id for the generation. Poll the status route with this id."},"status":{"type":"string","const":"pending","description":"The job has been accepted and is generating."},"model":{"type":"string","description":"The model generating the video."},"price_usdc":{"type":"string","description":"The amount charged for this generation, in USDC."},"poll_path":{"type":"string","description":"Path of the free status route to poll for the finished video."}},"required":["job_id","status","model","price_usdc","poll_path"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["video"]}},"/api/v1/video/jobs/{id}":{"get":{"operationId":"video_get__api_v1_jobs__id_","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"job_id":{"type":"string","description":"The job id being polled."},"status":{"type":"string","enum":["in_progress","completed","failed"],"description":"Generation status."},"model":{"type":"string","description":"The model generating the video."},"url":{"description":"Public URL of the finished video. Present when status is completed.","type":"string"},"error":{"description":"Failure reason. Present when status is failed.","type":"string"}},"required":["job_id","status","model"],"additionalProperties":false}}}}},"tags":["video"]}},"/api/v1/audio/music-analyses":{"post":{"operationId":"audio_post__api_v1_music_analyses","summary":"Analyze a public YouTube or direct-audio music reference, optionally combine Gemini semantics with local BPM/key/downbeat/loudness DSP, and return bar-aware sections plus a ready-to-generate original Lyria request.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.02","sku":"audio.music-analysis-gemini-3-5-flash","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"youtubeUrl":{"description":"Public YouTube video URL to analyze. Private and unlisted videos are not supported.","type":"string","maxLength":2048,"format":"uri"},"audioUrl":{"description":"Public HTTPS MP3/WAV/M4A/OGG/FLAC URL for hybrid semantic + DSP analysis.","type":"string","maxLength":2048,"format":"uri"},"audio":{"description":"Base64 MP3 or WAV for hybrid semantic + DSP analysis (15 MiB decoded maximum).","type":"string","minLength":1,"maxLength":21000000},"audioFormat":{"description":"Required when audio is supplied as base64.","type":"string","enum":["mp3","wav"]},"startSec":{"default":0,"description":"Start of the analyzed video window in whole seconds. Defaults to 0.","type":"integer","minimum":0,"maximum":21600},"endSec":{"default":300,"description":"End of the analyzed video window in whole seconds. Defaults to 300.","type":"integer","minimum":30,"maximum":21600},"targetDurationSec":{"description":"Optional duration for the compiled Lyria song; otherwise the detected music duration is used, clamped to 30–300 seconds.","type":"integer","minimum":30,"maximum":300},"instrumental":{"default":true,"description":"Compile an instrumental Lyria request by default; set false to permit original vocals.","type":"boolean"},"seed":{"description":"Optional best-effort Lyria seed copied into the compiled request.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"focus":{"description":"Optional analysis emphasis, for example \"prioritize the drums, bass groove, and chorus lift\".","type":"string","minLength":1,"maxLength":500},"analysisDepth":{"default":"standard","description":"Deep mode requests finer bar-level arrangement, envelope, and transition evidence.","type":"string","enum":["standard","deep"]},"sectionTargetCount":{"description":"Requested number of functional sections before the safety tail is appended.","type":"integer","minimum":2,"maximum":12},"barAlignment":{"default":"none","description":"Optionally snap compiled section boundaries to the detected musical grid. Omit to preserve the semantic timestamps.","type":"string","enum":["none","bar","4-bars","8-bars"]},"matchPriorities":{"type":"object","properties":{"groove":{"type":"integer","minimum":1,"maximum":5},"structure":{"type":"integer","minimum":1,"maximum":5},"harmony":{"type":"integer","minimum":1,"maximum":5},"instrumentation":{"type":"integer","minimum":1,"maximum":5},"production":{"type":"integer","minimum":1,"maximum":5}},"additionalProperties":false,"description":"Optional 1–5 importance weights. Higher-weight traits receive stronger analysis, prompting, and candidate-ranking emphasis."},"instrumentalLeadMode":{"default":"auto","description":"How analyzed vocal functions should become instrumental parts. Piano-led makes the main vocal role an expressive piano melody.","type":"string","enum":["auto","piano-led","synth-led","custom"]},"instrumentalLeadMapping":{"description":"Custom vocal-function mappings. These override the selected instrumentalLeadMode role by role.","minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["lead","harmony","response","ad-lib","sustained","ensemble"],"description":"The source vocal function being reassigned."},"instrument":{"type":"string","minLength":1,"maxLength":80,"description":"Instrument that should perform this role, for example expressive piano or bright pluck synth."},"register":{"type":"string","enum":["low","mid","high","wide"]},"articulation":{"description":"Phrasing and envelope, for example clipped staccato attacks with short releases.","type":"string","minLength":1,"maxLength":160}},"required":["role","instrument"],"additionalProperties":false}},"instrumentalLeadContinuity":{"default":"persistent","description":"Persistent keeps the mapped lead instrument in front after every section transition in the compiled Lyria request.","type":"string","enum":["sectional","persistent"]},"tailReserveSec":{"default":0,"description":"Optionally reserve a non-essential final tail because Lyria can end several seconds early.","type":"integer","minimum":0,"maximum":15},"mastering":{"description":"Optional mastering controls copied into the ready-to-generate Lyria request.","type":"object","properties":{"targetLufs":{"default":-14,"description":"Target integrated loudness in LUFS.","type":"number","minimum":-24,"maximum":-8},"truePeakDb":{"default":-1,"description":"Maximum true peak in dBTP.","type":"number","minimum":-6,"maximum":-0.1},"fadeOutSec":{"default":1,"description":"Final fade duration in seconds.","type":"number","minimum":0,"maximum":10}},"required":["targetLufs","truePeakDb","fadeOutSec"],"additionalProperties":false}},"required":["startSec","endSec","instrumental","analysisDepth","barAlignment","instrumentalLeadMode","instrumentalLeadContinuity","tailReserveSec"],"additionalProperties":false,"example":{"youtubeUrl":"https://www.youtube.com/watch?v=example","startSec":0,"endSec":240,"targetDurationSec":180,"instrumental":true,"sectionTargetCount":8,"barAlignment":"4-bars","instrumentalLeadMode":"piano-led","tailReserveSec":5,"focus":"prioritize the drum pattern, bass movement, and energy changes"}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"source":{"type":"object","properties":{"youtubeUrl":{"type":"string","format":"uri"},"audioUrl":{"type":"string","format":"uri"},"audioUpload":{"type":"boolean"},"startSec":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"endSec":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"analysisMethod":{"type":"string","enum":["gemini-video-semantic","gemini-audio-plus-dsp"]}},"required":["startSec","endSec","analysisMethod"],"additionalProperties":false},"analysis":{"type":"object","properties":{"durationSec":{"type":"integer","minimum":1,"maximum":600,"description":"Duration of the primary continuous musical performance inside the selected clip."},"clipMusicStartSec":{"type":"integer","minimum":0,"maximum":600,"description":"Where the primary music begins, relative to the selected clip."},"clipMusicEndSec":{"type":"integer","minimum":1,"maximum":600,"description":"Where the primary music ends, relative to the selected clip."},"tempo":{"type":"object","properties":{"bpm":{"type":"integer","minimum":40,"maximum":240,"description":"Most likely musical pulse in beats per minute."},"confidence":{"type":"number","minimum":0,"maximum":1},"alternativesBpm":{"maxItems":2,"type":"array","items":{"type":"integer","minimum":40,"maximum":240},"description":"Plausible half-time or double-time interpretations, if any."},"feel":{"type":"string","minLength":1,"maxLength":240,"description":"Rhythmic feel, swing, syncopation, and subdivision."}},"required":["bpm","confidence","alternativesBpm","feel"],"additionalProperties":false},"key":{"type":"object","properties":{"tonic":{"type":"string","minLength":1,"maxLength":8,"description":"Estimated tonic, using a note name such as C, F#, or Bb."},"mode":{"type":"string","minLength":1,"maxLength":32,"description":"Estimated mode such as major, minor, dorian, or mixolydian."},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["tonic","mode","confidence"],"additionalProperties":false},"timeSignature":{"type":"string","minLength":1,"maxLength":16},"genres":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"moods":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"drums":{"type":"string","minLength":1,"maxLength":600,"description":"Kit, pattern, subdivisions, fills, accents, and processing."},"bass":{"type":"string","minLength":1,"maxLength":600,"description":"Bass timbre, register, articulation, rhythm, and interaction with the kick."},"harmony":{"type":"string","minLength":1,"maxLength":600,"description":"Chord language, harmonic rhythm, voicing density, and tonal movement without transcribing the source."},"lead":{"type":"string","minLength":1,"maxLength":600,"description":"Lead timbres, melodic contour, phrasing density, and call-and-response without quoting the melody."},"vocalRoles":{"description":"Functional vocal parts that can be reassigned to instruments without copying the source melody.","maxItems":8,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["lead","harmony","response","ad-lib","sustained","ensemble"]},"description":{"type":"string","minLength":1,"maxLength":240,"description":"Register, phrasing density, articulation, envelope, and interaction of this vocal function."}},"required":["role","description"],"additionalProperties":false}},"vocalPerformance":{"description":"A non-note-level performance map used to make an instrument occupy the functional role of the source vocals.","type":"object","properties":{"summary":{"type":"string","minLength":1,"maxLength":320,"description":"Phrase timing, breathing space, density, contour language, and handoffs without notes, intervals, lyrics, or melody transcription."},"phraseProfiles":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"object","properties":{"sectionName":{"type":"string","minLength":1,"maxLength":64,"description":"Name of the arrangement section this performance profile belongs to."},"role":{"type":"string","enum":["lead","harmony","response","ad-lib","sustained","ensemble"]},"phraseBars":{"type":"integer","minimum":1,"maximum":8,"description":"Typical phrase length in bars, without transcribing notes or lyrics."},"pickup":{"type":"string","enum":["none","eighth-note","sixteenth-note","mixed"],"description":"Typical pickup behavior before phrase entrances."},"restBeats":{"type":"integer","minimum":0,"maximum":8,"description":"Typical breathing space after a phrase, in beats."},"density":{"type":"string","enum":["sparse","moderate","dense","rapid"],"description":"Relative event density of the vocal delivery."},"contour":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["level","rising","falling","arch","inverted-arch","repeated-note","leap-and-answer","sustained"]},"description":"Ordered high-level contour gestures without pitches, intervals, or a melody transcription."},"cadence":{"type":"string","enum":["open","short-stop","falling-resolution","rising-lift","sustained-resolution"]},"delivery":{"type":"string","minLength":1,"maxLength":160,"description":"Articulation, attack, sustain, and dynamic behavior."},"handoff":{"type":"string","minLength":1,"maxLength":160,"description":"How this phrase yields to or answers another part."}},"required":["sectionName","role","phraseBars","pickup","restBeats","density","contour","cadence","delivery","handoff"],"additionalProperties":false}}},"required":["summary","phraseProfiles"],"additionalProperties":false},"instrumentation":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"production":{"type":"string","minLength":1,"maxLength":800,"description":"Mix, space, stereo field, dynamics, texture, transitions, and mastering character."},"energyArc":{"type":"string","minLength":1,"maxLength":600,"description":"How density and intensity change through the arrangement."},"signatureTraits":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":240},"description":"High-value abstract traits that explain the track identity without naming or copying protected expression."},"sections":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"startSec":{"type":"integer","minimum":0,"maximum":600,"description":"Section start relative to the beginning of the primary music, in whole seconds."},"endSec":{"type":"integer","minimum":1,"maximum":600,"description":"Section end relative to the beginning of the primary music, in whole seconds."},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Functional section name such as Intro, Verse, Build, Chorus, Drop, Breakdown, Bridge, or Outro."},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Section-specific rhythm, harmony, instrumentation, transition, and production traits."},"intensity":{"type":"integer","minimum":1,"maximum":10,"description":"Perceived intensity from 1 (minimal) to 10 (maximum)."},"startBar":{"description":"Approximate starting bar on the analyzed musical grid, when available.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bars":{"description":"Approximate section length in bars, when available.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["startSec","endSec","name","description","intensity"],"additionalProperties":false}},"overallConfidence":{"type":"number","minimum":0,"maximum":1},"warnings":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}},"required":["durationSec","clipMusicStartSec","clipMusicEndSec","tempo","key","timeSignature","genres","moods","drums","bass","harmony","lead","instrumentation","production","energyArc","signatureTraits","sections","overallConfidence","warnings"],"additionalProperties":false},"dspEvidence":{"type":"object","properties":{"durationSec":{"type":"number","exclusiveMinimum":0},"tempo":{"type":"object","properties":{"bpm":{"type":"number","exclusiveMinimum":0},"beatOffsetSec":{"type":"number","minimum":0},"beatIntervalSec":{"type":"number","exclusiveMinimum":0},"downbeatOffsetBeats":{"type":"integer","minimum":0,"maximum":3},"downbeatConfidence":{"type":"number","minimum":0,"maximum":1}},"required":["bpm","beatOffsetSec","beatIntervalSec","downbeatOffsetBeats","downbeatConfidence"],"additionalProperties":false},"key":{"type":"object","properties":{"tonic":{"type":"string"},"mode":{"type":"string","enum":["major","minor"]},"camelot":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["tonic","mode","camelot","confidence"],"additionalProperties":false},"loudness":{"type":"object","properties":{"integratedLufs":{"type":"number"},"rangeLu":{"type":"number"},"truePeakDb":{"type":"number"}},"required":["integratedLufs","rangeLu","truePeakDb"],"additionalProperties":false},"stereo":{"type":"object","properties":{"correlation":{"type":"number","minimum":-1,"maximum":1},"sideToMidRatio":{"type":"number","minimum":0}},"required":["correlation","sideToMidRatio"],"additionalProperties":false},"brightness":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"energy":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"sections":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"startSec":{"type":"number","minimum":0},"endSec":{"type":"number","exclusiveMinimum":0}},"required":["kind","startSec","endSec"],"additionalProperties":false}},"cues":{"type":"object","properties":{"mixInSec":{"type":"number","minimum":0},"mixOutSec":{"type":"number","minimum":0}},"required":["mixInSec","mixOutSec"],"additionalProperties":false}},"required":["durationSec","tempo","brightness","energy","sections","cues"],"additionalProperties":false},"lyriaRequest":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000},"seed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"negativePrompt":{"type":"string","minLength":1,"maxLength":1000},"durationSec":{"type":"integer","minimum":30,"maximum":300},"instrumental":{"type":"boolean"},"instrumentalLeadMapping":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["lead","harmony","response","ad-lib","sustained","ensemble"],"description":"The source vocal function being reassigned."},"instrument":{"type":"string","minLength":1,"maxLength":80,"description":"Instrument that should perform this role, for example expressive piano or bright pluck synth."},"register":{"type":"string","enum":["low","mid","high","wide"]},"articulation":{"description":"Phrasing and envelope, for example clipped staccato attacks with short releases.","type":"string","minLength":1,"maxLength":160}},"required":["role","instrument"],"additionalProperties":false}},"instrumentalLeadContinuity":{"type":"string","enum":["sectional","persistent"]},"tailReserveSec":{"type":"integer","minimum":0,"maximum":15},"temperature":{"type":"number","minimum":0,"maximum":2},"topP":{"type":"number","minimum":0,"maximum":1},"sections":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"startSec":{"type":"integer","minimum":0,"maximum":300},"endSec":{"type":"integer","minimum":1,"maximum":300},"name":{"type":"string"},"description":{"type":"string"},"intensity":{"type":"integer","minimum":1,"maximum":10}},"required":["startSec","endSec","name","description","intensity"],"additionalProperties":false}},"mastering":{"type":"object","properties":{"targetLufs":{"default":-14,"description":"Target integrated loudness in LUFS.","type":"number","minimum":-24,"maximum":-8},"truePeakDb":{"default":-1,"description":"Maximum true peak in dBTP.","type":"number","minimum":-6,"maximum":-0.1},"fadeOutSec":{"default":1,"description":"Final fade duration in seconds.","type":"number","minimum":0,"maximum":10}},"required":["targetLufs","truePeakDb","fadeOutSec"],"additionalProperties":false},"selectionTarget":{"type":"object","properties":{"bpm":{"type":"number","minimum":40,"maximum":240},"matchPriorities":{"type":"object","properties":{"groove":{"type":"integer","minimum":1,"maximum":5},"structure":{"type":"integer","minimum":1,"maximum":5},"harmony":{"type":"integer","minimum":1,"maximum":5},"instrumentation":{"type":"integer","minimum":1,"maximum":5},"production":{"type":"integer","minimum":1,"maximum":5}},"additionalProperties":false,"description":"Optional 1–5 importance weights. Higher-weight traits receive stronger analysis, prompting, and candidate-ranking emphasis."}},"required":["bpm"],"additionalProperties":false}},"required":["prompt","negativePrompt","durationSec","instrumental","temperature","topP","sections"],"additionalProperties":false,"description":"Ready to POST to /api/v1/songs/lyria-3-pro."},"limitations":{"type":"array","items":{"type":"string"}},"model":{"type":"string"},"price_usdc":{"type":"string"}},"required":["source","analysis","lyriaRequest","limitations","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["audio"]}},"/api/v1/audio/speech/gemini-3.1-flash-tts":{"post":{"operationId":"audio_post__api_v1_speech_gemini_3_1_flash_tts","summary":"Convert text to natural-sounding speech with Google Gemini 3.1 Flash TTS and return a hosted audio URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.04","sku":"audio.gemini-3.1-flash-tts","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"string","minLength":1,"maxLength":4000,"description":"The text to convert to speech (1–4000 characters)."},"voice":{"default":"Kore","description":"Voice to speak with. Defaults to \"Kore\".","type":"string","minLength":1,"maxLength":64}},"required":["input","voice"],"additionalProperties":false,"example":{"input":"Hello from WithZero — this is a text to speech sample."}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","description":"Hosted URL of the generated audio (WAV, 24kHz mono)."},"mimeType":{"type":"string","description":"Content type of the generated audio."},"sizeBytes":{"type":"number","description":"Size of the generated audio in bytes."},"seconds":{"type":"number","description":"Approximate duration of the generated audio in seconds."},"model":{"type":"string","description":"The model that produced the audio."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["url","mimeType","sizeBytes","seconds","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["audio"]}},"/api/v1/audio/speech/grok-voice":{"post":{"operationId":"audio_post__api_v1_speech_grok_voice","summary":"Convert text to natural-sounding speech with xAI's Grok Voice and return a hosted audio URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.02","sku":"audio.grok-voice","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"string","minLength":1,"maxLength":4000,"description":"The text to convert to speech (1–4000 characters)."},"voice":{"default":"default","description":"Voice to speak with. Defaults to \"default\".","type":"string","minLength":1,"maxLength":64}},"required":["input","voice"],"additionalProperties":false,"example":{"input":"Hello from WithZero — this is a text to speech sample."}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","description":"Hosted URL of the generated audio (WAV, 24kHz mono)."},"mimeType":{"type":"string","description":"Content type of the generated audio."},"sizeBytes":{"type":"number","description":"Size of the generated audio in bytes."},"seconds":{"type":"number","description":"Approximate duration of the generated audio in seconds."},"model":{"type":"string","description":"The model that produced the audio."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["url","mimeType","sizeBytes","seconds","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["audio"]}},"/api/v1/audio/transcripts/whisper-large-v3":{"post":{"operationId":"audio_post__api_v1_transcripts_whisper_large_v3","summary":"Transcribe spoken audio to text with OpenAI Whisper Large v3.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.002","sku":"audio.whisper-large-v3","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"audio":{"type":"string","minLength":1,"maxLength":20971524,"description":"Base64-encoded audio to transcribe (decoded size up to 15 MB)."},"format":{"type":"string","enum":["wav","mp3"],"description":"Container format of the audio."}},"required":["audio","format"],"additionalProperties":false,"example":{"audio":"UklGRiYAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQIAAAAAAA==","format":"wav"}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","description":"The transcript of the audio."},"seconds":{"type":"number","description":"Detected duration of the input audio in seconds."},"model":{"type":"string","description":"The model that produced the transcript."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["text","seconds","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["audio"]}},"/api/v1/audio/transcripts/gpt-4o-transcribe":{"post":{"operationId":"audio_post__api_v1_transcripts_gpt_4o_transcribe","summary":"Transcribe spoken audio to text with OpenAI's GPT-4o Transcribe.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.005","sku":"audio.gpt-4o-transcribe","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"audio":{"type":"string","minLength":1,"maxLength":20971524,"description":"Base64-encoded audio to transcribe (decoded size up to 15 MB)."},"format":{"type":"string","enum":["wav","mp3"],"description":"Container format of the audio."}},"required":["audio","format"],"additionalProperties":false,"example":{"audio":"UklGRiYAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQIAAAAAAA==","format":"wav"}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","description":"The transcript of the audio."},"seconds":{"type":"number","description":"Detected duration of the input audio in seconds."},"model":{"type":"string","description":"The model that produced the transcript."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."}},"required":["text","seconds","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["audio"]}},"/api/v1/audio/songs/lyria-3-pro":{"post":{"operationId":"audio_post__api_v1_songs_lyria_3_pro","summary":"Generate one to three complete songs with Google's Lyria 3 Pro, optionally translate vocal functions into instruments, master the audio, rank candidates with local DSP, and return hosted audio URLs.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.08","sku":"audio.lyria-3-pro","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text description of the song to generate (1–4000 characters)."},"seed":{"description":"Seed for repeatable generation (best effort).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"negativePrompt":{"description":"Elements to discourage, appended to the Lyria prompt as explicit exclusions.","type":"string","minLength":1,"maxLength":1000},"durationSec":{"description":"Target duration in seconds (30–300; best effort).","type":"integer","minimum":30,"maximum":300},"instrumental":{"description":"When true, explicitly excludes vocals, speech, vocal chops, and choir.","type":"boolean"},"instrumentalLeadMapping":{"description":"Map source vocal functions to instrumental parts such as lead → expressive piano and harmony → warm strings.","minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["lead","harmony","response","ad-lib","sustained","ensemble"],"description":"The source vocal function being reassigned."},"instrument":{"type":"string","minLength":1,"maxLength":80,"description":"Instrument that should perform this role, for example expressive piano or bright pluck synth."},"register":{"type":"string","enum":["low","mid","high","wide"]},"articulation":{"description":"Phrasing and envelope, for example clipped staccato attacks with short releases.","type":"string","minLength":1,"maxLength":160}},"required":["role","instrument"],"additionalProperties":false}},"instrumentalLeadContinuity":{"description":"How strongly to retain the mapped lead instrument. Persistent reasserts it after every transition and prevents another instrument from replacing it.","type":"string","enum":["sectional","persistent"]},"tailReserveSec":{"description":"Reserve the final seconds for non-essential decay so an early model stop does not remove the musical resolution.","type":"integer","minimum":0,"maximum":15},"temperature":{"description":"OpenRouter sampling temperature from 0 to 2.","type":"number","minimum":0,"maximum":2},"topP":{"description":"OpenRouter nucleus-sampling probability from 0 to 1.","type":"number","minimum":0,"maximum":1},"candidateCount":{"default":1,"description":"Generate 1–3 seeded candidates. Extra candidates cost the normal per-song price; the objectively closest result is returned at top level.","type":"integer","minimum":1,"maximum":3},"mastering":{"description":"Optional ffmpeg loudness normalization, true-peak control, and final fade. Omit to return Lyria audio unchanged.","type":"object","properties":{"targetLufs":{"default":-14,"description":"Target integrated loudness in LUFS.","type":"number","minimum":-24,"maximum":-8},"truePeakDb":{"default":-1,"description":"Maximum true peak in dBTP.","type":"number","minimum":-6,"maximum":-0.1},"fadeOutSec":{"default":1,"description":"Final fade duration in seconds.","type":"number","minimum":0,"maximum":10}},"required":["targetLufs","truePeakDb","fadeOutSec"],"additionalProperties":false},"selectionTarget":{"description":"Optional BPM and match weights used to rank multiple candidates with local DSP.","type":"object","properties":{"bpm":{"type":"number","minimum":40,"maximum":240},"matchPriorities":{"type":"object","properties":{"groove":{"type":"integer","minimum":1,"maximum":5},"structure":{"type":"integer","minimum":1,"maximum":5},"harmony":{"type":"integer","minimum":1,"maximum":5},"instrumentation":{"type":"integer","minimum":1,"maximum":5},"production":{"type":"integer","minimum":1,"maximum":5}},"additionalProperties":false,"description":"Optional 1–5 importance weights. Higher-weight traits receive stronger analysis, prompting, and candidate-ranking emphasis."}},"additionalProperties":false},"referenceImageUrls":{"description":"Up to 10 public reference images to guide mood, visual story, and style.","maxItems":10,"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}},"sections":{"description":"Up to 20 ordered, non-overlapping arrangement sections converted to Lyria timestamp directives.","maxItems":20,"type":"array","items":{"type":"object","properties":{"startSec":{"type":"integer","minimum":0,"maximum":300,"description":"Inclusive section start in whole seconds."},"endSec":{"type":"integer","minimum":1,"maximum":300,"description":"Exclusive section end in whole seconds."},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Section label, for example Intro, Verse, Chorus, or Bridge."},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Instrumentation, melody, rhythm, and production instructions for this section."},"intensity":{"description":"Target section intensity from 1 (minimal) to 10 (maximum).","type":"integer","minimum":1,"maximum":10}},"required":["startSec","endSec","name","description"],"additionalProperties":false}}},"required":["prompt","candidateCount"],"additionalProperties":false,"example":{"prompt":"A short upbeat synthwave instrumental with a driving bassline"}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","description":"Hosted URL of the generated song (MP3)."},"mimeType":{"type":"string","description":"Content type of the generated audio."},"sizeBytes":{"type":"number","description":"Size of the generated audio in bytes."},"seconds":{"type":"number","description":"Approximate duration of the song in seconds."},"model":{"type":"string","description":"The model that produced the song."},"price_usdc":{"type":"string","description":"The amount charged for this request, in USDC."},"selectedCandidate":{"description":"Zero-based selected candidate index when candidateCount is greater than one.","type":"integer","minimum":0,"maximum":9007199254740991},"selectionMethod":{"type":"string","const":"local-dsp"},"selectionNotes":{"type":"array","items":{"type":"string"}},"generationFailures":{"type":"integer","minimum":0,"maximum":9007199254740991},"diagnostics":{"type":"object","properties":{"beforeMastering":{"type":"object","properties":{"durationSec":{"type":"number","exclusiveMinimum":0},"tempo":{"type":"object","properties":{"bpm":{"type":"number","exclusiveMinimum":0},"beatOffsetSec":{"type":"number","minimum":0},"beatIntervalSec":{"type":"number","exclusiveMinimum":0},"downbeatOffsetBeats":{"type":"integer","minimum":0,"maximum":3},"downbeatConfidence":{"type":"number","minimum":0,"maximum":1}},"required":["bpm","beatOffsetSec","beatIntervalSec","downbeatOffsetBeats","downbeatConfidence"],"additionalProperties":false},"key":{"type":"object","properties":{"tonic":{"type":"string"},"mode":{"type":"string","enum":["major","minor"]},"camelot":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["tonic","mode","camelot","confidence"],"additionalProperties":false},"loudness":{"type":"object","properties":{"integratedLufs":{"type":"number"},"rangeLu":{"type":"number"},"truePeakDb":{"type":"number"}},"required":["integratedLufs","rangeLu","truePeakDb"],"additionalProperties":false},"stereo":{"type":"object","properties":{"correlation":{"type":"number","minimum":-1,"maximum":1},"sideToMidRatio":{"type":"number","minimum":0}},"required":["correlation","sideToMidRatio"],"additionalProperties":false},"brightness":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"energy":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"sections":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"startSec":{"type":"number","minimum":0},"endSec":{"type":"number","exclusiveMinimum":0}},"required":["kind","startSec","endSec"],"additionalProperties":false}},"cues":{"type":"object","properties":{"mixInSec":{"type":"number","minimum":0},"mixOutSec":{"type":"number","minimum":0}},"required":["mixInSec","mixOutSec"],"additionalProperties":false}},"required":["durationSec","tempo","brightness","energy","sections","cues"],"additionalProperties":false},"final":{"type":"object","properties":{"durationSec":{"type":"number","exclusiveMinimum":0},"tempo":{"type":"object","properties":{"bpm":{"type":"number","exclusiveMinimum":0},"beatOffsetSec":{"type":"number","minimum":0},"beatIntervalSec":{"type":"number","exclusiveMinimum":0},"downbeatOffsetBeats":{"type":"integer","minimum":0,"maximum":3},"downbeatConfidence":{"type":"number","minimum":0,"maximum":1}},"required":["bpm","beatOffsetSec","beatIntervalSec","downbeatOffsetBeats","downbeatConfidence"],"additionalProperties":false},"key":{"type":"object","properties":{"tonic":{"type":"string"},"mode":{"type":"string","enum":["major","minor"]},"camelot":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["tonic","mode","camelot","confidence"],"additionalProperties":false},"loudness":{"type":"object","properties":{"integratedLufs":{"type":"number"},"rangeLu":{"type":"number"},"truePeakDb":{"type":"number"}},"required":["integratedLufs","rangeLu","truePeakDb"],"additionalProperties":false},"stereo":{"type":"object","properties":{"correlation":{"type":"number","minimum":-1,"maximum":1},"sideToMidRatio":{"type":"number","minimum":0}},"required":["correlation","sideToMidRatio"],"additionalProperties":false},"brightness":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"energy":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"sections":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"startSec":{"type":"number","minimum":0},"endSec":{"type":"number","exclusiveMinimum":0}},"required":["kind","startSec","endSec"],"additionalProperties":false}},"cues":{"type":"object","properties":{"mixInSec":{"type":"number","minimum":0},"mixOutSec":{"type":"number","minimum":0}},"required":["mixInSec","mixOutSec"],"additionalProperties":false}},"required":["durationSec","tempo","brightness","energy","sections","cues"],"additionalProperties":false}},"required":["final"],"additionalProperties":false},"candidates":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"seed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"seconds":{"type":"number","exclusiveMinimum":0},"score":{"type":"object","properties":{"overall":{"type":"number","minimum":0,"maximum":1},"duration":{"type":"number","minimum":0,"maximum":1},"groove":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"production":{"type":"number","minimum":0,"maximum":1}},"required":["overall","duration","groove","structure","production"],"additionalProperties":false},"diagnostics":{"type":"object","properties":{"durationSec":{"type":"number","exclusiveMinimum":0},"tempo":{"type":"object","properties":{"bpm":{"type":"number","exclusiveMinimum":0},"beatOffsetSec":{"type":"number","minimum":0},"beatIntervalSec":{"type":"number","exclusiveMinimum":0},"downbeatOffsetBeats":{"type":"integer","minimum":0,"maximum":3},"downbeatConfidence":{"type":"number","minimum":0,"maximum":1}},"required":["bpm","beatOffsetSec","beatIntervalSec","downbeatOffsetBeats","downbeatConfidence"],"additionalProperties":false},"key":{"type":"object","properties":{"tonic":{"type":"string"},"mode":{"type":"string","enum":["major","minor"]},"camelot":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["tonic","mode","camelot","confidence"],"additionalProperties":false},"loudness":{"type":"object","properties":{"integratedLufs":{"type":"number"},"rangeLu":{"type":"number"},"truePeakDb":{"type":"number"}},"required":["integratedLufs","rangeLu","truePeakDb"],"additionalProperties":false},"stereo":{"type":"object","properties":{"correlation":{"type":"number","minimum":-1,"maximum":1},"sideToMidRatio":{"type":"number","minimum":0}},"required":["correlation","sideToMidRatio"],"additionalProperties":false},"brightness":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"energy":{"type":"array","items":{"type":"number","minimum":0,"maximum":1}},"sections":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"startSec":{"type":"number","minimum":0},"endSec":{"type":"number","exclusiveMinimum":0}},"required":["kind","startSec","endSec"],"additionalProperties":false}},"cues":{"type":"object","properties":{"mixInSec":{"type":"number","minimum":0},"mixOutSec":{"type":"number","minimum":0}},"required":["mixInSec","mixOutSec"],"additionalProperties":false}},"required":["durationSec","tempo","brightness","energy","sections","cues"],"additionalProperties":false}},"required":["index","url","sizeBytes","seconds","score","diagnostics"],"additionalProperties":false}}},"required":["url","mimeType","sizeBytes","seconds","model","price_usdc"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["audio"]}},"/api/v1/pixelart/canvas":{"post":{"operationId":"pixelart_post__api_v1_canvas","summary":"Create a new pixel art canvas. Returns editing, manifest, full-spec, guide, and interactive-view URLs. Optionally pre-load base64 RGBA pixels. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"pixelart.canvas.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fps":{"description":"Playback rate for animation consumers.","type":"integer","minimum":1,"maximum":60},"loop":{"default":true,"description":"Whether playback loops (false = play once).","type":"boolean"},"width":{"description":"Canvas width in pixels (8–256). Default: 64.","default":64,"type":"integer","minimum":8,"maximum":256},"height":{"description":"Canvas height in pixels (8–256). Default: 64.","default":64,"type":"integer","minimum":8,"maximum":256},"name":{"description":"Human-readable label for this canvas.","type":"string","maxLength":100},"game":{"description":"Optional engine metadata: pivots, facing, root motion, clips, sockets, boxes, and events.","type":"object","properties":{"defaultPivot":{"description":"Default render pivot shared by frames without an override.","type":"object","properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"required":["x","y"],"additionalProperties":false},"facing":{"description":"Native facing direction of the authored art.","type":"string","enum":["left","right","none"]},"rootMotion":{"description":"Whether movement is in-place or derived from a named socket.","anyOf":[{"type":"string","const":"none"},{"type":"object","properties":{"socket":{"description":"Socket whose movement represents root motion.","type":"string","minLength":1,"maxLength":64}},"additionalProperties":false}]},"clips":{"description":"Named animation ranges within this canvas.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"fromFrame":{"type":"integer","minimum":0,"maximum":9007199254740991},"toFrame":{"type":"integer","minimum":0,"maximum":9007199254740991},"fps":{"type":"integer","minimum":1,"maximum":60},"loop":{"type":"boolean"}},"required":["name","fromFrame","toFrame"],"additionalProperties":false}},"frames":{"description":"Metadata keyed by canonical zero-based frame index.","type":"object","propertyNames":{"type":"string","pattern":"^(0|[1-9]\\d*)$"},"additionalProperties":{"type":"object","properties":{"durationMs":{"description":"Per-frame duration override. Omit to use the clip or canvas FPS.","type":"integer","minimum":1,"maximum":60000},"pivot":{"description":"Per-frame pivot override. Omit to use defaultPivot.","type":"object","properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"required":["x","y"],"additionalProperties":false},"sockets":{"description":"Named attachment points such as feet, muzzle, hand, or weapon.","type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":64},"additionalProperties":{"type":"object","properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"required":["x","y"],"additionalProperties":false}},"boxes":{"description":"Gameplay geometry associated with this frame.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"kind":{"type":"string","enum":["hit","hurt","collision","interaction"]},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["kind","x","y","width","height"],"additionalProperties":false}},"events":{"description":"Events emitted when playback enters this frame.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false}}},"additionalProperties":false},"initData":{"description":"Base64-encoded RGBA pixel data to initialise the canvas. Must be exactly width × height × 4 bytes after decoding. Omit to start with a transparent (empty) canvas.","type":"string","minLength":1,"maxLength":349528}},"required":["loop"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Canvas UUID — use in all subsequent API calls."},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"viewUrl":{"type":"string","description":"URL to the interactive pixel editor pre-loaded with this canvas."},"apiUrl":{"type":"string","description":"Base API URL for this canvas."},"ansiUrl":{"type":"string","description":"URL that returns ANSI half-block art of the canvas. Pipe via `curl <ansiUrl>` to render in any terminal or agent context."},"manifestUrl":{"type":"string","description":"Engine-ready animation manifest for this mutable canvas."},"fullSpecUrl":{"type":"string","description":"Complete OpenAPI surface including free editing routes."},"guideUrl":{"type":"string","description":"Holistic agent workflow guide."}},"required":["id","width","height","viewUrl","apiUrl","ansiUrl","manifestUrl","fullSpecUrl","guideUrl"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/pixelart/canvas/import":{"post":{"operationId":"pixelart_post__api_v1_canvas_import","summary":"Convert a public PNG/JPEG/WebP/GIF or base64 image into an editable, palette-quantized pixel canvas. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"pixelart.canvas.import","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"imageData":{"description":"Base64-encoded image bytes (PNG / JPEG / WebP / GIF). Max 2 MB encoded (≈1.5 MB actual).","type":"string"},"imageUrl":{"description":"Publicly accessible image URL to fetch server-side. Max 5 MB.","type":"string","format":"uri"},"width":{"default":64,"description":"Target canvas width in pixels. Default 64.","type":"integer","minimum":4,"maximum":256},"height":{"default":64,"description":"Target canvas height in pixels. Default 64.","type":"integer","minimum":4,"maximum":256},"scaleMode":{"default":"nearest","description":"nearest = pixel-art-preserving (best for existing pixel art). smooth = Lanczos3 downscale (best for photos → pixel art).","type":"string","enum":["nearest","smooth"]},"colors":{"description":"Quantize result to N distinct colors using median-cut. Omit to keep full color fidelity.","type":"integer","minimum":2,"maximum":256},"fit":{"default":"contain","description":"fill = stretch; contain = letterbox; cover/crop = crop to fill. Default contain.","type":"string","enum":["fill","contain","cover","crop"]},"background":{"description":"[r, g, b, a] fill color for letterbox padding. Default transparent.","type":"array","prefixItems":[{"type":"integer","minimum":0,"maximum":255},{"type":"integer","minimum":0,"maximum":255},{"type":"integer","minimum":0,"maximum":255},{"type":"integer","minimum":0,"maximum":255}]},"name":{"description":"Canvas name. Shown in the viewer tab.","type":"string","maxLength":100},"fps":{"description":"Default playback rate for frames added after import.","type":"integer","minimum":1,"maximum":60},"loop":{"default":true,"description":"Whether animation playback loops by default.","type":"boolean"},"game":{"description":"Optional engine metadata for the imported art.","type":"object","properties":{"defaultPivot":{"description":"Default render pivot shared by frames without an override.","type":"object","properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"required":["x","y"],"additionalProperties":false},"facing":{"description":"Native facing direction of the authored art.","type":"string","enum":["left","right","none"]},"rootMotion":{"description":"Whether movement is in-place or derived from a named socket.","anyOf":[{"type":"string","const":"none"},{"type":"object","properties":{"socket":{"description":"Socket whose movement represents root motion.","type":"string","minLength":1,"maxLength":64}},"additionalProperties":false}]},"clips":{"description":"Named animation ranges within this canvas.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"fromFrame":{"type":"integer","minimum":0,"maximum":9007199254740991},"toFrame":{"type":"integer","minimum":0,"maximum":9007199254740991},"fps":{"type":"integer","minimum":1,"maximum":60},"loop":{"type":"boolean"}},"required":["name","fromFrame","toFrame"],"additionalProperties":false}},"frames":{"description":"Metadata keyed by canonical zero-based frame index.","type":"object","propertyNames":{"type":"string","pattern":"^(0|[1-9]\\d*)$"},"additionalProperties":{"type":"object","properties":{"durationMs":{"description":"Per-frame duration override. Omit to use the clip or canvas FPS.","type":"integer","minimum":1,"maximum":60000},"pivot":{"description":"Per-frame pivot override. Omit to use defaultPivot.","type":"object","properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"required":["x","y"],"additionalProperties":false},"sockets":{"description":"Named attachment points such as feet, muzzle, hand, or weapon.","type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":64},"additionalProperties":{"type":"object","properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"required":["x","y"],"additionalProperties":false}},"boxes":{"description":"Gameplay geometry associated with this frame.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"kind":{"type":"string","enum":["hit","hurt","collision","interaction"]},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["kind","x","y","width","height"],"additionalProperties":false}},"events":{"description":"Events emitted when playback enters this frame.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false}}},"additionalProperties":false},"canvasId":{"description":"If provided, overwrite an existing canvas instead of creating a new one.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["width","height","scaleMode","fit","loop"],"additionalProperties":false,"example":{"imageUrl":"https://httpbin.org/image/png","width":64,"height":64}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"viewUrl":{"type":"string"},"apiUrl":{"type":"string"},"ansiUrl":{"type":"string","description":"URL that returns ANSI half-block art — pipe via `curl <ansiUrl>` to render in any terminal or agent context."},"manifestUrl":{"type":"string","description":"Engine-ready animation manifest for this mutable canvas."},"fullSpecUrl":{"type":"string","description":"Complete OpenAPI surface including free editing routes."},"guideUrl":{"type":"string","description":"Holistic agent workflow guide."},"colorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Distinct RGBA colors in the imported result."}},"required":["id","width","height","viewUrl","apiUrl","ansiUrl","manifestUrl","fullSpecUrl","guideUrl","colorCount"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/pixelart/canvas/{id}/animate":{"post":{"operationId":"pixelart_post__api_v1_canvas__id__animate","summary":"Generate a flattened animation cycle through Retro Diffusion and atomically replace the canvas frames. This is the legacy external-provider compatibility route; use segmentation plus layer transforms when authored, deterministic motion is required. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.3","sku":"pixelart.canvas.animate","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"preset":{"type":"string","enum":["walking","idle","jump","crouch","attack","destroy","custom_action","subtle_motion"],"description":"Animation preset. 'custom_action' animates whatever `prompt` describes; 'subtle_motion' adds ambient life to scenes."},"frames":{"default":8,"description":"Frame count of the generated cycle.","anyOf":[{"type":"number","const":4},{"type":"number","const":6},{"type":"number","const":8},{"type":"number","const":10},{"type":"number","const":12},{"type":"number","const":16}]},"prompt":{"description":"Motion description, e.g. 'confident steady walk, cape flowing'. Required for custom_action.","type":"string","maxLength":300},"provider":{"default":"retrodiffusion","description":"Animation backend. Retro Diffusion redraws the sprite per frame from your canvas as the start frame.","type":"string","enum":["retrodiffusion"]}},"required":["preset","frames","provider"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"canvasId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"frameCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Total animation frames on the canvas after generation."},"provider":{"type":"string"},"viewUrl":{"type":"string"}},"required":["canvasId","frameCount","provider","viewUrl"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/pixelart/canvas/{id}/animation-jobs":{"post":{"operationId":"pixelart_post__api_v1_canvas__id__animation_jobs","summary":"Create a paid, non-destructive first-party animation job through durable remote dispatch. The engine redraws locked target poses through a swappable reference-image model, generates recursive in-betweens with deterministic pixel flow, normalizes every frame to one palette and anchor, verifies motion/identity/topology, and publishes a reviewable draft. Poll the returned status URL while the remote worker runs; the editable canvas changes only after explicit application. The request escrows its exact price and settles only after durable acceptance: $0.60 without smoothing, or $0.80 for the default one-pass and optional two-pass modes. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.6","sku":"pixelart.canvas.animation-jobs.create","pricingVersion":1,"unitType":"request","maxAmount":"0.80","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.80"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sourceFrame":{"default":0,"type":"integer","minimum":0,"maximum":255},"clipName":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9][A-Za-z0-9._-]*$"},"targetFrameCount":{"type":"number","const":4},"smoothingPasses":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1},{"type":"number","const":2}]},"frameCount":{"anyOf":[{"type":"number","const":4},{"type":"number","const":6},{"type":"number","const":8}]},"fps":{"type":"integer","minimum":1,"maximum":60},"loop":{"type":"boolean"},"motion":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"preset"},"preset":{"type":"string","enum":["idle","walk","attack","jump","hurt"]},"prompt":{"type":"string","minLength":1,"maxLength":500},"strength":{"default":"medium","type":"string","enum":["subtle","medium","large"]}},"required":["kind","preset","strength"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"custom"},"prompt":{"type":"string","minLength":1,"maxLength":800},"keyPoses":{"maxItems":7,"type":"array","items":{"type":"object","properties":{"frameIndex":{"type":"integer","minimum":1,"maximum":7},"label":{"type":"string","minLength":1,"maxLength":64},"instruction":{"type":"string","minLength":1,"maxLength":300}},"required":["frameIndex","label","instruction"],"additionalProperties":false}}},"required":["kind","prompt"],"additionalProperties":false}]}},"required":["sourceFrame","motion"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"canvasId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","ready","needs_review","failed"]},"engineVersion":{"type":"string","const":"pixel-redraw-v1"},"source":{"type":"object","properties":{"frameIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sourceHash":{"type":"string"},"contentUpdatedAt":{"type":"string"}},"required":["frameIndex","width","height","sourceHash","contentUpdatedAt"],"additionalProperties":false},"frameCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusUrl":{"type":"string"},"created":{"type":"boolean"}},"required":["jobId","canvasId","status","engineVersion","source","frameCount","statusUrl","created"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/pixelart/canvas/{id}/segment/semantic":{"post":{"operationId":"pixelart_post__api_v1_canvas__id__segment_semantic","summary":"Group deterministic regions into named animation parts such as head, body, cape, limbs, and held items. Dry-run by default; materialization is revision-guarded and replaces only the selected frame by default. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.02","sku":"pixelart.canvas.segment.semantic","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"frame":{"default":0,"description":"Frame to segment. Default 0 (the primary canvas).","type":"integer","minimum":0,"maximum":9007199254740991},"maxObjects":{"default":6,"description":"Upper bound on named objects the vision model may return. Default 6.","type":"integer","minimum":2,"maximum":12},"hint":{"description":"Optional context for the vision model, e.g. \"a lich king boss holding a staff\" — improves part naming and grouping.","type":"string","maxLength":500},"materialize":{"default":false,"description":"When true, create one layer per detected object (largest = zIndex 0) with its cel on the target frame.","type":"boolean"}},"required":["frame","maxObjects","materialize"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"canvasId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"frame":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"objects":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Object name chosen by the vision model (e.g. \"staff\", \"cape\", \"head\")."},"pixelCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bbox":{"type":"object","properties":{"x":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"y":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"w":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"h":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["x","y","w","h"],"additionalProperties":false},"centroid":{"type":"object","properties":{"x":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"y":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["x","y"],"additionalProperties":false},"layerId":{"description":"Present when materialize=true.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","pixelCount","bbox","centroid"],"additionalProperties":false},"description":"Detected objects, largest first. Occluded parts (e.g. a staff split by a gripping hand) are grouped into one object."},"materialized":{"type":"boolean"}},"required":["canvasId","frame","objects","materialized"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/pixelart/canvas/{id}/sprite-sheet-releases":{"post":{"operationId":"pixelart_post__api_v1_canvas__id__sprite_sheet_releases","summary":"Publish a content-addressed PNG sprite sheet and deterministic JSON engine manifest. Repeating the same source and layout returns the same immutable release URLs. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.02","sku":"pixelart.canvas.sprite-sheet-releases.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"columns":{"description":"Frame columns. Defaults to ceil(sqrt(frameCount)).","type":"integer","minimum":1,"maximum":1024},"padding":{"default":0,"description":"Transparent gap in source pixels. Default 0.","type":"integer","minimum":0,"maximum":16},"scale":{"default":1,"description":"Nearest-neighbor integer scale. Default 1.","type":"integer","minimum":1,"maximum":8}},"required":["padding","scale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"releaseId":{"type":"string","pattern":"^[a-f0-9]{64}$"},"sourceHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"spriteSheetHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"manifestUrl":{"type":"string","format":"uri"},"spriteSheetUrl":{"type":"string","format":"uri"},"spriteSheetSizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"columns":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"rows":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"padding":{"type":"integer","minimum":0,"maximum":9007199254740991},"scale":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"frames":{"type":"array","items":{"type":"object","properties":{"frameIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"x":{"type":"integer","minimum":0,"maximum":9007199254740991},"y":{"type":"integer","minimum":0,"maximum":9007199254740991},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["frameIndex","x","y","width","height"],"additionalProperties":false}},"created":{"type":"boolean","description":"False when this exact content-addressed release already existed."}},"required":["releaseId","sourceHash","spriteSheetHash","manifestUrl","spriteSheetUrl","spriteSheetSizeBytes","width","height","columns","rows","padding","scale","frames","created"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/pixelart/canvas/{id}/export.gif":{"get":{"operationId":"pixelart_get__api_v1_canvas__id__export_gif","summary":"Export the composited animation as GIF89a bytes. Query overrides: fps=1..60; scale=1..8 (default 4); loop=true|false; transparent=true|false (default true). Stored FPS and loop are used when omitted. Full agent guide: https://pixelart.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.02","sku":"pixelart.canvas.export.gif","pricingVersion":1},"responses":{"200":{"description":"Successful response after payment","content":{"image/gif":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"GIF89a binary image bytes with centisecond delays distributed to approximate the requested FPS.","type":"string","format":"binary"}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pixelart"]}},"/api/v1/annotate/reviews":{"post":{"operationId":"annotate_post__api_v1_reviews","summary":"Create an annotation review session. Pass `url` for a live webpage, or `zipData` (base64 zip) + optional `entryFile` for a static code bundle. Returns a `shareUrl` for the human reviewer and, for bundle reviews, a `bundleUrl` to download the original source afterward.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.05","sku":"annotate.reviews.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"description":"The URL of the page to annotate. Mutually exclusive with zipData.","type":"string","format":"uri"},"zipData":{"description":"Base64-encoded zip of static site files (HTML/CSS/JS). When provided, the site is hosted by annotate and the reviewer annotates it directly. Mutually exclusive with url. Max 10 MiB decoded.","type":"string"},"entryFile":{"default":"index.html","description":"Entry point filename within the zip. Defaults to index.html. Only used when zipData is provided.","type":"string"},"callbackUrl":{"description":"Webhook URL to POST the full review JSON to when the human submits.","type":"string","format":"uri"}},"required":["entryFile"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewId":{"type":"string","description":"UUID of the created review session."},"shareUrl":{"type":"string","description":"URL to share with the human reviewer."},"bundleUrl":{"description":"Download URL for the original source zip. Present only for code-bundle reviews.","type":"string"}},"required":["reviewId","shareUrl"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["annotate"]}},"/api/v1/screenshot/screenshots":{"post":{"operationId":"screenshot_post__api_v1_screenshots","summary":"Capture a screenshot of any web page and return an image URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"screenshot.invoke","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","minLength":1,"description":"Absolute http(s) URL of the page to capture."},"width":{"description":"Viewport width in CSS pixels. Default 1280.","type":"integer","minimum":1,"maximum":3840},"height":{"description":"Viewport height in CSS pixels. Default 800. fullPage captures extend below this.","type":"integer","minimum":1,"maximum":4320},"fullPage":{"description":"Capture the entire scrollable page (a long vertical screenshot) instead of just the viewport. Cannot combine with clip.","type":"boolean"},"format":{"description":"Image format. Default png.","type":"string","enum":["png","jpeg"]},"quality":{"description":"JPEG compression quality 1-100. Only valid when format is jpeg.","type":"integer","minimum":1,"maximum":100},"omitBackground":{"description":"Render a transparent background instead of white. Only valid when format is png.","type":"boolean"},"clip":{"description":"Capture only this rectangular region of the page. Cannot combine with fullPage.","type":"object","properties":{"x":{"type":"number","minimum":0},"y":{"type":"number","minimum":0},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"deviceScaleFactor":{"description":"Pixel-density multiplier (e.g. 2 for a retina capture). Default 1.","type":"number","minimum":1,"maximum":3},"waitUntil":{"description":"Navigation lifecycle event to wait for before capturing. Default load.","type":"string","enum":["load","domcontentloaded","networkidle"]},"delayMs":{"description":"Extra settle time in milliseconds after navigation, for late-loading content.","type":"integer","minimum":0,"maximum":10000},"autoScroll":{"description":"Scroll the page top-to-bottom before capturing so scroll-triggered content (lazy-loaded sections, reveal-on-scroll animations) renders. Defaults to true for fullPage captures, false otherwise.","type":"boolean"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","description":"Public CDN URL the screenshot is served from."},"path":{"type":"string","description":"Path of the stored object within the CDN wallet namespace."},"format":{"type":"string","enum":["png","jpeg"],"description":"Image format of the stored screenshot."},"fullPage":{"type":"boolean","description":"Whether the capture spanned the full scrollable page."},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Size of the stored image in bytes."}},"required":["url","path","format","fullPage","sizeBytes"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["screenshot"]}},"/api/v1/cdn/uploads":{"post":{"operationId":"cdn_post__api_v1_uploads","summary":"Host a static website on a fast public CDN — upload a zip of your site (kind:site) and it is served instantly at /<walletId>/<slug>/. Also doubles as a one-off file host (kind:file) for individual assets like images, PDFs, or JSON.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"cdn.invoke","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"string","minLength":1,"description":"Base64-encoded bytes. For kind:site, a zip of your static website (HTML/CSS/JS). For kind:file, the raw file bytes. Max 10 MiB after decode (same cap for kind:site decompressed total)."},"kind":{"description":"\"site\" hosts a static website: data is a zip atomically deployed to your wallet folder under the slug prefix and served at /<walletId>/<slug>/ — replaces any previous deploy at that prefix. \"file\" (default) uploads a single asset under your wallet folder.","type":"string","enum":["file","site"]},"slug":{"description":"Custom path within your wallet folder. kind:site — the folder prefix the site is deployed under (e.g. \"my-site\" → served at /<walletId>/my-site/). kind:file — full filename including extension (e.g. \"logo.png\"). Re-uploads to the same slug overwrite; site re-deploys delete orphans from the previous deploy.","type":"string","minLength":1,"maxLength":512},"ext":{"description":"Required only for kind:file with no slug; ignored otherwise.","type":"string","minLength":1,"maxLength":8},"cacheTtlSeconds":{"description":"Edge cache lifetime (Cache-Control max-age) in seconds, applied to every object in this upload. Default 3600, clamped to [60, 86400]. Does not affect how long files are stored.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"walletId":{"type":"string","description":"Random per-wallet base62 id used as the folder in the URL path (the <walletId> in /<walletId>/<slug>/)."},"cacheTtlSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Resolved edge cache lifetime (Cache-Control max-age) applied to every uploaded object."},"files":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Public URL this file is served from."},"path":{"type":"string","description":"Path within your wallet namespace (the part after <walletId>/)."},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Decoded file size in bytes."}},"required":["url","path","sizeBytes"],"additionalProperties":false},"description":"One entry per uploaded file. kind:file — a single entry. kind:site — one entry per file in the zip; the hosted site's entry point is /<walletId>/<slug>/, which serves <slug>/index.html."}},"required":["walletId","cacheTtlSeconds","files"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["cdn"]}},"/api/v1/forms/forms":{"post":{"operationId":"forms_post__api_v1_forms","summary":"Create a hosted web form from a field schema and get a public URL where it can be filled in.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"forms.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"JSON Schema describing the form fields (rjsf-compatible)."},"uiSchema":{"description":"Optional rjsf UiSchema for widget hints and ordering.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"title":{"description":"Optional heading shown above the form.","type":"string","maxLength":200},"recipients":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":"1–20 email addresses notified on each submission."},"webhook":{"description":"Optional delivery webhook. Point it at an inbox connection URL to flow submissions into an agent inbox.","type":"object","properties":{"url":{"type":"string","format":"uri","description":"Each submission is POSTed here (HMAC-signed), alongside the email notification."},"secret":{"description":"HMAC secret. Required when the receiver verifies signatures — e.g. an inbox generic connection.","type":"string","minLength":8,"maxLength":256}},"required":["url"],"additionalProperties":false}},"required":["schema","recipients"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"6-character form id."},"url":{"type":"string","format":"uri","description":"Public URL where the form renders."},"submitUrl":{"type":"string","format":"uri","description":"Endpoint the rendered form POSTs submissions to."}},"required":["id","url","submitUrl"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["forms"]}},"/api/v1/urlshortener/links":{"post":{"operationId":"urlshortener_post__api_v1_links","summary":"Create a short link that redirects to a long URL for one year.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"urlshortener.create","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri","description":"The long URL to shorten."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","description":"Four-character base62 code assigned to the URL."},"shortUrl":{"type":"string","description":"Short URL of the form 0url.to/<code>."},"expires":{"type":"string","description":"ISO timestamp at which the code stops resolving."}},"required":["code","shortUrl","expires"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["urlshortener"]}},"/api/v1/feed/limits":{"get":{"description":"Free, but the caller must be identified.","operationId":"feed_getLimits","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Limits."}},"summary":"Current limits and meters","tags":["feed"]}},"/api/v1/feed/pull":{"post":{"description":"Fetches every feed concurrently and returns one normalized, deduplicated, newest-first stream.","operationId":"feed_pullFeeds","requestBody":{"content":{"application/json":{"example":{"feeds":["https://go.dev/blog/feed.atom","https://blog.cloudflare.com/rss/"],"limit":50},"schema":{"properties":{"feeds":{"description":"Feed URLs. RSS 2.0, Atom, JSON Feed and RSS 1.0 are all accepted.","items":{"format":"uri","type":"string"},"maxItems":100,"type":"array"},"limit":{"description":"Maximum items to return, newest first.","minimum":1,"type":"integer"},"since":{"description":"Only items published after this. Items with no usable date are kept.","format":"date-time","type":"string"}},"required":["feeds"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"feeds":{"items":{"type":"object"},"type":"array"},"fetchMillis":{"type":"integer"},"itemCount":{"type":"integer"},"items":{"items":{"type":"object"},"type":"array"}},"type":"object"}}},"description":"The merged stream, plus a per-feed report."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"The request could not be used. Never billed."},"402":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Payment required."}},"summary":"Pull and merge feeds","tags":["feed"]}},"/feed/health":{"get":{"operationId":"feed_health","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Alive."}},"summary":"Liveness","tags":["feed"]}},"/extract/health":{"get":{"summary":"Health","description":"Unguarded: the platform health check is not a buyer.","operationId":"extract_health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}},"tags":["extract"]}},"/extract/llms.txt":{"get":{"summary":"Llms Txt","description":"Agent-facing guide. ZeroClick surfaces this on the storefront.","operationId":"extract_llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}},"tags":["extract"]}},"/api/v1/extract/extract":{"post":{"summary":"Extract Document","description":"Paid: a fixed charge per request, with pages metered afterwards.\n\nThe natural shape here is capped pricing — declare a page ceiling with\nmax_quantity and settle at the actual count. That is what this did first,\nand ZeroClick priced it correctly. But a maxQuantity item is payable only\non the reserve-and-pay-actual rails, so ZeroClick offers the x402 `upto`\nscheme alone, and no client we can point at this today registers that\nscheme — Zero's CLI advertises `exact` only, and refuses the challenge.\n\nSo the request is billed at a flat, whole-cent price the `exact` scheme can\nsettle, and the page count rides the response header unbilled (see below).\n\nThe blocker has narrowed. A capped challenge is payable today WITHOUT `upto`:\nZeroClick offers an MPP session alongside it, and a client that cannot settle\nthe x402 entry falls back to that session rail. Zero's SDK does this as of\nPR #848 — but only on unreleased builds. 14 days of production fetches are\nalmost entirely CLI <= 1.27.1, which fails a capped challenge on the default\nprotocol, so flipping now would turn silent under-billing into buyers who\ncannot pay at all. Restore the capped form (declare `pages` with\nmax_quantity) once released clients carry the fallback.","operationId":"extract_extract_document_api_v1_extract_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["extract"]}},"/api/v1/extract/limits":{"get":{"summary":"Limits","description":"Free, but identity-scoped, so it exercises guard_identity too.","operationId":"extract_limits_api_v1_limits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["extract"]}},"/api/v1/crustdata/company/identify":{"post":{"operationId":"crustdata_post__api_v1_company_identify","summary":"Core workflow route: normalize company inputs from domains, names, professional-network company URLs, or Crustdata IDs before account enrichment or people search. Minimum-charge route: $0.01 on successful upstream calls.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"crustdata.company_identify","pricingVersion":4,"unitType":"request","maxAmount":"0.01","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.01"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domains":{"description":"Website domains to identify or enrich.","example":["openai.com"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"professional_network_profile_urls":{"description":"Company professional-network profile URLs.","example":["https://www.linkedin.com/company/openai"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"names":{"description":"Company names to identify or enrich.","example":["OpenAI"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"crustdata_company_ids":{"description":"Crustdata company IDs.","example":[12345],"minItems":1,"maxItems":25,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"exact_match":{"description":"Restrict matching to exact domain/name behavior when supported by Crustdata. Recommended for domain-sensitive account lookups.","example":true,"type":"boolean"}},"additionalProperties":false,"example":{"domains":["openai.com"],"exact_match":true}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/company/enrich":{"post":{"operationId":"crustdata_post__api_v1_company_enrich","summary":"Core workflow route: hydrate up to 25 selected accounts per call with company headcount, industry, taxonomy, people, and other detailed firmographics after identify or search. For large lists, chunk identifiers into groups of 25 so each group uses one payment instead of one payment per company. Defaults to basic_info only to prevent unexpectedly large headcount-history and people payloads; request other documented sections explicitly. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. DB company enrich costs two Crustdata credits per identifier, plus two credits for each returned technographics section.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.2","sku":"crustdata.company_enrich","pricingVersion":4,"unitType":"company","maxAmount":"10","amountKind":"unit_price","intent":"session","suggestedDeposit":"10"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domains":{"description":"Website domains to identify or enrich.","example":["openai.com"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"professional_network_profile_urls":{"description":"Company professional-network profile URLs.","example":["https://www.linkedin.com/company/openai"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"names":{"description":"Company names to identify or enrich.","example":["OpenAI"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"crustdata_company_ids":{"description":"Crustdata company IDs.","example":[12345],"minItems":1,"maxItems":25,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"exact_match":{"description":"Restrict matching to exact domain/name behavior when supported by Crustdata. Recommended for domain-sensitive account lookups.","example":true,"type":"boolean"},"fields":{"default":["basic_info"],"description":"Documented company enrich sections to include. Defaults to basic_info only to keep payloads lean; request headcount, taxonomy, people, or other sections explicitly.","example":["basic_info"],"type":"array","items":{"type":"string","enum":["basic_info","headcount","funding","locations","taxonomy","revenue","hiring","followers","seo","competitors","social_profiles","web_traffic","employee_reviews","people","news","software_reviews","public_launches","market_intel","technographics","reviews"]}}},"required":["fields"],"additionalProperties":false,"example":{"domains":["browserbase.com"],"exact_match":true,"fields":["basic_info"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false},"people":{"type":"array","items":{"type":"object","properties":{"inputIndex":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Index of the requested company identifier in the raw Crustdata response."},"matchIndex":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Index of the matched company within the raw Crustdata matches array."},"matchedOn":{"description":"Provider-reported match key, when returned by Crustdata.","type":"string"},"matchType":{"description":"Provider-reported match type, when returned by Crustdata.","type":"string"},"companyName":{"description":"Matched company name from basic_info, when present.","type":"string"},"companyDomain":{"description":"Matched company primary domain from basic_info, when present.","type":"string"},"people":{"description":"Raw Crustdata company_data.people object, commonly including decision_makers, founders, and cxos."}},"required":["inputIndex","matchIndex","people"],"additionalProperties":false},"description":"Convenience extraction of nested company_data.people blocks from each Crustdata match so callers can find decision_makers/founders/cxos without traversing the raw payload."}},"required":["data","people"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/company/search":{"post":{"operationId":"crustdata_post__api_v1_company_search","summary":"Core workflow route: build a target account page from the cached Crustdata company dataset using provider-native filters, fields, sorts, cursor, aggregations, and limit. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. CompanyDB search is priced at 0.03 Crustdata credits per returned company.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.003","sku":"crustdata.company_search","pricingVersion":4,"unitType":"result","maxAmount":"0.3","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.3"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filters":{"description":"Crustdata provider-native filter condition or condition group.","example":{"op":"and","conditions":[{"field":"basic_info.primary_domain","type":"=","value":"browserbase.com"}]}},"fields":{"description":"Response field sections or dot-paths to include.","example":["basic_info.name","basic_info.primary_domain","headcount.total"],"type":"array","items":{"type":"string","minLength":1}},"sorts":{"description":"Crustdata sort descriptors using the live API field/order contract.","example":[{"field":"headcount.total","order":"desc"}],"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Provider-native field path. The live 2025-11-01 API expects field even though some Crustdata examples use column.","example":"headcount.total"},"order":{"type":"string","enum":["asc","desc"],"description":"Sort direction.","example":"desc"}},"required":["field","order"],"additionalProperties":{}}},"cursor":{"description":"Cursor returned by the previous page.","example":"eyJwYWdlIjoyfQ","type":"string","minLength":1},"limit":{"description":"Maximum records to return. Max 100.","example":10,"type":"integer","minimum":1,"maximum":100},"preview":{"description":"Return preview metadata when supported by the endpoint.","example":false,"type":"boolean"},"aggregations":{"description":"Provider-native aggregation request for endpoints that support it.","example":{"field":"taxonomy.professional_network_industry"}}},"additionalProperties":{},"example":{"filters":{"op":"and","conditions":[{"field":"basic_info.primary_domain","type":"=","value":"browserbase.com"}]},"fields":["basic_info.name","basic_info.primary_domain","headcount.total"],"limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/company/search/autocomplete":{"post":{"operationId":"crustdata_post__api_v1_company_search_autocomplete","summary":"Query-builder helper route: autocomplete company search field values for UI/filter construction. Minimum-charge route: $0.01 on successful upstream calls.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"crustdata.company_autocomplete","pricingVersion":4,"unitType":"request","maxAmount":"0.01","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.01"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Company search field to autocomplete, using Crustdata dot-path notation for indexed endpoints.","example":"taxonomy.professional_network_industry"},"query":{"description":"Partial value to match.","example":"Software","type":"string"},"filters":{"description":"Optional provider-native filters to narrow suggestions.","example":{"op":"and","conditions":[{"field":"basic_info.primary_domain","type":"=","value":"browserbase.com"}]}},"limit":{"description":"Maximum suggestions to return.","example":10,"type":"integer","minimum":1,"maximum":100}},"required":["field"],"additionalProperties":{},"example":{"field":"taxonomy.professional_network_industry","query":"Software","limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/person/search":{"post":{"operationId":"crustdata_post__api_v1_person_search","summary":"Core workflow route: find a page of people and prospects from the cached Crustdata person dataset using provider-native filters, fields, sorts, cursor, aggregations, and limit. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. PersonDB search is priced at 0.03 Crustdata credits per returned profile.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.003","sku":"crustdata.person_search","pricingVersion":4,"unitType":"result","maxAmount":"0.3","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.3"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filters":{"description":"Crustdata provider-native filter condition or condition group.","example":{"op":"and","conditions":[{"field":"basic_info.primary_domain","type":"=","value":"browserbase.com"}]}},"fields":{"description":"Response field sections or dot-paths to include.","example":["basic_info.name","basic_info.primary_domain","headcount.total"],"type":"array","items":{"type":"string","minLength":1}},"sorts":{"description":"Crustdata sort descriptors using the live API field/order contract.","example":[{"field":"headcount.total","order":"desc"}],"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Provider-native field path. The live 2025-11-01 API expects field even though some Crustdata examples use column.","example":"headcount.total"},"order":{"type":"string","enum":["asc","desc"],"description":"Sort direction.","example":"desc"}},"required":["field","order"],"additionalProperties":{}}},"cursor":{"description":"Cursor returned by the previous page.","example":"eyJwYWdlIjoyfQ","type":"string","minLength":1},"limit":{"description":"Maximum records to return. Max 100.","example":10,"type":"integer","minimum":1,"maximum":100},"preview":{"description":"Return preview metadata when supported by the endpoint.","example":false,"type":"boolean"},"aggregations":{"description":"Provider-native aggregation request for endpoints that support it.","example":{"field":"taxonomy.professional_network_industry"}}},"additionalProperties":{},"example":{"filters":{"op":"and","conditions":[{"field":"experience.employment_details.current.company_website_domain","type":"=","value":"browserbase.com"}]},"fields":["basic_profile.name","basic_profile.current_title","social_handles.professional_network_identifier.profile_url","experience.employment_details.current.name"],"limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/person/search/role-cluster":{"post":{"operationId":"crustdata_post__api_v1_person_search_role_cluster","summary":"Decision-maker helper route: find founders, executives, GTM, product, technical, partnerships, or other role-cluster candidates at one current employer using Crustdata person/search nested filters. Returns raw Crustdata people profiles with basic_profile, social_handles, and experience rows by default so callers can inspect profile URLs and matching current employment. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. Priced like PersonDB search at 0.03 Crustdata credits per returned profile.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.003","sku":"crustdata.person_role_cluster_search","pricingVersion":4,"unitType":"result","maxAmount":"0.075","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.075"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"company_domain":{"description":"Current employer website domain, e.g. browserbase.com.","type":"string","minLength":1},"company_name":{"description":"Current employer company name when a domain or professional-network URL is not available.","type":"string","minLength":1},"company_professional_network_profile_url":{"description":"Exact current employer professional-network company profile URL.","type":"string","format":"uri"},"role_cluster":{"default":"decision_makers","description":"Motion-oriented role cluster to search. Defaults to decision_makers.","type":"string","enum":["decision_makers","executive_founder","product_growth_gtm","technical_platform_api_security","partnerships_ecosystem_devrel"]},"limit":{"description":"Maximum profiles to return. Defaults to 10; max 25.","type":"integer","minimum":1,"maximum":25},"fields":{"description":"Crustdata response fields or sections to return. Defaults to basic_profile, social_handles, and experience so callers can inspect current-employment rows and profile URLs.","type":"array","items":{"type":"string","minLength":1}}},"required":["role_cluster"],"additionalProperties":false,"example":{"company_domain":"browserbase.com","role_cluster":"decision_makers","limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/person/enrich":{"post":{"operationId":"crustdata_post__api_v1_person_enrich","summary":"Core workflow route: enrich up to 25 people per call by LinkedIn/professional-network profile URL or business email. For large lists, chunk identifiers into groups of 25 so each group uses one payment instead of one payment per person. Request narrow dot-paths when possible; use raw current_title as the primary scoring signal because normalized_title is beta, and note that some fields require field-level permission on the configured Crustdata key. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. DB profile enrich starts at one credit by profile URL or two credits by business-email reverse lookup; contact and developer field bundles settle according to Crustdata's documented add-ons up to seven credits per profile.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.1","sku":"crustdata.person_enrich","pricingVersion":4,"unitType":"profile","maxAmount":"17.5","amountKind":"unit_price","intent":"session","suggestedDeposit":"17.5"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"professional_network_profile_urls":{"description":"Person profile URLs to enrich. Max 25.","example":["https://www.linkedin.com/in/example"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"business_emails":{"description":"Business emails for reverse lookup. Max 25.","example":["founder@example.com"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"fields":{"description":"Provider-native person sections or dot-paths to include. Some documented fields require field-level permission on the configured Crustdata key; unsupported or unentitled fields return an upstream error and settle $0.","example":["basic_profile.name","basic_profile.current_title","social_handles.professional_network_identifier.profile_url"],"type":"array","items":{"type":"string","minLength":1}},"min_similarity_score":{"description":"Minimum confidence threshold for business-email reverse lookup matches.","example":0.8,"type":"number","minimum":0,"maximum":1}},"additionalProperties":false,"example":{"professional_network_profile_urls":["https://www.linkedin.com/in/example"],"fields":["basic_profile.name","basic_profile.current_title","social_handles.professional_network_identifier.profile_url"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/person/contact/enrich":{"post":{"operationId":"crustdata_post__api_v1_person_contact_enrich","summary":"Core workflow route: enrich one person's contact records by professional-network profile URL or business email. Use this when the workflow specifically needs business emails, personal emails, or phone numbers; request only the contact sub-fields needed to control credits. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. Contact enrich is priced at one to five Crustdata credits per record and may require contact-enrich entitlement on the configured Crustdata key.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.1","sku":"crustdata.person_contact_enrich","pricingVersion":4,"unitType":"profile","maxAmount":"12.5","amountKind":"unit_price","intent":"session","suggestedDeposit":"12.5"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"professional_network_profile_urls":{"description":"Person profile URLs to enrich for contact data. Max 25.","example":["https://www.linkedin.com/in/example"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"business_emails":{"description":"Business emails for reverse lookup. Max 25.","example":["founder@example.com"],"minItems":1,"maxItems":25,"type":"array","items":{"type":"string","minLength":1}},"fields":{"description":"Contact data fields to request. Use contact for all contact records, or request specific contact tiers or sub-fields to control credits.","example":["contact.business_emails"],"type":"array","items":{"type":"string","enum":["contact","contact.business_emails","contact.business_emails.email","contact.business_emails.status","contact.personal_emails","contact.personal_emails.email","contact.personal_emails.status","contact.phone_numbers","crustdata_person_id"]}}},"additionalProperties":false,"example":{"professional_network_profile_urls":["https://www.linkedin.com/in/example"],"fields":["contact.business_emails"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/person/search/autocomplete":{"post":{"operationId":"crustdata_post__api_v1_person_search_autocomplete","summary":"Query-builder helper route: autocomplete person search field values for UI/filter construction. Minimum-charge route: $0.01 on successful upstream calls.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"crustdata.person_autocomplete","pricingVersion":4,"unitType":"request","maxAmount":"0.01","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.01"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Person search field to autocomplete, using Crustdata-supported person autocomplete fields.","example":"basic_profile.country"},"query":{"description":"Partial value to match.","example":"United","type":"string"},"filters":{"description":"Optional provider-native filters to narrow suggestions.","example":{"op":"and","conditions":[{"field":"basic_info.primary_domain","type":"=","value":"browserbase.com"}]}},"limit":{"description":"Maximum suggestions to return.","example":10,"type":"integer","minimum":1,"maximum":100}},"required":["field"],"additionalProperties":{},"example":{"field":"basic_profile.country","query":"United","limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/job/search":{"post":{"operationId":"crustdata_post__api_v1_job_search","summary":"Core workflow route: search cached job listings to infer account growth, hiring priorities, expansion, or technology adoption. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. Indexed job search is priced at 0.03 Crustdata credits per returned job.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.003","sku":"crustdata.job_search","pricingVersion":4,"unitType":"result","maxAmount":"0.3","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.3"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filters":{"description":"Crustdata provider-native filter condition or condition group.","example":{"op":"and","conditions":[{"field":"basic_info.primary_domain","type":"=","value":"browserbase.com"}]}},"fields":{"description":"Response field sections or dot-paths to include.","example":["basic_info.name","basic_info.primary_domain","headcount.total"],"type":"array","items":{"type":"string","minLength":1}},"sorts":{"description":"Crustdata sort descriptors using the live API field/order contract.","example":[{"field":"headcount.total","order":"desc"}],"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Provider-native field path. The live 2025-11-01 API expects field even though some Crustdata examples use column.","example":"headcount.total"},"order":{"type":"string","enum":["asc","desc"],"description":"Sort direction.","example":"desc"}},"required":["field","order"],"additionalProperties":{}}},"cursor":{"description":"Cursor returned by the previous page.","example":"eyJwYWdlIjoyfQ","type":"string","minLength":1},"limit":{"description":"Maximum records to return. Max 100.","example":10,"type":"integer","minimum":1,"maximum":100},"preview":{"description":"Return preview metadata when supported by the endpoint.","example":false,"type":"boolean"},"aggregations":{"description":"Provider-native aggregation request for endpoints that support it.","example":{"field":"taxonomy.professional_network_industry"}}},"additionalProperties":{},"example":{"filters":{"op":"and","conditions":[{"field":"company.basic_info.primary_domain","type":"=","value":"browserbase.com"}]},"fields":["job_details.title","company.basic_info.name","job_details.url"],"limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/job/search/autocomplete":{"post":{"operationId":"crustdata_post__api_v1_job_search_autocomplete","summary":"Query-builder helper route: autocomplete job search field values for hiring-signal filter construction. Minimum-charge route: $0.01 on successful upstream calls.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"crustdata.job_autocomplete","pricingVersion":4,"unitType":"request","maxAmount":"0.01","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.01"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Job search field to autocomplete, using Crustdata job-search field names or documented aliases.","example":"title"},"query":{"type":"string","description":"Partial value to match. Use an empty string for top values when supported.","example":"Software"},"limit":{"description":"Maximum suggestions to return.","example":10,"type":"integer","minimum":1,"maximum":100}},"required":["field","query"],"additionalProperties":false,"example":{"field":"title","query":"Software","limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/web/search/live":{"post":{"operationId":"crustdata_post__api_v1_web_search_live","summary":"Core workflow route: run live web, news, scholar, AI, or social search to add external context around accounts, people, funding, markets, or recent events. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. Estimates one Crustdata credit per query.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.1","sku":"crustdata.web_search","pricingVersion":4,"unitType":"query","maxAmount":"0.1","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.1"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":5000,"description":"Search query text.","example":"recent funding news for AI infrastructure startups"},"location":{"description":"ISO 3166-1 alpha-2 country code for region-specific results.","example":"US","type":"string","minLength":2,"maxLength":2},"sources":{"description":"Sources to query, such as web, news, scholar-articles, ai, or social.","example":["web","news"],"type":"array","items":{"type":"string","minLength":1}},"site":{"description":"Restrict results to a domain or path.","example":"example.com","type":"string","maxLength":500},"start_date":{"description":"Unix timestamp in seconds; only results after this date.","example":1735689600,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"end_date":{"description":"Unix timestamp in seconds; only results before this date.","example":1767225600,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"human_mode":{"description":"Attempt a browser-like retrieval path when standard access is blocked.","example":false,"type":"boolean"},"page":{"description":"Number of result pages to aggregate.","example":1,"type":"integer","minimum":1,"maximum":1}},"required":["query"],"additionalProperties":false,"example":{"query":"recent funding news for AI infrastructure startups","location":"US","sources":["web","news"],"page":1}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/crustdata/web/enrich/live":{"post":{"operationId":"crustdata_post__api_v1_web_enrich_live","summary":"Core workflow route: fetch and enrich public web pages returned by web search or supplied by the caller. Default pricing is $0.10 per Crustdata credit with a $0.01 minimum successful-call settlement. Upstream Crustdata errors settle $0. Estimates one Crustdata credit per URL.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.1","sku":"crustdata.web_fetch","pricingVersion":4,"unitType":"url","maxAmount":"1","amountKind":"unit_price","intent":"session","suggestedDeposit":"1"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"urls":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","format":"uri"},"description":"Public URLs to fetch. Max 10.","example":["https://example.com"]},"human_mode":{"description":"Attempt a browser-like retrieval path when standard access is blocked.","example":false,"type":"boolean"}},"required":["urls"],"additionalProperties":{},"example":{"urls":["https://example.com"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Crustdata."},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Estimated Crustdata API credits charged for this request.","example":0.06},"minimumCallUsdcMicro":{"type":"string","description":"Configured minimum successful-call settlement in USDC micro-units.","example":"10000"},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Crustdata API credit.","example":"100000"},"settledUsdcMicro":{"type":"string","description":"USDC micro-units settled for this request.","example":"10000"}},"required":["apiCredits","minimumCallUsdcMicro","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["crustdata"]}},"/api/v1/wiza/individual-reveals":{"post":{"operationId":"wiza_post__api_v1_individual_reveals","summary":"Start a Wiza individual reveal for one contact and poll until completion. Accepts name + company/domain, email, or LinkedIn profile URL. Advertised unit price starts at $0.01/profile; final metered settlement follows Wiza api_credits.total and can be up to $0.08/profile when Wiza returns contact-field credits.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"wiza.individual_reveal","pricingVersion":1,"unitType":"profile","maxAmount":"0.08","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.08"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wait_for_result":{"description":"Poll Wiza status endpoints before returning. Metered Wiza routes require this to stay true so billing can settle from final credit usage.","type":"boolean","const":true},"max_wait_ms":{"description":"Maximum time to poll Wiza before returning a timeout if the upstream job is still queued/running. Defaults to 25000.","type":"integer","minimum":1,"maximum":60000},"poll_interval_ms":{"description":"Delay between Wiza status polls. Defaults to 2000.","type":"integer","minimum":500,"maximum":10000},"individual_reveal":{"anyOf":[{"type":"object","properties":{"full_name":{"type":"string","minLength":1,"description":"Full name of the contact, e.g. \"Stephen Hakami\"."},"company":{"description":"Company name. Required with full_name when domain is absent.","type":"string","minLength":1},"domain":{"description":"Company domain. Required with full_name when company is absent.","type":"string","minLength":1},"profile_url":{"description":"LinkedIn profile URL, if already known.","type":"string","minLength":1},"email":{"description":"Known email address for this contact.","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["full_name"],"additionalProperties":false},{"type":"object","properties":{"profile_url":{"type":"string","minLength":1,"description":"LinkedIn, Sales Navigator, or Recruiter profile URL."}},"required":["profile_url"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"Known email address for this contact."}},"required":["email"],"additionalProperties":false}],"description":"Contact to enrich. Provide full_name plus company or domain, an email, or a LinkedIn profile URL.","example":{"full_name":"Ada Lovelace","company":"Analytical Engines"}},"enrichment_level":{"type":"string","enum":["none","partial","phone","full"],"description":"none = LinkedIn/profile data only; partial = email; phone = phone; full = email and phone."},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails Wiza may return for an individual reveal."},"callback_url":{"description":"Optional Wiza webhook URL for asynchronous completion updates.","type":"string","format":"uri"}},"required":["individual_reveal","enrichment_level"],"additionalProperties":false,"example":{"individual_reveal":{"full_name":"Ada Lovelace","company":"Analytical Engines"},"enrichment_level":"partial"}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string","const":"individual_reveal"},"data":{"type":"object","properties":{"id":{"type":"number"},"status":{"type":"string"},"fail_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_complete":{"type":"boolean"},"name":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"location":{"type":"string"},"enrichment_level":{"type":"string"},"linkedin_profile_url":{"type":"string"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"email_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"email_status":{"anyOf":[{"type":"string"},{"type":"null"}]},"emails":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"email_type":{"type":"string"},"email_status":{"anyOf":[{"type":"string","enum":["valid","risky","invalid","unfound"]},{"type":"string"}]}},"additionalProperties":{}}},"mobile_phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone_status":{"anyOf":[{"type":"string"},{"type":"null"}]},"phones":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string"},"pretty_number":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["mobile","other"]},{"type":"string"}]}},"additionalProperties":{}}},"company_size":{"type":"number"},"company_type":{"type":"string"},"company_domain":{"type":"string"},"company_locality":{"type":"string"},"company_region":{"type":"string"},"company_country":{"type":"string"},"company_street":{"type":"string"},"company_founded":{"type":"number"},"company_funding":{"type":"number"},"company_revenue":{"type":"number"},"company_industry":{"type":"string"},"company_linkedin":{"type":"string"},"company_location":{"type":"string"},"company_size_range":{"type":"string"},"company_description":{"type":"string"},"company_postal_code":{"type":"string"},"company_subindustry":{"type":"string"},"credits":{"anyOf":[{"type":"object","properties":{"api_credits":{"anyOf":[{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Wiza API credits found in the upstream response and used for metered settlement."},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Wiza API credit."},"settledUsdcMicro":{"type":"string","description":"Actual metered MPP settlement amount in USDC micro-units."}},"required":["apiCredits","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/company-enrichments":{"post":{"operationId":"wiza_post__api_v1_company_enrichments","summary":"Enrich one company by name, domain, LinkedIn ID, or LinkedIn slug. Returns Wiza company industry, size, revenue, funding, social, and location fields. Metered billing settles from Wiza company enrichment API credits.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.02","sku":"wiza.company_enrichment","pricingVersion":1,"unitType":"company","maxAmount":"0.02","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.02"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"company_name":{"description":"Company name to enrich, e.g. Wiza.","type":"string","minLength":1},"company_domain":{"description":"Company domain to enrich, e.g. wiza.co.","type":"string","minLength":1},"company_linkedin_id":{"description":"LinkedIn company ID.","type":"string","minLength":1},"company_linkedin_slug":{"description":"LinkedIn company slug from the company URL.","type":"string","minLength":1}},"additionalProperties":false,"example":{"company_domain":"wiza.co"}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string"},"data":{"type":"object","properties":{"company_name":{"type":"string"},"company_domain":{"type":"string"},"domain":{"type":"string"},"company_industry":{"type":"string"},"company_size":{"type":"number"},"company_size_range":{"type":"string"},"company_founded":{"type":"number"},"company_revenue_range":{"type":"string"},"company_funding":{"anyOf":[{"type":"number"},{"type":"null"}]},"company_type":{"type":"string"},"company_description":{"type":"string"},"company_ticker":{"anyOf":[{"type":"string"},{"type":"null"}]},"company_last_funding_round":{"anyOf":[{"type":"string"},{"type":"null"}]},"company_last_funding_amount":{"anyOf":[{"type":"number"},{"type":"null"}]},"company_last_funding_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"company_location":{"type":"string"},"company_twitter":{"anyOf":[{"type":"string"},{"type":"null"}]},"company_facebook":{"anyOf":[{"type":"string"},{"type":"null"}]},"company_linkedin":{"type":"string"},"company_street":{"type":"string"},"company_locality":{"type":"string"},"company_region":{"type":"string"},"company_postal_code":{"type":"string"},"company_country":{"type":"string"},"company_linkedin_id":{"type":"string"},"credits":{"type":"object","properties":{"api_credits":{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}}},"additionalProperties":{}}},"additionalProperties":{}},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Wiza API credits found in the upstream response and used for metered settlement."},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Wiza API credit."},"settledUsdcMicro":{"type":"string","description":"Actual metered MPP settlement amount in USDC micro-units."}},"required":["apiCredits","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/individual-reveals/get":{"post":{"operationId":"wiza_post__api_v1_individual_reveals_get","summary":"Get Wiza individual reveal status and returned contact data by reveal ID. Proof-only route: no payment.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"wiza.individual_reveal_status","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Wiza individual reveal ID."}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string","const":"individual_reveal"},"data":{"type":"object","properties":{"id":{"type":"number"},"status":{"type":"string"},"fail_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_complete":{"type":"boolean"},"name":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"location":{"type":"string"},"enrichment_level":{"type":"string"},"linkedin_profile_url":{"type":"string"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"email_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"email_status":{"anyOf":[{"type":"string"},{"type":"null"}]},"emails":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"email_type":{"type":"string"},"email_status":{"anyOf":[{"type":"string","enum":["valid","risky","invalid","unfound"]},{"type":"string"}]}},"additionalProperties":{}}},"mobile_phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone_status":{"anyOf":[{"type":"string"},{"type":"null"}]},"phones":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string"},"pretty_number":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["mobile","other"]},{"type":"string"}]}},"additionalProperties":{}}},"company_size":{"type":"number"},"company_type":{"type":"string"},"company_domain":{"type":"string"},"company_locality":{"type":"string"},"company_region":{"type":"string"},"company_country":{"type":"string"},"company_street":{"type":"string"},"company_founded":{"type":"number"},"company_funding":{"type":"number"},"company_revenue":{"type":"number"},"company_industry":{"type":"string"},"company_linkedin":{"type":"string"},"company_location":{"type":"string"},"company_size_range":{"type":"string"},"company_description":{"type":"string"},"company_postal_code":{"type":"string"},"company_subindustry":{"type":"string"},"credits":{"anyOf":[{"type":"object","properties":{"api_credits":{"anyOf":[{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/prospects/search":{"post":{"operationId":"wiza_post__api_v1_prospects_search","summary":"Count matching Wiza prospects by title, seniority, role, current company, industry, location, company size, funding, revenue, LinkedIn slug, and other Wiza filters. Company-name aliases are normalized to Wiza job_company; domain-only company targeting is rejected because Wiza Prospect does not support it. Proof-only route: no payment; returned preview profiles consume Wiza API credits and belong on paid list/reveal routes.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"wiza.prospect_search","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"size":{"description":"Count-only proof route: omit this field or set it to 0. Returned preview profiles consume Wiza API credits and must use a paid route.","type":"number","const":0},"filters":{"type":"object","properties":{"first_name":{"description":"Exact first-name matches.","type":"array","items":{"type":"string"}},"last_name":{"description":"Exact last-name matches.","type":"array","items":{"type":"string"}},"job_title":{"description":"Job titles to include or exclude. Wrap a title in quotes for exact title matching.","type":"array","items":{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false}},"job_title_level":{"description":"Seniority levels.","type":"array","items":{"type":"string","enum":["CXO","Director","Entry","Manager","Owner","Partner","Senior","Training","Unpaid","VP"]}},"job_role":{"description":"Functional roles.","type":"array","items":{"type":"string","enum":["customer_service","design","education","engineering","finance","health","human_resources","legal","marketing","media","operations","public_relations","real_estate","sales","trades"]}},"job_sub_role":{"description":"Wiza job sub-role values such as software, recruiting, customer_success, product, or data.","type":"array","items":{"type":"string"}},"location":{"description":"Prospect locations to include or exclude.","type":"array","items":{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Location name. City format: \"city, state, country\"; state format: \"state, country\"; country format: \"country\"."},"b":{"type":"string","enum":["city","state","country"],"description":"Location type."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v","b"],"additionalProperties":false}},"skill":{"description":"Skills to match.","type":"array","items":{"type":"string"}},"school":{"description":"Exact school names.","type":"array","items":{"type":"string"}},"major":{"description":"Majors to match.","type":"array","items":{"type":"string"}},"linkedin_slug":{"description":"LinkedIn profile slugs or full LinkedIn profile URLs.","type":"array","items":{"type":"string"}},"job_company":{"description":"Current company names to include or exclude. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"business_name":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company_name":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"current_company":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"past_company":{"description":"Past company names to include or exclude. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company_location":{"description":"Company locations to include or exclude.","type":"array","items":{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Location name. City format: \"city, state, country\"; state format: \"state, country\"; country format: \"country\"."},"b":{"type":"string","enum":["city","state","country"],"description":"Location type."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v","b"],"additionalProperties":false}},"company_industry":{"description":"Company industries to include or exclude, using Wiza industry values. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company_size":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]}},"company_annual_growth":{"type":"string","enum":["0-5%","5-10%","10-20%","20-50%","50-100%","100%+"]},"department_size":{"description":"Department headcount filters such as \"sales:10-50\", \"engineering:10-\", or \"marketing:-50\".","type":"array","items":{"type":"string"}},"revenue":{"type":"array","items":{"type":"string","enum":["$0-$1M","$1M-$10M","$10M-$25M","$25M-$50M","$50M-$100M","$100M-$250M","$250M-$500M","$500M-$1B","$1B-$10B","$10B+"]}},"funding_date":{"type":"object","properties":{"t":{"type":"string","enum":["last","any"],"description":"Match the last funding event or any funding event."},"v":{"type":"string","minLength":1,"description":"Wiza funding value such as 60d, 90d, 1y, seed, series_a, or venture depending on the field."}},"required":["t","v"],"additionalProperties":false},"last_funding_min":{"type":"string"},"last_funding_max":{"type":"string"},"funding_min":{"type":"string"},"funding_max":{"type":"string"},"funding_stage":{"type":"object","properties":{"t":{"type":"string","enum":["last","any"]},"v":{"type":"array","items":{"type":"string","enum":["pre_seed","seed","series_a","series_b","series_c","series_d","series_e-j","other"]}}},"required":["t","v"],"additionalProperties":false},"funding_type":{"type":"object","properties":{"t":{"type":"string","enum":["last","any"]},"v":{"type":"array","items":{"type":"string","enum":["angel","venture","grant","debt_financing","private_equity","crowdfunding","other"]}}},"required":["t","v"],"additionalProperties":false},"company_type":{"type":"array","items":{"type":"string","enum":["private","public","educational","government","nonprofit","public_subsidiary"]}},"company_summary":{"description":"Words to include or exclude in the company summary. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"year_founded_start":{"type":"string"},"year_founded_end":{"type":"string"}},"additionalProperties":{},"description":"Wiza prospect search filters. Additional Wiza-documented filter fields are accepted and forwarded."}},"required":["filters"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"data":{"type":"object","properties":{"total":{"type":"number"},"profiles":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"additionalProperties":{}}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/prospect-lists":{"post":{"operationId":"wiza_post__api_v1_prospect_lists","summary":"Create an enriched Wiza prospect list from search filters, including company-name aliases normalized to Wiza job_company. Capped at 30 profiles per call; payment escrow is sized from list.max_profiles and final settlement comes from Wiza list api_credits.total.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.08","sku":"wiza.prospect_list_create","pricingVersion":1,"unitType":"profile","maxAmount":"2.4","amountKind":"unit_price","intent":"session","suggestedDeposit":"2.4"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wait_for_result":{"description":"Poll Wiza status endpoints before returning. Metered Wiza routes require this to stay true so billing can settle from final credit usage.","type":"boolean","const":true},"max_wait_ms":{"description":"Maximum time to poll Wiza before returning a timeout if the upstream job is still queued/running. Defaults to 25000.","type":"integer","minimum":1,"maximum":60000},"poll_interval_ms":{"description":"Delay between Wiza status polls. Defaults to 2000.","type":"integer","minimum":500,"maximum":10000},"list":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Name of the prospect list."},"max_profiles":{"type":"integer","minimum":1,"maximum":30,"description":"Number of prospects to enrich. Capped at 30 for bounded metered pricing."},"enrichment_level":{"description":"none = profile data only; partial = emails; full = emails and phone numbers. Defaults to partial.","type":"string","enum":["none","partial","full"]},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"},"accept_generic":{"description":"Return generic role addresses such as hello@apple.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails Wiza may return for list-style enrichment."},"skip_duplicates":{"description":"Skip contacts previously found in other API lists.","type":"boolean"},"callback_url":{"description":"Optional Wiza webhook URL for asynchronous completion updates.","type":"string","format":"uri"}},"required":["name","max_profiles"],"additionalProperties":false},"filters":{"type":"object","properties":{"first_name":{"description":"Exact first-name matches.","type":"array","items":{"type":"string"}},"last_name":{"description":"Exact last-name matches.","type":"array","items":{"type":"string"}},"job_title":{"description":"Job titles to include or exclude. Wrap a title in quotes for exact title matching.","type":"array","items":{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false}},"job_title_level":{"description":"Seniority levels.","type":"array","items":{"type":"string","enum":["CXO","Director","Entry","Manager","Owner","Partner","Senior","Training","Unpaid","VP"]}},"job_role":{"description":"Functional roles.","type":"array","items":{"type":"string","enum":["customer_service","design","education","engineering","finance","health","human_resources","legal","marketing","media","operations","public_relations","real_estate","sales","trades"]}},"job_sub_role":{"description":"Wiza job sub-role values such as software, recruiting, customer_success, product, or data.","type":"array","items":{"type":"string"}},"location":{"description":"Prospect locations to include or exclude.","type":"array","items":{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Location name. City format: \"city, state, country\"; state format: \"state, country\"; country format: \"country\"."},"b":{"type":"string","enum":["city","state","country"],"description":"Location type."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v","b"],"additionalProperties":false}},"skill":{"description":"Skills to match.","type":"array","items":{"type":"string"}},"school":{"description":"Exact school names.","type":"array","items":{"type":"string"}},"major":{"description":"Majors to match.","type":"array","items":{"type":"string"}},"linkedin_slug":{"description":"LinkedIn profile slugs or full LinkedIn profile URLs.","type":"array","items":{"type":"string"}},"job_company":{"description":"Current company names to include or exclude. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"business_name":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company_name":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"current_company":{"description":"Alias for job_company. Use this when targeting prospects at specific current companies.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"past_company":{"description":"Past company names to include or exclude. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company_location":{"description":"Company locations to include or exclude.","type":"array","items":{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Location name. City format: \"city, state, country\"; state format: \"state, country\"; country format: \"country\"."},"b":{"type":"string","enum":["city","state","country"],"description":"Location type."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v","b"],"additionalProperties":false}},"company_industry":{"description":"Company industries to include or exclude, using Wiza industry values. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"company_size":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]}},"company_annual_growth":{"type":"string","enum":["0-5%","5-10%","10-20%","20-50%","50-100%","100%+"]},"department_size":{"description":"Department headcount filters such as \"sales:10-50\", \"engineering:10-\", or \"marketing:-50\".","type":"array","items":{"type":"string"}},"revenue":{"type":"array","items":{"type":"string","enum":["$0-$1M","$1M-$10M","$10M-$25M","$25M-$50M","$50M-$100M","$100M-$250M","$250M-$500M","$500M-$1B","$1B-$10B","$10B+"]}},"funding_date":{"type":"object","properties":{"t":{"type":"string","enum":["last","any"],"description":"Match the last funding event or any funding event."},"v":{"type":"string","minLength":1,"description":"Wiza funding value such as 60d, 90d, 1y, seed, series_a, or venture depending on the field."}},"required":["t","v"],"additionalProperties":false},"last_funding_min":{"type":"string"},"last_funding_max":{"type":"string"},"funding_min":{"type":"string"},"funding_max":{"type":"string"},"funding_stage":{"type":"object","properties":{"t":{"type":"string","enum":["last","any"]},"v":{"type":"array","items":{"type":"string","enum":["pre_seed","seed","series_a","series_b","series_c","series_d","series_e-j","other"]}}},"required":["t","v"],"additionalProperties":false},"funding_type":{"type":"object","properties":{"t":{"type":"string","enum":["last","any"]},"v":{"type":"array","items":{"type":"string","enum":["angel","venture","grant","debt_financing","private_equity","crowdfunding","other"]}}},"required":["t","v"],"additionalProperties":false},"company_type":{"type":"array","items":{"type":"string","enum":["private","public","educational","government","nonprofit","public_subsidiary"]}},"company_summary":{"description":"Words to include or exclude in the company summary. Strings are accepted and normalized to include filters.","type":"array","items":{"anyOf":[{"type":"object","properties":{"v":{"type":"string","minLength":1,"description":"Filter value."},"s":{"description":"Use \"i\" to include or \"e\" to exclude. Defaults to include when omitted.","type":"string","enum":["i","e"]}},"required":["v"],"additionalProperties":false},{"type":"string","minLength":1}]}},"year_founded_start":{"type":"string"},"year_founded_end":{"type":"string"}},"additionalProperties":{},"description":"Wiza prospect search filters. Additional Wiza-documented filter fields are accepted and forwarded."}},"required":["list","filters"],"additionalProperties":false,"example":{"list":{"name":"US founders sample","max_profiles":3},"filters":{"job_title":[{"v":"founder"}]}}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string","const":"list"},"data":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"status":{"type":"string"},"stats":{"type":"object","properties":{"people":{"type":"number"},"credits":{"type":"object","properties":{"api_credits":{"anyOf":[{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}}},"additionalProperties":{}},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"enrichment_level":{"type":"string"},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"},"accept_generic":{"description":"Return generic role addresses such as hello@apple.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails Wiza may return for list-style enrichment."},"report_type":{"type":"string"}},"additionalProperties":{}},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Wiza API credits found in the upstream response and used for metered settlement."},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Wiza API credit."},"settledUsdcMicro":{"type":"string","description":"Actual metered MPP settlement amount in USDC micro-units."}},"required":["apiCredits","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/prospect-lists/continue":{"post":{"operationId":"wiza_post__api_v1_prospect_lists_continue","summary":"Continue a Wiza prospect list search to fetch additional matching profiles. Capped at 30 additional profiles per call; payment escrow is sized from max_profiles when provided and final settlement comes from Wiza list api_credits.total.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.08","sku":"wiza.prospect_list_continue","pricingVersion":1,"unitType":"profile","maxAmount":"2.4","amountKind":"unit_price","intent":"session","suggestedDeposit":"2.4"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wait_for_result":{"description":"Poll Wiza status endpoints before returning. Metered Wiza routes require this to stay true so billing can settle from final credit usage.","type":"boolean","const":true},"max_wait_ms":{"description":"Maximum time to poll Wiza before returning a timeout if the upstream job is still queued/running. Defaults to 25000.","type":"integer","minimum":1,"maximum":60000},"poll_interval_ms":{"description":"Delay between Wiza status polls. Defaults to 2000.","type":"integer","minimum":500,"maximum":10000},"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"ID of the prospect list to continue."},"max_profiles":{"description":"Additional results to return. Defaults to Wiza's previous list value; capped at 30.","type":"integer","minimum":1,"maximum":30},"callback_url":{"description":"Optional Wiza webhook URL for asynchronous completion updates.","type":"string","format":"uri"}},"required":["id"],"additionalProperties":false,"example":{"id":12345,"max_profiles":3}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string","const":"list"},"data":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"status":{"type":"string"},"stats":{"type":"object","properties":{"people":{"type":"number"},"credits":{"type":"object","properties":{"api_credits":{"anyOf":[{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}}},"additionalProperties":{}},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"enrichment_level":{"type":"string"},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"},"accept_generic":{"description":"Return generic role addresses such as hello@apple.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails Wiza may return for list-style enrichment."},"report_type":{"type":"string"}},"additionalProperties":{}},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Wiza API credits found in the upstream response and used for metered settlement."},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Wiza API credit."},"settledUsdcMicro":{"type":"string","description":"Actual metered MPP settlement amount in USDC micro-units."}},"required":["apiCredits","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/lists":{"post":{"operationId":"wiza_post__api_v1_lists","summary":"Create a Wiza enrichment list from explicit contacts, emails, or LinkedIn profile URLs. Supports up to 30 items per call; payment escrow is sized from the submitted item count and final settlement comes from Wiza list api_credits.total.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.08","sku":"wiza.list_create","pricingVersion":1,"unitType":"profile","maxAmount":"2.4","amountKind":"unit_price","intent":"session","suggestedDeposit":"2.4"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wait_for_result":{"description":"Poll Wiza status endpoints before returning. Metered Wiza routes require this to stay true so billing can settle from final credit usage.","type":"boolean","const":true},"max_wait_ms":{"description":"Maximum time to poll Wiza before returning a timeout if the upstream job is still queued/running. Defaults to 25000.","type":"integer","minimum":1,"maximum":60000},"poll_interval_ms":{"description":"Delay between Wiza status polls. Defaults to 2000.","type":"integer","minimum":500,"maximum":10000},"list":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Name of the Wiza enrichment list."},"enrichment_level":{"type":"string","enum":["none","partial","full"],"description":"none = profile data only; partial = emails; full = emails and phone numbers."},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"},"accept_generic":{"description":"Return generic role addresses such as hello@apple.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails to return."},"items":{"minItems":1,"maxItems":30,"type":"array","items":{"anyOf":[{"type":"object","properties":{"full_name":{"type":"string","minLength":1,"description":"Full name of the contact, e.g. \"Stephen Hakami\"."},"company":{"description":"Company name. Required with full_name when domain is absent.","type":"string","minLength":1},"domain":{"description":"Company domain. Required with full_name when company is absent.","type":"string","minLength":1},"profile_url":{"description":"LinkedIn profile URL, if already known.","type":"string","minLength":1},"email":{"description":"Known email address for this contact.","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["full_name"],"additionalProperties":false},{"type":"object","properties":{"profile_url":{"type":"string","minLength":1,"description":"LinkedIn, Sales Navigator, or Recruiter profile URL."}},"required":["profile_url"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"Known email address for this contact."}},"required":["email"],"additionalProperties":false}],"description":"One Wiza contact input.","example":{"full_name":"Ada Lovelace","company":"Analytical Engines"}},"description":"People to enrich. Wiza supports larger lists, but this public listing caps one call at 30 items to keep max payment bounded."},"callback_url":{"description":"Optional Wiza webhook URL for asynchronous completion updates.","type":"string","format":"uri"}},"required":["name","enrichment_level","email_options","items"],"additionalProperties":false}},"required":["list"],"additionalProperties":false,"example":{"list":{"name":"Enrichment sample","enrichment_level":"partial","email_options":{"accept_work":true},"items":[{"full_name":"Ada Lovelace","company":"Analytical Engines"}]}}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string","const":"list"},"data":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"status":{"type":"string"},"stats":{"type":"object","properties":{"people":{"type":"number"},"credits":{"type":"object","properties":{"api_credits":{"anyOf":[{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}}},"additionalProperties":{}},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"enrichment_level":{"type":"string"},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"},"accept_generic":{"description":"Return generic role addresses such as hello@apple.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails Wiza may return for list-style enrichment."},"report_type":{"type":"string"}},"additionalProperties":{}},"billing":{"type":"object","properties":{"apiCredits":{"type":"number","description":"Wiza API credits found in the upstream response and used for metered settlement."},"pricePerCreditUsdcMicro":{"type":"string","description":"Configured USDC micro-units charged per Wiza API credit."},"settledUsdcMicro":{"type":"string","description":"Actual metered MPP settlement amount in USDC micro-units."}},"required":["apiCredits","pricePerCreditUsdcMicro","settledUsdcMicro"],"additionalProperties":false}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/lists/get":{"post":{"operationId":"wiza_post__api_v1_lists_get","summary":"Get Wiza list status, stats, completion timestamp, enrichment level, and credit metadata by list ID. Proof-only route: no payment.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"wiza.list_status","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Wiza list ID."}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"type":{"type":"string","const":"list"},"data":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"status":{"type":"string"},"stats":{"type":"object","properties":{"people":{"type":"number"},"credits":{"type":"object","properties":{"api_credits":{"anyOf":[{"type":"object","properties":{"total":{"type":"number"},"email_credits":{"type":"number"},"phone_credits":{"type":"number"},"scrape_credits":{"type":"number"},"company_credits":{"type":"number"}},"additionalProperties":{}},{"type":"null"}]}},"additionalProperties":{}}},"additionalProperties":{}},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"enrichment_level":{"type":"string"},"email_options":{"type":"object","properties":{"accept_work":{"description":"Return professional email addresses such as tim.cook@apple.com.","type":"boolean"},"accept_personal":{"description":"Return personal email addresses such as tcook1960@gmail.com.","type":"boolean"},"accept_generic":{"description":"Return generic role addresses such as hello@apple.com.","type":"boolean"}},"additionalProperties":false,"description":"Types of emails Wiza may return for list-style enrichment."},"report_type":{"type":"string"}},"additionalProperties":{}}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/lists/contacts":{"post":{"operationId":"wiza_post__api_v1_lists_contacts","summary":"Get contacts for a completed Wiza list. Supports people, valid, and risky segments. Proof-only route: no payment.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"wiza.list_contacts","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Wiza list ID."},"segment":{"description":"Contact segment to return. Defaults to people.","type":"string","enum":["people","valid","risky"]}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}},"additionalProperties":{}},"data":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/wiza/credits":{"post":{"operationId":"wiza_post__api_v1_credits","summary":"Get the Wiza account credit balance for email, phone, export, and API credits. Proof-only route: no payment.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"wiza.credits","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"credits":{"type":"object","properties":{"email_credits":{"anyOf":[{"type":"string"},{"type":"number"}]},"phone_credits":{"anyOf":[{"type":"string"},{"type":"number"}]},"export_credits":{"type":"number"},"api_credits":{"type":"number"}},"additionalProperties":{}}},"additionalProperties":{}}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["wiza"]}},"/api/v1/pipe0/company/identity":{"post":{"operationId":"pipe0_post__api_v1_company_identity","summary":"Resolve one company name through Pipe0 company:identity@3. At-cost fixed cap: max($0.01, 0.30 Pipe0 credits × $999/34,000 credits). Useful as a lightweight first step, fallback, or corroboration step before Crustdata enrichment workflows.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"pipe0.company_identity","pricingVersion":3,"unitType":"company","maxAmount":"0.01","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.01"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"company_names":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Company names to resolve through company:identity@3."},"environment":{"type":"string","enum":["production","sandbox"]}},"required":["company_names"],"additionalProperties":false,"example":{"company_names":["OpenAI"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."},"billing":{"type":"object","properties":{"pipe0Credits":{"type":"number"},"maxPipe0Credits":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"pricingVersion":{"type":"number"},"settledUsdcMicro":{"type":"string"}},"required":["pipe0Credits","maxPipe0Credits","planUsdcMicro","planCredits","pricingVersion","settledUsdcMicro"],"additionalProperties":false}},"required":["data","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/company/overview":{"post":{"operationId":"pipe0_post__api_v1_company_overview","summary":"Enrich one company domain or professional-network company profile URL through Pipe0 company:overview@3. At-cost cap: 1.00 Pipe0 credit × $999/34,000 credits for company description, industry, geography, size, and related overview fields.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.029383","sku":"pipe0.company_overview","pricingVersion":3,"unitType":"company","maxAmount":"0.029383","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.029383"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"company_domains":{"description":"Company domains to enrich through company:overview@3.","minItems":1,"maxItems":1,"type":"array","items":{"type":"string","minLength":1}},"company_profile_urls":{"description":"Professional-network company profile URLs to enrich through company:overview@3.","minItems":1,"maxItems":1,"type":"array","items":{"type":"string","format":"uri"}},"company_website_urls":{"description":"Compatibility alias for website URLs. Normalized to company_domain before calling Pipe0 company:overview@3.","minItems":1,"maxItems":1,"type":"array","items":{"type":"string","format":"uri"}},"environment":{"type":"string","enum":["production","sandbox"]}},"additionalProperties":false,"example":{"company_domains":["openai.com"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."},"billing":{"type":"object","properties":{"pipe0Credits":{"type":"number"},"maxPipe0Credits":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"pricingVersion":{"type":"number"},"settledUsdcMicro":{"type":"string"}},"required":["pipe0Credits","maxPipe0Credits","planUsdcMicro","planCredits","pricingVersion","settledUsdcMicro"],"additionalProperties":false}},"required":["data","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/company/search":{"post":{"operationId":"pipe0_post__api_v1_company_search","summary":"Search one Pipe0 company profile page through companies:profiles:crustdata@2 with provider-native include/exclude filters, cursor, output fields, and a bounded 100-result limit. At-cost cap: 2 Pipe0 credits per page × $999/34,000 credits.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.058765","sku":"pipe0.company_search","pricingVersion":3,"unitType":"page","maxAmount":"0.058765","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.058765"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Pipe0 provider-native company search filters. Current Crustdata company search filters use include/exclude objects, e.g. { \"linkedin_industries\": { \"include\": [\"Software Development\"], \"exclude\": [] } }.","example":{"linkedin_industries":{"include":["Software Development"],"exclude":[]}}},"output_fields":{"description":"Pipe0 output_fields config for companies:profiles:crustdata@2.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"cursor":{"description":"Pipe0 pagination cursor from next_page.","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"limit":{"description":"Maximum results. Default and max 100.","type":"integer","minimum":1,"maximum":100},"environment":{"type":"string","enum":["production","sandbox"]}},"required":["filters"],"additionalProperties":{},"example":{"filters":{"linkedin_industries":{"include":["Software Development"],"exclude":[]}},"limit":10}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."},"billing":{"type":"object","properties":{"pipe0Credits":{"type":"number"},"maxPipe0Credits":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"pricingVersion":{"type":"number"},"settledUsdcMicro":{"type":"string"}},"required":["pipe0Credits","maxPipe0Credits","planUsdcMicro","planCredits","pricingVersion","settledUsdcMicro"],"additionalProperties":false}},"required":["data","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/person/profile":{"post":{"operationId":"pipe0_post__api_v1_person_profile","summary":"Enrich one person profile URL through Pipe0 people:profile:waterfall@1. At-cost cap: 1.00 Pipe0 credit × $999/34,000 credits for successful profile enrichment.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.029383","sku":"pipe0.person_profile","pricingVersion":3,"unitType":"profile","maxAmount":"0.029383","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.029383"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"profile_urls":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"LinkedIn/profile URLs to enrich through people:profile:waterfall@1."},"environment":{"type":"string","enum":["production","sandbox"]}},"required":["profile_urls"],"additionalProperties":false,"example":{"profile_urls":["https://www.linkedin.com/in/satyanadella"]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."},"billing":{"type":"object","properties":{"pipe0Credits":{"type":"number"},"maxPipe0Credits":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"pricingVersion":{"type":"number"},"settledUsdcMicro":{"type":"string"}},"required":["pipe0Credits","maxPipe0Credits","planUsdcMicro","planCredits","pricingVersion","settledUsdcMicro"],"additionalProperties":false}},"required":["data","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/pipes/run/sync":{"post":{"operationId":"pipe0_post__api_v1_pipes_run_sync","summary":"Composable Pipe0-native workflow pass-through for allowlisted pipe IDs only. Runs POST /v1/pipes/run/sync for workflows that are not exposed directly by Crustdata or Wiza. Settles at cost from the bounded pipe/input estimate because Pipe0 does not return actual credits charged.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.01","sku":"pipe0.pipes_run_sync","pricingVersion":3,"unitType":"record","maxAmount":"0.029383","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.029383"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"config":{"type":"object","properties":{"environment":{"description":"Pipe0 environment. Production consumes Pipe0 credits; sandbox uses mock/test behavior.","type":"string","enum":["production","sandbox"]},"widgets":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"field_definitions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"additionalProperties":{}},"field_annotations":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"pipes":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"object","properties":{"pipe_id":{"type":"string","minLength":1,"description":"Pipe0 pipe id, for example company:identity@3."},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"connector":{},"run_if":{}},"required":["pipe_id"],"additionalProperties":{}}},"input":{"minItems":1,"maxItems":1,"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1},{"type":"number"}],"description":"Unique record id within this Pipe0 request."}},"required":["id"],"additionalProperties":{}}},"scopes":{"type":"array","items":{"type":"string","minLength":1}}},"required":["pipes","input"],"additionalProperties":{},"example":{"pipes":[{"pipe_id":"company:identity@3"}],"input":[{"id":"1","company_name":"Acme"}]}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."},"billing":{"type":"object","properties":{"pipe0Credits":{"type":"number"},"maxPipe0Credits":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"pricingVersion":{"type":"number"},"settledUsdcMicro":{"type":"string"}},"required":["pipe0Credits","maxPipe0Credits","planUsdcMicro","planCredits","pricingVersion","settledUsdcMicro"],"additionalProperties":false}},"required":["data","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/search/run/sync":{"post":{"operationId":"pipe0_post__api_v1_search_run_sync","summary":"Composable Pipe0-native search workflow pass-through for allowlisted singular search IDs only. Runs POST /v1/search/run/sync for safe allowlisted company-profile search and settles at the allowlisted per-page Pipe0 catalog cost.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.058765","sku":"pipe0.search_run_sync","pricingVersion":3,"unitType":"page","maxAmount":"0.058765","amountKind":"unit_price","intent":"session","suggestedDeposit":"0.058765"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"config":{"type":"object","properties":{"environment":{"description":"Pipe0 environment. Production consumes Pipe0 credits; sandbox uses mock/test behavior.","type":"string","enum":["production","sandbox"]},"widgets":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"field_definitions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"additionalProperties":{}},"search":{"type":"object","properties":{"search_id":{"type":"string","minLength":1,"description":"Pipe0 search id, for example companies:profiles:crustdata@2."},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"connector":{}},"required":["search_id"],"additionalProperties":{}}},"required":["search"],"additionalProperties":{},"example":{"search":{"search_id":"companies:profiles:crustdata@2","config":{"filters":{"linkedin_industries":{"include":["Software Development"],"exclude":[]}},"limit":10}}}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."},"billing":{"type":"object","properties":{"pipe0Credits":{"type":"number"},"maxPipe0Credits":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"pricingVersion":{"type":"number"},"settledUsdcMicro":{"type":"string"}},"required":["pipe0Credits","maxPipe0Credits","planUsdcMicro","planCredits","pricingVersion","settledUsdcMicro"],"additionalProperties":false}},"required":["data","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/pipes/check":{"post":{"operationId":"pipe0_post__api_v1_pipes_check","summary":"Check a Pipe0 pipes run by id. Proof route; no Zero charge.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"pipe0.pipes_check","pricingVersion":3},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"run_id":{"type":"string","minLength":1,"description":"Pipe0 run/task id returned by an async run route."}},"required":["run_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/search/check":{"post":{"operationId":"pipe0_post__api_v1_search_check","summary":"Check a Pipe0 search run by id. Proof route; no Zero charge.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"pipe0.search_check","pricingVersion":3},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"run_id":{"type":"string","minLength":1,"description":"Pipe0 run/task id returned by an async run route."}},"required":["run_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/pipes/validate":{"post":{"operationId":"pipe0_post__api_v1_pipes_validate","summary":"Validate a Pipe0 pipes request against Pipe0. Proof route; no Zero charge.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"pipe0.pipes_validate","pricingVersion":3},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Provider-native Pipe0 request object."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/search/validate":{"post":{"operationId":"pipe0_post__api_v1_search_validate","summary":"Validate a Pipe0 singular search request against Pipe0. Proof route; no Zero charge.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"pipe0.search_validate","pricingVersion":3},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Provider-native Pipe0 request object."}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"description":"Raw JSON response returned by Pipe0."}},"required":["data"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pipe0"]}},"/api/v1/pipe0/rates":{"get":{"operationId":"pipe0_get__api_v1_rates","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pricingVersion":{"type":"number"},"planUsdcMicro":{"type":"string"},"planCredits":{"type":"string"},"unitUsdcMicroPerPipe0Credit":{"type":"string"},"supportedPipeCreditsPerRecord":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"supportedSearchCreditsPerPage":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"maxPipeInputRecords":{"type":"number"},"maxRawPipes":{"type":"number"},"maxSearchResults":{"type":"number"}},"required":["pricingVersion","planUsdcMicro","planCredits","unitUsdcMicroPerPipe0Credit","supportedPipeCreditsPerRecord","supportedSearchCreditsPerPage","maxPipeInputRecords","maxRawPipes","maxSearchResults"],"additionalProperties":false}}}}},"tags":["pipe0"]}},"/api/v1/openrouter/chat/completions":{"post":{"operationId":"openrouter_post__api_v1_chat_completions","summary":"OpenAI-compatible chat completion via any OpenRouter model, paid in one shot: price = estimated input tokens x input rate + max_tokens x output rate, resolved before the call and capped per model (from $0.10 for cheap models up to $5 for premium models like anthropic/claude-fable-5). For longer generations use POST /api/v1/chat/completions/metered. 📖 Full guide: https://openrouter.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"openrouter.chat","pricingVersion":3},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"model":{"type":"string","minLength":1,"description":"OpenRouter model ID, e.g. \"openai/gpt-4o-mini\", \"anthropic/claude-haiku-4-5\", \"google/gemini-flash-1.5\". Use GET /api/v1/models to list all available models with pricing."},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"description":"Message role: system (instructions), user (human turn), assistant (model turn), or tool (tool result)"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Message text content, or null for tool-call-only assistant turns"},"name":{"description":"Optional display name for the message author","type":"string"},"tool_call_id":{"description":"For role=tool: the tool_call_id this result responds to","type":"string"},"tool_calls":{"description":"For role=assistant: tool calls the model is making","type":"array","items":{}}},"required":["role","content"],"additionalProperties":false},"description":"Conversation history as an array of {role, content} objects. At minimum one user message is required."},"max_tokens":{"default":4096,"description":"Maximum output tokens. Controls your spend ceiling — the price reservation is input estimate x input_rate + (max_tokens + reasoning budget) x output_rate. The fixed route rejects requests reserving above its cap; use the metered route for large values.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"temperature":{"description":"Sampling temperature 0–2. Higher = more random. Defaults to model default (usually ~1.0).","type":"number","minimum":0,"maximum":2},"top_p":{"description":"Nucleus sampling probability mass 0–1. Alternative to temperature.","type":"number","minimum":0,"maximum":1},"top_k":{"description":"Top-k sampling: limit to the k most likely next tokens.","type":"integer","minimum":0,"maximum":9007199254740991},"frequency_penalty":{"description":"Penalise tokens proportional to how often they already appear (-2 to 2).","type":"number"},"presence_penalty":{"description":"Penalise tokens that have appeared at all in the context (-2 to 2).","type":"number"},"repetition_penalty":{"description":"Repetition penalty multiplier (1.0 = no penalty). Some models only.","type":"number"},"stop":{"description":"Stop sequence(s): generation halts when any is produced.","anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"seed":{"description":"Random seed for deterministic outputs (support varies by model).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reasoning":{"description":"OpenRouter reasoning config for thinking models. Reasoning tokens bill as output tokens and are added to the price reservation.","type":"object","properties":{"effort":{"description":"Reasoning effort level. Mutually exclusive with max_tokens.","type":"string","enum":["none","minimal","low","medium","high","xhigh"]},"max_tokens":{"description":"Explicit reasoning token budget.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"exclude":{"description":"Generate reasoning but omit it from the response.","type":"boolean"},"enabled":{"description":"Enable reasoning at the default (medium) effort.","type":"boolean"}},"additionalProperties":false},"tools":{"description":"OpenAI-format tool definitions for function calling.","type":"array","items":{}},"tool_choice":{"description":"Tool selection strategy: \"auto\", \"none\", \"required\", or a specific tool name."},"logit_bias":{"description":"Token ID → bias (-100 to 100) to adjust generation likelihood.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"response_format":{"description":"Output format, e.g. {\"type\":\"json_object\"} to force JSON output.","type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":false},"transforms":{"description":"OpenRouter prompt transforms, e.g. [\"middle-out\"] for context compression.","type":"array","items":{"type":"string"}},"models":{"description":"Fallback model list for OpenRouter auto-routing. Tried in order if the primary model is unavailable. The price reservation is taken at the most expensive rates across model + models, since any of them may serve the call; the difference is refunded on the metered route.","type":"array","items":{"type":"string"}},"route":{"description":"OpenRouter routing strategy, e.g. \"fallback\". Requires an explicit `models` list so every candidate model can be priced.","type":"string"},"stream":{"default":false,"description":"Must be false — streaming is not supported in v1.","type":"boolean","const":false}},"required":["model","messages","max_tokens","stream"],"additionalProperties":false,"example":{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Say hello in one sentence."}],"max_tokens":64}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"created":{"type":"number"},"model":{"type":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"index":{"type":"number"},"message":{"type":"object","properties":{"role":{"type":"string"},"content":{"anyOf":[{"type":"string"},{"type":"null"}]},"tool_calls":{"type":"array","items":{}}},"required":["role","content"],"additionalProperties":false},"finish_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"logprobs":{}},"required":["index","message","finish_reason"],"additionalProperties":false}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"number"},"completion_tokens":{"type":"number"},"total_tokens":{"type":"number"},"cost":{"type":"number"}},"required":["prompt_tokens","completion_tokens","total_tokens"],"additionalProperties":false},"system_fingerprint":{"type":"string"},"billing":{"type":"object","properties":{"promptTokens":{"type":"number","description":"Actual input tokens consumed"},"completionTokens":{"type":"number","description":"Actual output tokens generated"},"reservedUsdcMicro":{"type":"string","description":"Worst-case micro-USDC committed before the call"},"settledUsdcMicro":{"type":"string","description":"Micro-USDC actually charged to the buyer. Fixed route: the up-front worst-case estimate (= reservedUsdcMicro). Metered route: actual usage (= actualUsdcMicro)."},"actualUsdcMicro":{"type":"string","description":"Best-known actual cost of the call in micro-USDC. On the fixed route this is informational — the charge is settledUsdcMicro."},"costBasis":{"type":"string","enum":["openrouter","rates","estimated"],"description":"Where actualUsdcMicro came from: OpenRouter usage accounting > cached per-token rates > character estimate"}},"required":["promptTokens","completionTokens","reservedUsdcMicro","settledUsdcMicro","actualUsdcMicro","costBasis"],"additionalProperties":false}},"required":["id","object","created","model","choices","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["openrouter"]}},"/api/v1/openrouter/chat/completions/metered":{"post":{"operationId":"openrouter_post__api_v1_chat_completions_metered","summary":"OpenAI-compatible chat completion via any OpenRouter model with metered at-cost billing: escrow a worst-case reservation (up to 5 USDC), pay only actual token usage — the difference is refunded after the call. Use this route for long generations, big contexts, and reasoning models; the fixed route caps out much lower. 📖 Full guide: https://openrouter.withzero.xyz/llms.txt","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"openrouter.chat.metered","pricingVersion":3},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"model":{"type":"string","minLength":1,"description":"OpenRouter model ID, e.g. \"openai/gpt-4o-mini\", \"anthropic/claude-haiku-4-5\", \"google/gemini-flash-1.5\". Use GET /api/v1/models to list all available models with pricing."},"messages":{"minItems":1,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"description":"Message role: system (instructions), user (human turn), assistant (model turn), or tool (tool result)"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Message text content, or null for tool-call-only assistant turns"},"name":{"description":"Optional display name for the message author","type":"string"},"tool_call_id":{"description":"For role=tool: the tool_call_id this result responds to","type":"string"},"tool_calls":{"description":"For role=assistant: tool calls the model is making","type":"array","items":{}}},"required":["role","content"],"additionalProperties":false},"description":"Conversation history as an array of {role, content} objects. At minimum one user message is required."},"max_tokens":{"default":4096,"description":"Maximum output tokens. Controls your spend ceiling — the price reservation is input estimate x input_rate + (max_tokens + reasoning budget) x output_rate. The fixed route rejects requests reserving above its cap; use the metered route for large values.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"temperature":{"description":"Sampling temperature 0–2. Higher = more random. Defaults to model default (usually ~1.0).","type":"number","minimum":0,"maximum":2},"top_p":{"description":"Nucleus sampling probability mass 0–1. Alternative to temperature.","type":"number","minimum":0,"maximum":1},"top_k":{"description":"Top-k sampling: limit to the k most likely next tokens.","type":"integer","minimum":0,"maximum":9007199254740991},"frequency_penalty":{"description":"Penalise tokens proportional to how often they already appear (-2 to 2).","type":"number"},"presence_penalty":{"description":"Penalise tokens that have appeared at all in the context (-2 to 2).","type":"number"},"repetition_penalty":{"description":"Repetition penalty multiplier (1.0 = no penalty). Some models only.","type":"number"},"stop":{"description":"Stop sequence(s): generation halts when any is produced.","anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"seed":{"description":"Random seed for deterministic outputs (support varies by model).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reasoning":{"description":"OpenRouter reasoning config for thinking models. Reasoning tokens bill as output tokens and are added to the price reservation.","type":"object","properties":{"effort":{"description":"Reasoning effort level. Mutually exclusive with max_tokens.","type":"string","enum":["none","minimal","low","medium","high","xhigh"]},"max_tokens":{"description":"Explicit reasoning token budget.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"exclude":{"description":"Generate reasoning but omit it from the response.","type":"boolean"},"enabled":{"description":"Enable reasoning at the default (medium) effort.","type":"boolean"}},"additionalProperties":false},"tools":{"description":"OpenAI-format tool definitions for function calling.","type":"array","items":{}},"tool_choice":{"description":"Tool selection strategy: \"auto\", \"none\", \"required\", or a specific tool name."},"logit_bias":{"description":"Token ID → bias (-100 to 100) to adjust generation likelihood.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"response_format":{"description":"Output format, e.g. {\"type\":\"json_object\"} to force JSON output.","type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":false},"transforms":{"description":"OpenRouter prompt transforms, e.g. [\"middle-out\"] for context compression.","type":"array","items":{"type":"string"}},"models":{"description":"Fallback model list for OpenRouter auto-routing. Tried in order if the primary model is unavailable. The price reservation is taken at the most expensive rates across model + models, since any of them may serve the call; the difference is refunded on the metered route.","type":"array","items":{"type":"string"}},"route":{"description":"OpenRouter routing strategy, e.g. \"fallback\". Requires an explicit `models` list so every candidate model can be priced.","type":"string"},"stream":{"default":false,"description":"Must be false — streaming is not supported in v1.","type":"boolean","const":false}},"required":["model","messages","max_tokens","stream"],"additionalProperties":false,"example":{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Say hello in one sentence."}],"max_tokens":64}}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"created":{"type":"number"},"model":{"type":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"index":{"type":"number"},"message":{"type":"object","properties":{"role":{"type":"string"},"content":{"anyOf":[{"type":"string"},{"type":"null"}]},"tool_calls":{"type":"array","items":{}}},"required":["role","content"],"additionalProperties":false},"finish_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"logprobs":{}},"required":["index","message","finish_reason"],"additionalProperties":false}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"number"},"completion_tokens":{"type":"number"},"total_tokens":{"type":"number"},"cost":{"type":"number"}},"required":["prompt_tokens","completion_tokens","total_tokens"],"additionalProperties":false},"system_fingerprint":{"type":"string"},"billing":{"type":"object","properties":{"promptTokens":{"type":"number","description":"Actual input tokens consumed"},"completionTokens":{"type":"number","description":"Actual output tokens generated"},"reservedUsdcMicro":{"type":"string","description":"Worst-case micro-USDC committed before the call"},"settledUsdcMicro":{"type":"string","description":"Micro-USDC actually charged to the buyer. Fixed route: the up-front worst-case estimate (= reservedUsdcMicro). Metered route: actual usage (= actualUsdcMicro)."},"actualUsdcMicro":{"type":"string","description":"Best-known actual cost of the call in micro-USDC. On the fixed route this is informational — the charge is settledUsdcMicro."},"costBasis":{"type":"string","enum":["openrouter","rates","estimated"],"description":"Where actualUsdcMicro came from: OpenRouter usage accounting > cached per-token rates > character estimate"}},"required":["promptTokens","completionTokens","reservedUsdcMicro","settledUsdcMicro","actualUsdcMicro","costBasis"],"additionalProperties":false}},"required":["id","object","created","model","choices","billing"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["openrouter"]}},"/api/v1/openrouter/models":{"get":{"operationId":"openrouter_get__api_v1_models","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"context_length":{"type":"number"},"pricing":{"type":"object","properties":{"prompt":{"type":"string"},"completion":{"type":"string"},"image":{"type":"string"},"request":{"type":"string"}},"required":["prompt","completion"],"additionalProperties":false},"architecture":{"type":"object","properties":{"modality":{"type":"string"},"tokenizer":{"type":"string"},"instruct_type":{"type":"string"}},"required":["modality","tokenizer"],"additionalProperties":false}},"required":["id","name","context_length","pricing"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}}},"summary":"📖 Full guide: https://openrouter.withzero.xyz/llms.txt","tags":["openrouter"]}},"/api/v1/zeroman/credits":{"post":{"operationId":"zeroman_post__api_v1_credits","summary":"Insert a coin: pay to mint an arcade credit (3 lives) for a run of ZEROMAN.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.1","sku":"zeroman.credits","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"description":"Optional display handle shown on the leaderboard (e.g. your agent name).","type":"string","maxLength":24}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"creditId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Arcade credit id — open the game as ?credit=<id> to play the run it paid for."},"lives":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Lives granted by this credit."},"playUrl":{"type":"string","description":"Open this URL in a browser to play the run this credit paid for."}},"required":["creditId","lives","playUrl"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["zeroman"]}},"/api/v1/zeroman/credits/{id}/score":{"post":{"operationId":"zeroman_post__api_v1_credits__id__score","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","description":"True when recorded (valid, unspent credit)."},"rank":{"description":"1-based leaderboard rank of this score, when accepted.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"best":{"description":"Current top score on the board.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["accepted"],"additionalProperties":false}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"score":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Final score for the run."},"sector":{"default":0,"description":"Furthest sector index reached (0-based).","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["score","sector"],"additionalProperties":false}}}},"tags":["zeroman"]}},"/api/v1/zeroman/leaderboard":{"get":{"operationId":"zeroman_get__api_v1_leaderboard","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display handle, or null if anonymous."},"score":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sector":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Furthest sector reached (0-based)."},"at":{"type":"string","description":"ISO timestamp of the run."}},"required":["name","score","sector","at"],"additionalProperties":false},"description":"Top runs, highest score first."}},"required":["entries"],"additionalProperties":false}}}}},"tags":["zeroman"]}},"/api/v1/pay-test/pay/proof":{"post":{"operationId":"pay-test_post__api_v1_pay_proof","summary":"Free proof-intent route: exercises wallet-proof auth over MPP, moves no funds.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0","sku":"pay-test.proof","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}},"/api/v1/pay-test/pay/charge":{"post":{"operationId":"pay-test_post__api_v1_pay_charge","summary":"Fixed-price MPP charge over Tempo ($0.001).","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"pay-test.charge.mpp","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}},"/api/v1/pay-test/pay/charge-x402":{"post":{"operationId":"pay-test_post__api_v1_pay_charge_x402","summary":"Fixed-price x402 charge over Base ($0.001).","x-payment-info":{"method":"x402","currency":"USDC","amount":"0.001","sku":"pay-test.charge.x402","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}},"/api/v1/pay-test/pay/credit":{"post":{"operationId":"pay-test_post__api_v1_pay_credit","summary":"ZeroClick credit plan: the meter is priced only on the credit plan, so a call draws the buyer’s prepaid balance instead of settling on-chain.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"pay-test.plan.credit","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}},"/api/v1/pay-test/pay/subscription":{"post":{"operationId":"pay-test_post__api_v1_pay_subscription","summary":"ZeroClick subscription plan: an active period covers the call, so a subscriber is served without a per-call charge.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"pay-test.plan.subscription","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}},"/api/v1/pay-test/pay/metered-plan":{"post":{"operationId":"pay-test_post__api_v1_pay_metered_plan","summary":"ZeroClick subscription_usage plan: included units cover the first calls, then usage beyond the allowance is metered.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"pay-test.plan.metered","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}},"/api/v1/pay-test/pay/capped":{"post":{"operationId":"pay-test_post__api_v1_pay_capped","summary":"ZeroClick capped pricing: the refusal carries no quantity, so the proxy offers the reserve rails (x402 upto + MPP session) instead of a fixed price.","x-payment-info":{"method":"tempo","currency":"USDC","amount":"0.001","sku":"pay-test.plan.capped","pricingVersion":1},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"description":"Free-form string echoed back verbatim — useful for correlating a test run to its response.","type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response after payment","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true,"description":"Always true when the payment gate was satisfied and the handler ran."},"rail":{"type":"string","enum":["mpp","x402"],"description":"The payment rail this route settled on."},"intent":{"type":"string","enum":["charge","proof","metered"],"description":"The payment intent this route exercised."},"chain":{"type":"string","description":"Settlement chain (e.g. tempo, base)."},"sku":{"type":"string","description":"The route SKU that was paid."},"payer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The buyer wallet the gate resolved, when available."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The caller-supplied note, echoed verbatim."}},"required":["ok","rail","intent","chain","sku","payer","note"],"additionalProperties":false}}}},"402":{"$ref":"#/components/schemas/PaymentRequired"}},"tags":["pay-test"]}}},"components":{"memory":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"inbox":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"scheduler":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"deploy":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"image":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"video":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"audio":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"pixelart":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"annotate":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"screenshot":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"cdn":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"forms":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"urlshortener":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"crustdata":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"wiza":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"pipe0":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"openrouter":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"zeroman":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}},"pay-test":{"schemas":{"PaymentRequired":{"type":"object","description":"x402/MPP 402 advertisement. Decode the PAYMENT-REQUIRED or WWW-Authenticate header for payment requirements.","properties":{"error":{"type":"string"}}}}}}}