{"data":{"services":[{"id":"discovery.api","area":"discovery","method":"GET","endpoint":"/api/v1","amount":"0.00","currency":"USDT","description":"Discover AgentOS authentication, guides, and service groups","authenticated":false,"startHere":false,"requiredInput":{},"optionalInput":{},"output":"API metadata and canonical discovery links","mainErrors":[],"nextServiceId":"discovery.services","guide":"/docs#discovery","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"discovery.services","area":"discovery","method":"GET","endpoint":"/api/v1/services","amount":"0.00","currency":"USDT","description":"List the canonical public AgentOS service catalog","authenticated":false,"startHere":false,"requiredInput":{},"optionalInput":{"area":"Filter by discovery, events, email, phone, or domain"},"output":"Canonical service records with fixed prices, inputs, errors, and next steps","mainErrors":["INVALID_REQUEST"],"nextServiceId":"email.mailbox.create","guide":"/docs#service-catalog","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"events.list","area":"events","method":"POST","endpoint":"/api/v1/events/list","amount":"0.00","currency":"USDT","description":"List tenant-scoped durable events with filters and cursor pagination","authenticated":true,"startHere":false,"requiredInput":{},"optionalInput":{"status":"Event status","types":"Event type array","agentId":"Agent resource filter","service":"Service filter","resourceId":"Resource filter","from":"ISO timestamp","to":"ISO timestamp","limit":"1-100","cursor":"Opaque cursor"},"output":"Ordered durable events and next cursor","mainErrors":["AUTH_REQUIRED","INVALID_REQUEST"],"nextServiceId":"events.ack","guide":"/docs#event-delivery","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"recommended"},{"id":"events.get","area":"events","method":"POST","endpoint":"/api/v1/events/get","amount":"0.00","currency":"USDT","description":"Get one tenant-owned durable event","authenticated":true,"startHere":false,"requiredInput":{"eventId":"Event UUID"},"optionalInput":{},"output":"One durable event","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_FOUND"],"nextServiceId":"events.ack","guide":"/docs#event-delivery","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"recommended"},{"id":"events.ack","area":"events","method":"POST","endpoint":"/api/v1/events/ack","amount":"0.00","currency":"USDT","description":"Idempotently acknowledge one tenant-owned event after durable handling","authenticated":true,"startHere":false,"requiredInput":{"eventId":"Event UUID"},"optionalInput":{},"output":"Acknowledged event","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_FOUND"],"nextServiceId":"events.list","guide":"/docs#event-delivery","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"recommended"},{"id":"events.ack-all","area":"events","method":"POST","endpoint":"/api/v1/events/ack-all","amount":"0.00","currency":"USDT","description":"Acknowledge all matching tenant events up to an explicit cutoff","authenticated":true,"startHere":false,"requiredInput":{"before":"ISO timestamp cutoff"},"optionalInput":{"types":"Event type array","service":"Service filter"},"output":"Acknowledged event count","mainErrors":["AUTH_REQUIRED","INVALID_REQUEST"],"nextServiceId":"events.list","guide":"/docs#event-delivery","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"recommended"},{"id":"events.realtime-token","area":"events","method":"GET","endpoint":"/api/v1/events/realtime-token","amount":"0.00","currency":"USDT","description":"Issue a short-lived credential for the private AgentOS WebSocket gateway","authenticated":true,"startHere":false,"requiredInput":{},"optionalInput":{},"output":"Realtime JWT, WebSocket URL, and protocol; replay begins after socket authentication","mainErrors":["AUTH_REQUIRED","PROVIDER_CONFIGURATION_ERROR"],"nextServiceId":"events.list","guide":"/docs#websocket-protocol","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"email.mailbox.create","area":"email","method":"POST","endpoint":"/api/v1/email/mailboxes","amount":"0.25","currency":"USDT","description":"Provision one real mailbox on the configured Resend domain","authenticated":false,"startHere":true,"requiredInput":{"localPart":"Mailbox local part"},"optionalInput":{"displayName":"Sender display name","outboundSignature":"Text signature"},"output":"Mailbox plus the one-time AgentOS access token on first use","mainErrors":["PAYMENT_REQUIRED","INVALID_REQUEST","CONFLICT","PROVIDER_ERROR"],"nextServiceId":"email.message.send","guide":"/docs#email-flow","paid":true,"x402Price":"$0.25","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"email.mailbox.list","area":"email","method":"GET","endpoint":"/api/v1/email/mailboxes/query","amount":"0.00","currency":"USDT","description":"List mailboxes owned by the authenticated wallet tenant","authenticated":true,"startHere":false,"requiredInput":{},"optionalInput":{},"output":"Owned mailboxes","mainErrors":["AUTH_REQUIRED"],"nextServiceId":"email.message.send","guide":"/docs#email-flow","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"email.mailbox.update","area":"email","method":"POST","endpoint":"/api/v1/email/mailboxes/update","amount":"0.01","currency":"USDT","description":"Update one owned mailbox","authenticated":true,"startHere":false,"requiredInput":{"mailboxId":"Owned mailbox UUID"},"optionalInput":{"displayName":"Sender display name","outboundSignature":"Text signature","active":"Boolean active state"},"output":"Updated mailbox","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","PAYMENT_REQUIRED"],"nextServiceId":"email.mailbox.list","guide":"/docs#email-flow","paid":true,"x402Price":"$0.01","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"email.mailbox.delete","area":"email","method":"POST","endpoint":"/api/v1/email/mailboxes/delete","amount":"0.01","currency":"USDT","description":"Delete one owned mailbox and its stored messages","authenticated":true,"startHere":false,"requiredInput":{"mailboxId":"Owned mailbox UUID"},"optionalInput":{},"output":"Deletion confirmation","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_OWNED","PAYMENT_REQUIRED"],"nextServiceId":"email.mailbox.create","guide":"/docs#email-flow","paid":true,"x402Price":"$0.01","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"email.message.send","area":"email","method":"POST","endpoint":"/api/v1/email/messages/send","amount":"0.02","currency":"USDT","description":"Send one real email from an owned mailbox through Resend","authenticated":true,"startHere":false,"requiredInput":{"mailboxId":"Owned mailbox UUID","to":"Email address array","subject":"Subject","text":"Plain-text body"},"optionalInput":{"cc":"Email address array","bcc":"Email address array","html":"HTML body"},"output":"Persisted outbound message and provider message ID","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","PAYMENT_REQUIRED","PROVIDER_ERROR"],"nextServiceId":"email.message.query","guide":"/docs#email-flow","paid":true,"x402Price":"$0.02","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"email.message.query","area":"email","method":"GET","endpoint":"/api/v1/email/messages/query","amount":"0.00","currency":"USDT","description":"List messages or retrieve one complete owned email","authenticated":true,"startHere":false,"requiredInput":{},"optionalInput":{"mailboxId":"Owned mailbox UUID","messageId":"Owned message UUID","limit":"1-100"},"output":"Message list or full message","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_OWNED","RESOURCE_NOT_FOUND"],"nextServiceId":"events.list","guide":"/docs#email-flow","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"phone.number.us.30d","area":"phone","method":"POST","endpoint":"/api/v1/phone/purchase-us-number-30-days","amount":"5.00","currency":"USDT","description":"Provision one US AgentPhone number with a 30-day AgentOS entitlement","authenticated":false,"startHere":true,"requiredInput":{"agentName":"Agent name","agentWebhookUrl":"Public HTTPS live-agent callback URL"},"optionalInput":{"areaCode":"Three digits","description":"Agent description","beginMessage":"Opening line","voice":"AgentPhone voice","language":"Locale"},"output":"Phone agent, number, entitlement, callback secret, and access token on first use","mainErrors":["PAYMENT_REQUIRED","INVALID_REQUEST","PROVIDER_ERROR"],"nextServiceId":"phone.call.outbound.1m","guide":"/docs#phone-flow","paid":true,"x402Price":"$5.00","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.number.ca.30d","area":"phone","method":"POST","endpoint":"/api/v1/phone/purchase-canada-number-30-days","amount":"5.00","currency":"USDT","description":"Provision one Canadian AgentPhone number with a 30-day AgentOS entitlement","authenticated":false,"startHere":true,"requiredInput":{"agentName":"Agent name","agentWebhookUrl":"Public HTTPS live-agent callback URL"},"optionalInput":{"areaCode":"Three digits","description":"Agent description","beginMessage":"Opening line","voice":"AgentPhone voice","language":"Locale"},"output":"Phone agent, number, entitlement, callback secret, and access token on first use","mainErrors":["PAYMENT_REQUIRED","INVALID_REQUEST","PROVIDER_ERROR"],"nextServiceId":"phone.call.outbound.1m","guide":"/docs#phone-flow","paid":true,"x402Price":"$5.00","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.number.renew.30d","area":"phone","method":"POST","endpoint":"/api/v1/phone/renew-number-30-days","amount":"5.00","currency":"USDT","description":"Extend one active owned phone-number entitlement by 30 days","authenticated":true,"startHere":false,"requiredInput":{"phoneNumberId":"Owned phone-number UUID"},"optionalInput":{},"output":"Updated entitlement and provider reconciliation state","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","NUMBER_RELEASED","PAYMENT_REQUIRED"],"nextServiceId":"phone.number.list","guide":"/docs#number-renewal","paid":true,"x402Price":"$5.00","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.call.outbound.1m","area":"phone","method":"POST","endpoint":"/api/v1/phone/call-1-minute","amount":"0.30","currency":"USDT","description":"Start one real outbound AgentPhone call authorized for up to 60 connected seconds","authenticated":true,"startHere":false,"requiredInput":{"phoneNumberId":"Owned phone-number UUID","toNumber":"E.164 destination"},"optionalInput":{"initialGreeting":"Opening line"},"output":"Call ID, state, and authorized duration","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","PAYMENT_REQUIRED","PROVIDER_ERROR"],"nextServiceId":"phone.call.get","guide":"/docs#phone-flow","paid":true,"x402Price":"$0.30","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.call.outbound.5m","area":"phone","method":"POST","endpoint":"/api/v1/phone/call-5-minutes","amount":"1.50","currency":"USDT","description":"Start one real outbound AgentPhone call authorized for up to 300 connected seconds","authenticated":true,"startHere":false,"requiredInput":{"phoneNumberId":"Owned phone-number UUID","toNumber":"E.164 destination"},"optionalInput":{"initialGreeting":"Opening line"},"output":"Call ID, state, and authorized duration","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","PAYMENT_REQUIRED","PROVIDER_ERROR"],"nextServiceId":"phone.call.get","guide":"/docs#phone-flow","paid":true,"x402Price":"$1.50","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.call.extend.1m","area":"phone","method":"POST","endpoint":"/api/v1/phone/extend-call-1-minute","amount":"0.30","currency":"USDT","description":"Extend one active owned call by exactly 60 seconds","authenticated":true,"startHere":false,"requiredInput":{"callId":"Owned active call UUID"},"optionalInput":{},"output":"Updated call authorization deadline","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","CONFLICT","PAYMENT_REQUIRED"],"nextServiceId":"phone.call.get","guide":"/docs#phone-flow","paid":true,"x402Price":"$0.30","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.call.inbound.add.10m","area":"phone","method":"POST","endpoint":"/api/v1/phone/add-inbound-minutes-10","amount":"3.00","currency":"USDT","description":"Add 600 inbound voice seconds to one active owned phone number","authenticated":true,"startHere":false,"requiredInput":{"phoneNumberId":"Owned phone-number UUID"},"optionalInput":{},"output":"Updated inbound second balance","mainErrors":["AUTH_REQUIRED","ONBOARDING_REQUIRED","RESOURCE_NOT_OWNED","PAYMENT_REQUIRED"],"nextServiceId":"phone.number.list","guide":"/docs#phone-flow","paid":true,"x402Price":"$3.00","available":true,"registerOnOkx":true,"idempotency":"required"},{"id":"phone.number.release","area":"phone","method":"POST","endpoint":"/api/v1/phone/release-number","amount":"0.00","currency":"USDT","description":"Irreversibly release one owned AgentPhone number","authenticated":true,"startHere":false,"requiredInput":{"phoneNumberId":"Owned phone-number UUID","confirmRelease":"Must be true"},"optionalInput":{},"output":"Release state; retries are safe","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_OWNED","INVALID_REQUEST","PROVIDER_ERROR"],"nextServiceId":"phone.number.us.30d","guide":"/docs#number-renewal","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"recommended"},{"id":"phone.number.list","area":"phone","method":"GET","endpoint":"/api/v1/phone/numbers","amount":"0.00","currency":"USDT","description":"List owned numbers and entitlement state","authenticated":true,"startHere":false,"requiredInput":{},"optionalInput":{},"output":"Owned phone numbers","mainErrors":["AUTH_REQUIRED"],"nextServiceId":"phone.call.outbound.1m","guide":"/docs#phone-flow","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"phone.call.get","area":"phone","method":"GET","endpoint":"/api/v1/phone/calls/{callId}","amount":"0.00","currency":"USDT","description":"Read one owned call","authenticated":true,"startHere":false,"requiredInput":{"callId":"Owned call UUID in path"},"optionalInput":{},"output":"Call state and entitlement data","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_FOUND"],"nextServiceId":"phone.call.transcript","guide":"/docs#phone-flow","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"phone.call.transcript","area":"phone","method":"GET","endpoint":"/api/v1/phone/calls/{callId}/transcript","amount":"0.00","currency":"USDT","description":"Read the transcript for one owned call; recordings are never exposed","authenticated":true,"startHere":false,"requiredInput":{"callId":"Owned call UUID in path"},"optionalInput":{},"output":"Transcript turns","mainErrors":["AUTH_REQUIRED","RESOURCE_NOT_FOUND"],"nextServiceId":"events.list","guide":"/docs#phone-flow","paid":false,"x402Price":null,"available":true,"registerOnOkx":false,"idempotency":"not-applicable"},{"id":"domain.register","area":"domain","method":"POST","endpoint":"/api/v1/domains/register","amount":"0.00","currency":"USDT","x402Price":null,"description":"Unavailable until fixed per-TLD prices and stable allowlisted registrar egress are configured","authenticated":false,"paid":false,"startHere":true,"available":false,"registerOnOkx":false,"idempotency":"required","requiredInput":{},"optionalInput":{},"output":"HTTP 503; no payment is requested or settled","mainErrors":["SERVICE_UNAVAILABLE"],"nextServiceId":null,"guide":"/docs#domain-flow"}],"okxRegistration":["email.mailbox.create","email.mailbox.update","email.mailbox.delete","email.message.send","phone.number.us.30d","phone.number.ca.30d","phone.number.renew.30d","phone.call.outbound.1m","phone.call.outbound.5m","phone.call.extend.1m","phone.call.inbound.add.10m"],"excludedInfrastructure":["/api/v1/webhooks/agentphone","/api/v1/webhooks/resend","/api/v1/internal/phone-worker","Supabase Realtime WebSocket"]},"guides":{"docs":"/docs","llms":"/llms.txt","openapi":"/openapi.json"}}