{"openapi":"3.1.0","info":{"title":"WAVE Enterprise Streaming Platform API","description":"Complete API reference for WAVE Enterprise Streaming Platform.\n\n## Authentication\nAll API requests require a Bearer token in the Authorization header:\n```\nAuthorization: Bearer YOUR_API_KEY\n```\n\n## Rate Limiting\nAPI requests are rate limited. When rate limited, you'll receive a 429 response\nwith a `Retry-After` header indicating when to retry.\n\n## Pagination\nList endpoints support pagination via `page` and `perPage` query parameters.\nResponses include pagination metadata.\n\n## Errors\nAll errors return the normalized WAVE envelope `{ \"error\": { \"code\", \"message\" } }`,\noptionally enriched with `details`, `suggestions`, `did_you_mean`, and `doc_url`.\n","version":"1.1.0","contact":{"name":"WAVE Developer Support","url":"https://wave.online/developers","email":"developers@wave.online"},"license":{"name":"Apache-2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"}},"servers":[{"url":"https://api.wave.online/v1","description":"Production API"}],"security":[{"BearerAuth":[]}],"tags":[{"name":"Pricing","description":"Seller-facing pricing tier manifests (pricing-pages)."},{"name":"Custody","description":"Money-engine held-fund capability operations (operator-plane)."},{"name":"Engine","description":"The media-engine capability contract."},{"name":"Gpu","description":"The WAVE-hosted GPU inference plane."},{"name":"Agent Auth","description":"The OAuth Device Authorization Grant (RFC 8628) ceremony that lets a self-hosted agent or CLI act on a user's wallets: the agent requests a device code, the user approves once in a browser, then the agent holds tokens and signs with ephemeral keys — no app secret ever ships to the agent. These two routes are the pre-credential bootstrap (no Bearer token required; that is the point of the grant), served as a proxy over Privy's device authorization endpoints."},{"name":"Clips","description":"AI-powered highlight detection and clip management"},{"name":"Voice","description":"Text-to-speech synthesis and voice cloning"},{"name":"Captions","description":"Auto-captioning and multi-language translation"},{"name":"Chapters","description":"AI chapter detection and video segmentation"},{"name":"Editor","description":"Cloud video editing projects"},{"name":"Phone","description":"VoIP phone lines and call management"},{"name":"Collab","description":"Real-time collaboration rooms"},{"name":"Podcast","description":"Podcast show and episode management"},{"name":"Studio AI","description":"Video enhancement and AI processing"},{"name":"Transcribe","description":"Speech-to-text transcription"},{"name":"Sentiment","description":"Sentiment and emotion analysis"},{"name":"Search","description":"Semantic content search"},{"name":"Realtime","description":"Live control & event plane — presence, pub/sub broadcast, and the streaming-event bus the WAVE AI products push into. Served at realtime.wave.online (not the api host); subscribe over one WebSocket, producers publish over REST. Auth federates to the gateway."},{"name":"AV Mux/Demux","description":"Synchronous container-transform for local IP video + Dante/AES67 audio: mux separate RTP H.264 video and Dante audio into one sync-locked MPEG-TS or fMP4 stream, and demux the inverse. x402 metered per minute (`wave_av_minutes`) plus per transform-second (`wave_av_transform_seconds`)."},{"name":"Braided Audio","description":"On-demand WAVE Braided Audio publish — mixes multiple named audio sources into one MoQ-native braided track (single interleaved multichannel stream, not N independent streams). Requires the `moq:write` entitlement. Publishing spins up an on-demand machine; the same namespace can be republished (replacing the prior machine) or explicitly stopped."},{"name":"MoQ","description":"Media over QUIC join-token mint — the only HTTP surface of the MoQ product. These two endpoints authorize the caller on the api host and return a short-lived signed join-token plus the relay URL to connect to; media never transits the API gateway, because the client opens the MoQ session DIRECTLY to the relay at moq.wave.online carrying that token. The media session itself is not an HTTP surface and is deliberately not modelled in this document: it is the IETF Media over QUIC Transport protocol (control + object frames over WebTransport / QUIC, with a WebSocket fallback for browsers that cannot open a raw QUIC session). To use it, point a MoQ client at `relayWsUrl` and pass the token as the `join` query parameter (browser WebSocket clients cannot set request headers) or, server-to-server, as the `x-wave-moq-join` request header — SDK clients mint the token; carrying it over the wire is the MoQ client's job. DRAFT VERSION: this surface corresponds to draft-ietf-moq-transport-18 (https://datatracker.ietf.org/doc/draft-ietf-moq-transport/18/), which is what the WAVE relay currently speaks (preferred draft-18, negotiating draft-07..draft-18 over ALPN). draft-19 was published 2026-07-06 and is NOT yet deployed; adopting it is tracked internally. The join-token mint is transport-version independent — a draft bump changes the wire session, not this HTTP contract."},{"name":"Render","description":"Code-defined video — render a branded, deterministic MP4 (or alpha ProRes) from a typed Brief. Pay-per-render over x402 (no signup); the payment proof is the identity. The same Brief renders to the same bytes on any host. Reference renderer is source-available (BSL)."},{"name":"Identity","description":"Agent directory — resolve a WAVE agent id to its public channel map (email, credential key name, org, channels). Read-only; public-directory data only, never secret material."},{"name":"Accessibility Studio","description":"WAVE accessibility-studio API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"ACP","description":"WAVE acp API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Acuity","description":"WAVE acuity API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Aegis","description":"WAVE aegis API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"AES67","description":"WAVE aes67 API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Agentic Media","description":"WAVE agentic-media API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Agents","description":"WAVE agents API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"AI","description":"WAVE ai API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Analytics","description":"Account-level usage and engagement analytics."},{"name":"Api Gateway","description":"WAVE api-gateway API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Archive","description":"WAVE archive API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Argus","description":"WAVE argus API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Audience Engagement","description":"WAVE audience-engagement API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Audio Mastering","description":"WAVE audio-mastering API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Auth","description":"WAVE auth API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Autopilot","description":"WAVE autopilot API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Behavioral Intelligence","description":"WAVE behavioral-intelligence API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Benchmark","description":"WAVE benchmark API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Billing","description":"Account billing status and usage-based billing detail."},{"name":"Bmd","description":"WAVE bmd API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Bridge","description":"WAVE bridge API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Broadcast","description":"WAVE broadcast API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Camera Control","description":"WAVE camera-control API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Cameras","description":"Managed PTZ/robotic camera registration and control-command dispatch (iris, focus, zoom, white balance, gain, shutter, recording, presets)."},{"name":"Campus","description":"WAVE campus API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Challenge","description":"WAVE challenge API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Ci","description":"WAVE ci API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Cloud Switcher","description":"WAVE cloud-switcher API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Companion","description":"WAVE companion API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Competitive Intel","description":"WAVE competitive-intel API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Compliance","description":"WAVE compliance API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Connect","description":"WAVE connect API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Cookie Consent","description":"WAVE cookie-consent API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Cost","description":"WAVE cost API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Creator","description":"WAVE creator API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Creator Economy","description":"WAVE creator-economy API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Creator Storefront","description":"WAVE creator-storefront API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Crest","description":"WAVE crest API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Cro","description":"WAVE cro API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Dante","description":"WAVE dante API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Data Exchange","description":"WAVE data-exchange API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Decode","description":"WAVE decode API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Director","description":"WAVE director API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Discovery","description":"WAVE discovery API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Dispatch","description":"WAVE dispatch API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Dmca","description":"WAVE dmca API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Dsar","description":"WAVE dsar API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Dub","description":"WAVE dub API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Echo","description":"WAVE echo API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Edge","description":"WAVE edge API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Embeddings","description":"WAVE embeddings API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Encode","description":"WAVE encode API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Engagement","description":"WAVE engagement API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Enhance","description":"WAVE enhance API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Example","description":"WAVE example API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Experiments","description":"WAVE experiments API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Fleet","description":"WAVE fleet API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Forecast","description":"WAVE forecast API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Geo","description":"WAVE geo API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Ghost Producer","description":"WAVE ghost-producer API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Graphics Engine","description":"WAVE graphics-engine API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Integrations","description":"WAVE integrations API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Intel","description":"WAVE intel API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Listen","description":"WAVE listen API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Live","description":"Real-time audio transcription, with an optional fast-LLM step (summarize, moderate, translate, or a custom instruction) run over the transcript. Processes one provided audio chunk per call — it does not attach a persistent caption feed to a live stream."},{"name":"Live Annotation","description":"WAVE live-annotation API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Live Commerce","description":"WAVE live-commerce API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Local AI","description":"WAVE local-ai API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Me","description":"WAVE me API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Memory","description":"WAVE memory API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Mesh","description":"WAVE mesh API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Mlvc","description":"WAVE mlvc API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Mobile Producer","description":"WAVE mobile-producer API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Moderate","description":"AI-assisted content moderation for chat, comments, and other text surfaces."},{"name":"Monetization","description":"WAVE monetization API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Monitoring","description":"WAVE monitoring API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"MPP","description":"WAVE mpp API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Mux","description":"WAVE mux API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"MXL","description":"WAVE mxl API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"NDI","description":"WAVE ndi API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"NVR","description":"WAVE nvr API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"OMT","description":"WAVE omt API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Ops","description":"WAVE ops API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Orbit","description":"WAVE orbit API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Organizations","description":"WAVE organizations API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Outliers","description":"WAVE outliers API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Payments","description":"WAVE payments API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Perception","description":"WAVE perception API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Pipelines","description":"WAVE pipelines API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Preferences","description":"WAVE preferences API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Presence","description":"WAVE presence API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Privy","description":"WAVE privy API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Production","description":"WAVE production API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Production Graph","description":"WAVE production-graph API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Productions","description":"Multi-camera production sessions — program/preview camera switching and graphics-overlay control for a live production."},{"name":"Products","description":"WAVE products API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Pulse","description":"WAVE pulse API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"QR System","description":"WAVE qr-system API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Quality Scorecard","description":"WAVE quality-scorecard API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Radar","description":"WAVE radar API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Rate Limit","description":"WAVE rate-limit API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Recommend","description":"WAVE recommend API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Remotion","description":"WAVE remotion API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Renders","description":"WAVE renders API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Replay","description":"WAVE replay API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Replay Engine","description":"WAVE replay-engine API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Review","description":"WAVE review API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"RIST","description":"WAVE rist API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Router","description":"WAVE router API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Routes","description":"WAVE routes API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Rtmp","description":"WAVE rtmp API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Runtime","description":"WAVE runtime API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Sandbox","description":"WAVE sandbox API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Scene","description":"WAVE scene API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Signal","description":"WAVE signal API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Signal Generator","description":"WAVE signal-generator API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Signal Verifier","description":"WAVE signal-verifier API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Slides To Video","description":"WAVE slides-to-video API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Social Distribution","description":"WAVE social-distribution API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Sports Data","description":"WAVE sports-data API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"SRT","description":"WAVE srt API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"ST2110","description":"WAVE st2110 API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Stream","description":"WAVE stream API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Stream Router","description":"WAVE stream-router API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Streamdeck","description":"WAVE streamdeck API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Streaming","description":"WAVE streaming API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Streams","description":"Live stream lifecycle — create a stream, start/stop it, read its status and per-stream analytics, and mark highlight moments for later clipping."},{"name":"Studio","description":"WAVE studio API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Studio Automation","description":"WAVE studio-automation API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Switcher","description":"WAVE switcher API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Tempo","description":"WAVE tempo API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Transcode","description":"WAVE transcode API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Twilio","description":"WAVE twilio API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Unsubscribe","description":"WAVE unsubscribe API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Usage","description":"Raw per-dimension usage totals from the underlying meter ledger — see Billing for the billed-and-priced view."},{"name":"USB Relay","description":"WAVE usb-relay API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Vault","description":"WAVE vault API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Video Gen","description":"WAVE video-gen API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Viewer","description":"WAVE viewer API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Virtual Studio","description":"WAVE virtual-studio API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Vision","description":"WAVE vision API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Visual Programming","description":"WAVE visual-programming API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Visual Qa","description":"WAVE visual-qa API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"VOD","description":"WAVE vod API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Volumetric","description":"WAVE volumetric API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Wave Console","description":"WAVE wave-console API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Wave Node","description":"WAVE wave-node API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Wave SDK","description":"WAVE wave-sdk API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Wave Tokens","description":"WAVE wave-tokens API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Webrtc","description":"WAVE webrtc API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Whep","description":"WAVE whep API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Whip","description":"WAVE whip API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Workflow Engine","description":"WAVE workflow-engine API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"X402","description":"WAVE x402 API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Zero Trust Vault","description":"WAVE zero-trust-vault API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Zoom","description":"WAVE zoom API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."},{"name":"Zoom Integration","description":"WAVE zoom-integration API — priced capability surface documented from the live gateway skills index; the request/response shape is not yet published (draft)."}],"paths":{"/agent/auth/device":{"post":{"operationId":"agentAuthDevice","tags":["Agent Auth"],"security":[],"summary":"Start the OAuth Device Authorization ceremony (RFC 8628)","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","responses":{"200":{"description":"The device grant (codes, verification URI, expiry, poll interval)","content":{"application/json":{"schema":{"type":"object","required":["device_code","user_code","verification_uri","verification_uri_complete","expires_in","interval"],"properties":{"device_code":{"type":"string"},"user_code":{"type":"string"},"verification_uri":{"type":"string","format":"uri","description":"The approve URL the human opens"},"verification_uri_complete":{"type":"string","format":"uri","description":"The same URL with the user code prefilled"},"expires_in":{"type":"integer","description":"Seconds until the device code expires (600)"},"interval":{"type":"integer","description":"Poll interval in seconds (5)"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"Device authorization not enabled for the app (dashboard toggle)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"502":{"description":"Upstream auth endpoint unreachable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Ceremony not configured on this deployment (no app id)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/agent/auth/token":{"post":{"operationId":"agentAuthToken","tags":["Agent Auth"],"security":[],"summary":"Poll for / refresh the ceremony tokens","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"title":"DeviceCodeGrant","description":"Poll for tokens while approval is pending (grant_type=device_code)","type":"object","required":["grant_type","device_code"],"additionalProperties":false,"properties":{"grant_type":{"type":"string","enum":["urn:ietf:params:oauth:grant-type:device_code","device_code"],"description":"The registered RFC 8628 URN (canonical, what the upstream token endpoint requires) or the bare shorthand (accepted at this seam and canonicalized to the URN before forwarding)"},"device_code":{"type":"string"}}},{"title":"RefreshTokenGrant","description":"Exchange a refresh token for a new access token (grant_type=refresh_token)","type":"object","required":["grant_type","refresh_token"],"additionalProperties":false,"properties":{"grant_type":{"type":"string","enum":["refresh_token"]},"refresh_token":{"type":"string"}}}]}}}},"responses":{"200":{"description":"Tokens. First approval returns access_token plus the initial refresh_token; a refresh exchange returns access_token plus a REPLACEMENT refresh_token (the old one is invalidated by the same call). An absent refresh_token signals revocation: restart the ceremony.","content":{"application/json":{"schema":{"type":"object","required":["access_token"],"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string","description":"Present on first approval and on every refresh exchange (rotation); absent only when the grant is revoked or expired"}}}}}},"400":{"description":"Invalid grant_type, missing credential for the grant, or the upstream polling protocol error passed through verbatim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"502":{"description":"Upstream auth endpoint unreachable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Ceremony not configured on this deployment (no app id)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/batch":{"post":{"operationId":"batchOperations","tags":["Batch"],"summary":"Execute a batch of operations in one request","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["operations"],"properties":{"operations":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"object","required":["method","path"],"properties":{"method":{"type":"string","enum":["GET","HEAD","POST","PUT","PATCH","DELETE"]},"path":{"type":"string","description":"An enforced /v1 route"},"body":{"description":"The operation's JSON body (mutating methods only)"}}}}}}}}},"responses":{"200":{"description":"Per-operation results","content":{"application/json":{"schema":{"type":"object","properties":{"operations":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"ok":{"type":"boolean"},"status":{"type":"integer"},"body":{"description":"The operation's response body"}}}}}}}}},"400":{"description":"Invalid batch (operations[] required, 25-op cap)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"Rate limited (RFC RateLimit headers on the response)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/render":{"post":{"tags":["Render"],"summary":"Render a video from a Brief (x402-payable)","operationId":"renderVideo","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","security":[],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"A replayed key returns the original result without re-charging."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderBrief"}}}},"responses":{"200":{"description":"The rendered video — binary, or a RenderResult envelope under Accept application/json.","content":{"video/mp4":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/RenderResult"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"description":"Payment required — pay the x402 challenge and retry.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"The x402 challenge, including the quoted price."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"Output too large to return inline and no hosted delivery configured (OUTPUT_TOO_LARGE).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"451":{"description":"Content is on the operator deny/takedown list and will not be rendered (CONTENT_BLOCKED).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/render/{jobId}":{"get":{"tags":["Render"],"summary":"Poll an async render job","operationId":"renderPoll","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","security":[],"parameters":[{"$ref":"#/components/parameters/RenderJobIdParam"}],"responses":{"200":{"description":"The job view.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderJobView"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"$ref":"#/components/responses/RateLimitError"},"503":{"description":"Job status temporarily unavailable — the job store did not answer. This is retryable and does NOT mean the job failed; back off and poll again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/render/{jobId}/events":{"get":{"tags":["Render"],"summary":"Subscribe to an async render job (SSE)","operationId":"renderEvents","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","security":[],"parameters":[{"$ref":"#/components/parameters/RenderJobIdParam"}],"responses":{"200":{"description":"SSE stream of RenderJobView frames.","content":{"text/event-stream":{"schema":{"type":"string","description":"An SSE stream. Each `data:` line is a JSON-encoded `RenderJobView`."}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streams":{"get":{"summary":"List/query streams (WSC streams resource; draft — see api-spec for the full shape)","tags":["streams"],"responses":{"200":{"description":"Streams resource collection"},"402":{"description":"Payment required (x402 challenge)"}}},"post":{"summary":"Create/bridge a stream (WSC streams resource; draft — see api-spec for the full shape)","tags":["streams"],"responses":{"200":{"description":"Stream created/bridged"},"402":{"description":"Payment required (x402 challenge)"}}}},"/streams/{streamId}":{"get":{"tags":["Streams"],"summary":"Get a stream","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getStream","parameters":[{"$ref":"#/components/parameters/StreamIdParam"}],"responses":{"200":{"description":"Stream details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stream"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streams/{streamId}/start":{"post":{"tags":["Streams"],"summary":"Start a stream","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"startStream","parameters":[{"$ref":"#/components/parameters/StreamIdParam"}],"responses":{"200":{"description":"Stream started","content":{"application/json":{"schema":{"type":"object","properties":{"stream_id":{"type":"string"},"session_id":{"type":"string"},"status":{"type":"string","enum":["live"]},"ingest_url":{"type":["string","null"]},"started_at":{"type":"string","format":"date-time"},"message":{"type":"string"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"description":"Stream is already live.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streams/{streamId}/stop":{"post":{"tags":["Streams"],"summary":"Stop a stream","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"stopStream","parameters":[{"$ref":"#/components/parameters/StreamIdParam"}],"responses":{"200":{"description":"Stream stopped","content":{"application/json":{"schema":{"type":"object","properties":{"stream_id":{"type":"string"},"session_id":{"type":"string"},"status":{"type":"string","enum":["ended"]},"ended_at":{"type":"string","format":"date-time"},"duration_minutes":{"type":"number"},"viewer_count_peak":{"type":"integer"},"message":{"type":"string"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"description":"Stream is not currently live.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streams/{streamId}/status":{"get":{"tags":["Streams"],"summary":"Get a stream's status","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getStreamStatus","parameters":[{"$ref":"#/components/parameters/StreamIdParam"}],"responses":{"200":{"description":"Stream status","content":{"application/json":{"schema":{"type":"object","properties":{"stream_id":{"type":"string"},"status":{"type":"string","enum":["idle","live","ended"]},"current_viewers":{"type":"integer"},"protocol_active":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streams/{streamId}/analytics":{"get":{"tags":["Streams"],"summary":"Get a stream's analytics","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getStreamAnalytics","parameters":[{"$ref":"#/components/parameters/StreamIdParam"},{"name":"from","in":"query","description":"Range start (ISO 8601 timestamp).","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Range end (ISO 8601 timestamp).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Stream analytics","content":{"application/json":{"schema":{"type":"object","properties":{"stream_id":{"type":"string"},"metrics":{"type":"object","properties":{"peak_concurrent_viewers":{"type":"integer"},"sample_count":{"type":"integer"},"avg_quality_score":{"type":["number","null"]}}},"timeseries":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time"},"viewer_count":{"type":"integer"},"quality_score":{"type":["number","null"]},"latency_ms":{"type":["number","null"]}}}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streams/{streamId}/highlights":{"get":{"tags":["Streams"],"summary":"List a stream's highlights","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"listStreamHighlights","parameters":[{"$ref":"#/components/parameters/StreamIdParam"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}}],"responses":{"200":{"description":"Paginated list of highlights","content":{"application/json":{"schema":{"type":"object","properties":{"highlights":{"type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"stream_id":{"type":"string"},"limit":{"type":"integer"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Streams"],"summary":"Mark a highlight","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"markStreamHighlight","parameters":[{"$ref":"#/components/parameters/StreamIdParam"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","maxLength":255},"timestamp":{"type":"string","format":"date-time","description":"Defaults to now."},"confidence":{"type":"number","minimum":0,"maximum":1},"duration_seconds":{"type":"number","minimum":0}}}}}},"responses":{"201":{"description":"Highlight marked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Highlight"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/moderate":{"post":{"tags":["Moderate"],"summary":"Moderate content","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"moderateContent","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerateRequest"}}}},"responses":{"200":{"description":"Moderation verdict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerateResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/live/pipeline":{"post":{"tags":["Live"],"summary":"Transcribe an audio clip and run a fast-LLM step over it","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"startLivePipeline","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file","llm_model"],"properties":{"file":{"type":"string","format":"binary","description":"Audio bytes to transcribe."},"stream_id":{"type":"string","maxLength":128,"pattern":"^[A-Za-z0-9._:-]{1,128}$","description":"Client-chosen correlation id (letters, digits, `. _ : -`, 1-128 chars), echoed back for per-stream correlation."},"language":{"type":"string","description":"ISO 639 language hint (transcribe task only)."},"task":{"type":"string","enum":["transcribe","translate"],"default":"transcribe"},"model":{"type":"string","enum":["whisper-large-v3-turbo","whisper-large-v3"],"description":"Default whisper-large-v3-turbo; translate forces whisper-large-v3."},"mode":{"type":"string","enum":["summarize","moderate","translate","custom"],"default":"summarize"},"instruction":{"type":"string","maxLength":500,"description":"Custom instruction, used when mode=custom."},"llm_model":{"type":"string","description":"Fast LLM model id to run the pipeline step."},"max_tokens":{"type":"integer","minimum":1,"maximum":4096,"default":256}}}}}},"responses":{"200":{"description":"Transcript plus the LLM step's output","content":{"application/json":{"schema":{"type":"object","properties":{"transcript":{"type":"string"},"duration":{"type":"number"},"llm":{"type":"object","properties":{"mode":{"type":"string"},"model":{"type":"string"},"output":{"type":"string"},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"}}}}},"stream_id":{"type":"string"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"The live-pipeline feature is not armed for this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"503":{"description":"Transcription is temporarily unavailable — retry after the given delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/live/caption":{"post":{"tags":["Live"],"summary":"Transcribe an audio clip","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"transcribeLiveAudio","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary"},"stream_id":{"type":"string","maxLength":128,"pattern":"^[A-Za-z0-9._:-]{1,128}$","description":"Client-chosen correlation id (letters, digits, `. _ : -`, 1-128 chars), echoed back for per-stream correlation."},"language":{"type":"string"},"task":{"type":"string","enum":["transcribe","translate"],"default":"transcribe"},"model":{"type":"string","enum":["whisper-large-v3-turbo","whisper-large-v3"]},"response_format":{"type":"string","enum":["verbose_json","json","text"],"default":"verbose_json"},"format":{"type":"string","enum":["json","vtt","srt","scc","text"],"default":"json","description":"Output shape. Non-json returns a serialized caption file body."},"t0":{"type":"number","description":"Windowed-mode start offset (seconds) on the stream timeline."},"seq":{"type":"integer","description":"Windowed-mode window index, echoed back for ordering."}}}}}},"responses":{"200":{"description":"Transcription result (JSON, or a serialized caption file when `format` != json)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Relays the transcription engine's JSON (text, segments, language, duration) verbatim, plus `stream_id`/`window` when supplied."}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"The live-pipeline feature is not armed for this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"503":{"description":"Transcription is temporarily unavailable — retry after the given delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/productions":{"get":{"tags":["Productions"],"summary":"List productions","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"listProductions","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}},{"name":"status","in":"query","schema":{"type":"string","enum":["setup","rehearsal","live","paused","ended"]}}],"responses":{"200":{"description":"Paginated list of productions","content":{"application/json":{"schema":{"type":"object","properties":{"productions":{"type":"array","items":{"$ref":"#/components/schemas/Production"}},"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Productions"],"summary":"Create a production","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"createProduction","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductionRequest"}}}},"responses":{"201":{"description":"Production created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Production"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/productions/{productionId}":{"get":{"tags":["Productions"],"summary":"Get a production","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getProduction","parameters":[{"$ref":"#/components/parameters/ProductionIdParam"}],"responses":{"200":{"description":"Production details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Production"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/productions/{productionId}/camera":{"post":{"tags":["Productions"],"summary":"Switch a production's camera","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"switchProductionCamera","parameters":[{"$ref":"#/components/parameters/ProductionIdParam"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwitchCameraRequest"}}}},"responses":{"200":{"description":"Camera switched","content":{"application/json":{"schema":{"type":"object","properties":{"productionId":{"type":"string"},"bus":{"type":"string","enum":["program","preview"]},"cameraIndex":{"type":"integer"},"transition":{"type":"string","enum":["cut","dissolve","wipe","fade"]},"switchedAt":{"type":"string","format":"date-time"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/productions/{productionId}/overlay":{"post":{"tags":["Productions"],"summary":"Show, hide, or update a production's graphic overlay","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"setProductionOverlay","parameters":[{"$ref":"#/components/parameters/ProductionIdParam"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["graphic_id","action"],"properties":{"graphic_id":{"type":"string","minLength":1,"maxLength":100},"action":{"type":"string","enum":["show","hide","update"]},"data":{"type":"object","additionalProperties":true,"description":"Data bindings for the graphic template."}}}}}},"responses":{"200":{"description":"Overlay state updated","content":{"application/json":{"schema":{"type":"object","properties":{"productionId":{"type":"string"},"graphicId":{"type":"string"},"action":{"type":"string","enum":["show","hide","update"]},"data":{"type":["object","null"],"additionalProperties":true},"updatedAt":{"type":"string","format":"date-time"},"overlays":{"type":"object","additionalProperties":true,"description":"The production's full overlay map after this update."}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/cameras":{"get":{"tags":["Cameras"],"summary":"List registered cameras","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"listCameras","responses":{"200":{"description":"List of registered cameras","content":{"application/json":{"schema":{"type":"object","properties":{"cameras":{"type":"array","items":{"$ref":"#/components/schemas/Camera"}},"total":{"type":"integer"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Cameras"],"summary":"Register a camera","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"registerCamera","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterCameraRequest"}}}},"responses":{"201":{"description":"Camera registered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Camera"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/cameras/{cameraId}/control":{"post":{"tags":["Cameras"],"summary":"Send a control command to a camera","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"controlCamera","parameters":[{"$ref":"#/components/parameters/CameraIdParam"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlCameraRequest"}}}},"responses":{"200":{"description":"Command queued","content":{"application/json":{"schema":{"type":"object","properties":{"cameraId":{"type":"string"},"commandId":{"type":"string"},"command":{"$ref":"#/components/schemas/ControlCameraRequest"},"status":{"type":"string","enum":["queued","acked","failed"]}}}}}},"400":{"description":"Invalid or unrecognized control command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/billing":{"get":{"tags":["Billing"],"summary":"Get the current billing account","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getBilling","responses":{"200":{"description":"Billing account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingAccount"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/billing/usage":{"get":{"tags":["Billing"],"summary":"Get billed usage for a date range","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getBillingUsage","parameters":[{"name":"from","in":"query","description":"Range start (YYYY-MM-DD). Defaults to the start of the current month.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"Range end (YYYY-MM-DD). Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Billed usage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingUsageResponse"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"Billing usage is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/usage":{"get":{"summary":"LIVE inference funnel usage — OPERATOR ONLY (registry-grounded, GROUP BY model, spend to 8 decimals)","description":"Operator-authenticated. Requires the WAVE service bearer; unauthenticated callers receive 401 TELEMETRY_AUTH_REQUIRED.","tags":["internal"],"security":[{"bearerWithScopes":[]}],"responses":{"200":{"description":"Live usage from usage_logs (the truth-loop mirror)"},"401":{"description":"Operator authentication required: {\"error\":{\"code\":\"TELEMETRY_AUTH_REQUIRED\"}}"}}}},"/analytics/overview":{"get":{"tags":["Analytics"],"summary":"Get an account-level analytics overview","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getAnalyticsOverview","parameters":[{"$ref":"#/components/parameters/AnalyticsFromParam"},{"$ref":"#/components/parameters/AnalyticsToParam"}],"responses":{"200":{"description":"Analytics overview","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"type":"string"},"period":{"$ref":"#/components/schemas/DateRange"},"summary":{"type":"object","properties":{"totalEvents":{"type":"integer"},"totalQuantity":{"type":"number"},"activeDays":{"type":"integer"},"topDimensions":{"type":"array","items":{"type":"object","properties":{"dimension":{"type":"string"},"quantity":{"type":"number"}}}}}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"Analytics are temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/analytics/top-content":{"get":{"tags":["Analytics"],"summary":"Get top content by usage","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getAnalyticsTopContent","parameters":[{"$ref":"#/components/parameters/AnalyticsFromParam"},{"$ref":"#/components/parameters/AnalyticsToParam"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"Top content by usage","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"type":"string"},"period":{"$ref":"#/components/schemas/DateRange"},"topContent":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"dimension":{"type":"string"},"quantity":{"type":"number"}}}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"Analytics are temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/analytics/engagement":{"get":{"tags":["Analytics"],"summary":"Get account-wide engagement analytics","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"getAnalyticsEngagement","parameters":[{"$ref":"#/components/parameters/AnalyticsFromParam"},{"$ref":"#/components/parameters/AnalyticsToParam"}],"responses":{"200":{"description":"Engagement analytics","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"type":"string"},"period":{"$ref":"#/components/schemas/DateRange"},"engagement":{"type":"object","properties":{"totalEvents":{"type":"integer"},"totalQuantity":{"type":"number"},"averageEventsPerDay":{"type":"number"},"peakDay":{"type":["string","null"]},"peakEvents":{"type":"integer"},"activeDays":{"type":"integer"}}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"Analytics are temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/clips":{"get":{"tags":["Clips"],"summary":"List clips","operationId":"listClips","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"videoId","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/JobStatus"}},{"name":"category","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of clips","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Clip"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Clips"],"summary":"Create a clip","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","operationId":"createClip","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipCreate"}}}},"responses":{"201":{"description":"Clip created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipCreateResponse"}}}},"400":{"description":"Validation error (the clip route's own envelope, not the shared Error schema).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipError"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/clips/{clipId}":{"get":{"tags":["Clips"],"summary":"Get a clip","operationId":"getClip","parameters":[{"name":"clipId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Clip details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Clip"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"patch":{"tags":["Clips"],"summary":"Update a clip","operationId":"updateClip","parameters":[{"name":"clipId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipUpdate"}}}},"responses":{"200":{"description":"Clip updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Clip"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"delete":{"tags":["Clips"],"summary":"Delete a clip","operationId":"deleteClip","parameters":[{"name":"clipId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Clip deleted"},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/clips/detect":{"post":{"tags":["Clips"],"summary":"Start AI clip detection","operationId":"detectClips","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipDetectRequest"}}}},"responses":{"202":{"description":"Detection job started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectionJob"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/voice/voices":{"get":{"tags":["Voice"],"summary":"List available voices","operationId":"listVoices","parameters":[{"name":"category","in":"query","schema":{"type":"string","enum":["premade","cloned","professional"]}},{"name":"language","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"List of voices","content":{"application/json":{"schema":{"type":"object","properties":{"voices":{"type":"array","items":{"$ref":"#/components/schemas/Voice"}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/voice/generate":{"post":{"tags":["Voice"],"summary":"Generate speech from text","operationId":"generateSpeech","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceGenerateRequest"}}}},"responses":{"200":{"description":"Speech generated. The gateway returns one of three shapes depending on the engine path: an inline JSON payload with base64 audio + character `alignment` (single round-trip, carries word timestamps), an async job to poll, or raw audio bytes when timestamps were not requested.\n","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/VoiceSynthesisInline"},{"$ref":"#/components/schemas/VoiceGeneration"}]}},"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/voice/clone":{"post":{"tags":["Voice"],"summary":"Clone a voice from audio samples","operationId":"cloneVoice","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceCloneRequest"}}}},"responses":{"201":{"description":"Voice cloned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Voice"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/captions":{"get":{"tags":["Captions"],"summary":"List caption jobs","operationId":"listCaptions","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"videoId","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/JobStatus"}}],"responses":{"200":{"description":"Paginated list of caption jobs","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CaptionJob"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Captions"],"summary":"Create a caption job","operationId":"createCaptionJob","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptionJobCreate"}}}},"responses":{"201":{"description":"Caption job created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptionJob"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/captions/{jobId}":{"get":{"tags":["Captions"],"summary":"Get a caption job","operationId":"getCaptionJob","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Caption job details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptionJob"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"delete":{"tags":["Captions"],"summary":"Delete a caption job","operationId":"deleteCaptionJob","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Caption job deleted"},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/captions/{jobId}/download":{"get":{"tags":["Captions"],"summary":"Download captions","operationId":"downloadCaptions","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"query","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["srt","vtt","txt","json"],"default":"srt"}}],"responses":{"200":{"description":"Caption download","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"content":{"type":"string"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/videos/{videoId}/chapters":{"get":{"tags":["Chapters"],"summary":"List chapters for a video","operationId":"listChapters","deprecated":true,"x-status":"unrouted","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"name":"videoId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of chapters","content":{"application/json":{"schema":{"type":"object","properties":{"chapters":{"type":"array","items":{"$ref":"#/components/schemas/Chapter"}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Chapters"],"summary":"Create a chapter","operationId":"createChapter","deprecated":true,"x-status":"unrouted","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"name":"videoId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterCreate"}}}},"responses":{"201":{"description":"Chapter created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Chapter"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/videos/{videoId}/chapters/detect":{"post":{"tags":["Chapters"],"summary":"Start AI chapter detection","operationId":"detectChapters","deprecated":true,"x-status":"unrouted","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"name":"videoId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChapterDetectRequest"}}}},"responses":{"202":{"description":"Detection job started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectionJob"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/editor/projects":{"get":{"tags":["Editor"],"summary":"List editor projects","operationId":"listProjects","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of projects","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EditorProject"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"post":{"tags":["Editor"],"summary":"Create an editor project","operationId":"createProject","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorProjectCreate"}}}},"responses":{"201":{"description":"Project created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorProject"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/editor/projects/{projectId}":{"get":{"tags":["Editor"],"summary":"Get a project","operationId":"getProject","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorProject"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"patch":{"tags":["Editor"],"summary":"Update a project","operationId":"updateProject","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorProjectUpdate"}}}},"responses":{"200":{"description":"Project updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorProject"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"delete":{"tags":["Editor"],"summary":"Delete a project","operationId":"deleteProject","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Project deleted"},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/editor/projects/{projectId}/export":{"post":{"tags":["Editor"],"summary":"Export a project","operationId":"exportProject","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"202":{"description":"Export started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportJob"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/phone/lines":{"get":{"tags":["Phone"],"summary":"List phone lines","operationId":"listPhoneLines","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"}],"responses":{"200":{"description":"Paginated list of phone lines","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PhoneLine"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Phone"],"summary":"Provision a phone line","operationId":"provisionPhoneLine","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneLineProvision"}}}},"responses":{"201":{"description":"Phone line provisioned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneLine"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/phone/calls":{"get":{"tags":["Phone"],"summary":"List calls","operationId":"listCalls","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"lineId","in":"query","schema":{"type":"string"}},{"name":"direction","in":"query","schema":{"type":"string","enum":["inbound","outbound"]}}],"responses":{"200":{"description":"Paginated list of calls","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Call"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Phone"],"summary":"Make a call","operationId":"makeCall","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallCreate"}}}},"responses":{"201":{"description":"Call initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/collab/rooms":{"get":{"tags":["Collab"],"summary":"List collaboration rooms","operationId":"listCollabRooms","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"status","in":"query","schema":{"type":"string","enum":["waiting","active","ended"]}}],"responses":{"200":{"description":"Paginated list of rooms","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollabRoom"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"post":{"tags":["Collab"],"summary":"Create a collaboration room","operationId":"createCollabRoom","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollabRoomCreate"}}}},"responses":{"201":{"description":"Room created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollabRoom"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/collab/rooms/{roomId}":{"get":{"tags":["Collab"],"summary":"Get a room","operationId":"getCollabRoom","parameters":[{"name":"roomId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Room details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollabRoom"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"delete":{"tags":["Collab"],"summary":"Delete a room","operationId":"deleteCollabRoom","parameters":[{"name":"roomId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Room deleted"},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/podcast/shows":{"get":{"tags":["Podcast"],"summary":"List podcast shows","operationId":"listPodcastShows","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"}],"responses":{"200":{"description":"Paginated list of shows","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PodcastShow"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"post":{"tags":["Podcast"],"summary":"Create a podcast show","operationId":"createPodcastShow","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastShowCreate"}}}},"responses":{"201":{"description":"Show created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastShow"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/podcast/shows/{showId}/episodes":{"get":{"tags":["Podcast"],"summary":"List episodes for a show","operationId":"listPodcastEpisodes","parameters":[{"name":"showId","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"}],"responses":{"200":{"description":"Paginated list of episodes","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PodcastEpisode"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"post":{"tags":["Podcast"],"summary":"Create an episode","operationId":"createPodcastEpisode","parameters":[{"name":"showId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastEpisodeCreate"}}}},"responses":{"201":{"description":"Episode created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastEpisode"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/studio-ai/enhancements":{"get":{"tags":["Studio AI"],"summary":"List enhancement jobs","operationId":"listEnhancements","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"type","in":"query","schema":{"type":"string","enum":["upscale","denoise","stabilize","color_correct","super_resolution"]}},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/JobStatus"}}],"responses":{"200":{"description":"Paginated list of enhancements","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Enhancement"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"post":{"tags":["Studio AI"],"summary":"Create an enhancement job","operationId":"createEnhancement","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhancementCreate"}}}},"responses":{"201":{"description":"Enhancement created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Enhancement"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/studio-ai/preview":{"post":{"tags":["Studio AI"],"summary":"Generate enhancement preview","operationId":"previewEnhancement","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhancementPreviewRequest"}}}},"responses":{"200":{"description":"Preview generated","content":{"application/json":{"schema":{"type":"object","properties":{"beforeUrl":{"type":"string","format":"uri"},"afterUrl":{"type":"string","format":"uri"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/transcribe":{"get":{"tags":["Transcribe"],"summary":"List transcriptions","operationId":"listTranscriptions","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/JobStatus"}}],"responses":{"200":{"description":"Paginated list of transcriptions","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Transcription"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Transcribe"],"summary":"Create a transcription","operationId":"createTranscription","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptionCreate"}}}},"responses":{"201":{"description":"Transcription created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transcription"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/transcribe/{transcriptionId}":{"get":{"tags":["Transcribe"],"summary":"Get a transcription","operationId":"getTranscription","parameters":[{"name":"transcriptionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Transcription details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transcription"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"delete":{"tags":["Transcribe"],"summary":"Delete a transcription","operationId":"deleteTranscription","parameters":[{"name":"transcriptionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Transcription deleted"},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/sentiment":{"get":{"tags":["Sentiment"],"summary":"List sentiment analyses","operationId":"listSentimentAnalyses","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/PerPageParam"},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/JobStatus"}}],"responses":{"200":{"description":"Paginated list of analyses","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SentimentAnalysis"}}}}]}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"post":{"tags":["Sentiment"],"summary":"Create a sentiment analysis","operationId":"createSentimentAnalysis","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentimentAnalysisCreate"}}}},"responses":{"201":{"description":"Analysis created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentimentAnalysis"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/sentiment/analyze":{"post":{"tags":["Sentiment"],"summary":"Analyze text directly","operationId":"analyzeText","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"includeEmotions":{"type":"boolean","default":false},"includeTopics":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Analysis result","content":{"application/json":{"schema":{"type":"object","properties":{"sentiment":{"type":"string","enum":["positive","negative","neutral"]},"score":{"type":"number"},"confidence":{"type":"number"},"emotions":{"$ref":"#/components/schemas/EmotionBreakdown"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicSentiment"}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/search":{"post":{"tags":["Search"],"summary":"Hybrid search (dense + sparse → RRF) over streams/clips/transcripts, tenant-isolated","operationId":"search","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Ranked results + metadata (metered wave_search_queries)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Invalid request (bad body/query/namespace/topK)"},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"Per-org rate limit exceeded"},"503":{"description":"Search plane unconfigured"}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/search/index":{"post":{"tags":["Search"],"summary":"Index (upsert) one doc or a batch","operationId":"searchIndex","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchIndexRequest"}}}},"responses":{"200":{"description":"Indexed count + ids","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchIndexResponse"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/search/index/{id}":{"delete":{"tags":["Search"],"summary":"Delete one indexed doc (idempotent)","operationId":"searchDelete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"namespace","in":"query","required":true,"schema":{"type":"string","enum":["streams","users","clips","transcripts"]}}],"responses":{"200":{"description":"Deleted flag + id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchDeleteResponse"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/search/analytics":{"get":{"tags":["Search"],"summary":"Own-org query insights (top / zero-result / trending)","operationId":"searchAnalytics","responses":{"200":{"description":"Insight receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchAnalyticsResponse"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/realtime/connect":{"get":{"tags":["Realtime"],"summary":"Subscribe to a channel (WebSocket)","operationId":"realtimeConnect","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","servers":[{"url":"https://realtime.wave.online","description":"WAVE Realtime edge"}],"parameters":[{"name":"channel","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9:_-]{0,127}$"},"description":"Namespaced channel id, e.g. `stream:abc`, `room:xyz`."},{"name":"as","in":"query","required":false,"schema":{"type":"string"},"description":"Member id to present as (defaults to the caller's key prefix)."}],"responses":{"101":{"description":"Switching Protocols — WebSocket established."},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"Authentication required"},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"426":{"description":"Upgrade required (not a WebSocket request)"},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/realtime/channels/{channel}/publish":{"post":{"tags":["Realtime"],"summary":"Publish an event to a channel","operationId":"realtimePublish","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","servers":[{"url":"https://realtime.wave.online","description":"WAVE Realtime edge"}],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["event"],"properties":{"event":{"type":"string","description":"Event name, e.g. `caption.cue`, `sentiment.tick`, `clip.created`, `stream.started`."},"data":{"description":"Arbitrary JSON payload for the event."}}}}}},"responses":{"200":{"description":"Published","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"delivered":{"type":"integer","description":"Number of subscribers the event reached"}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"Authentication required"},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/realtime/channels/{channel}/presence":{"get":{"tags":["Realtime"],"summary":"Current presence for a channel","operationId":"realtimePresence","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","servers":[{"url":"https://realtime.wave.online","description":"WAVE Realtime edge"}],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Presence list","content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string"},"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}}}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/realtime/channels/{channel}/history":{"get":{"tags":["Realtime"],"summary":"Recent event history for a channel","operationId":"realtimeHistory","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","servers":[{"url":"https://realtime.wave.online","description":"WAVE Realtime edge"}],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"maximum":50}}],"responses":{"200":{"description":"Recent events","content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string"},"events":{"type":"array","items":{"type":"object"}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"403 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/braid/publish":{"post":{"tags":["Braided Audio"],"summary":"Publish a braided audio track","operationId":"publishBraidAudio","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BraidPublishRequest"}}}},"responses":{"201":{"description":"Braid machine starting","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BraidPublishResult"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"Per-org concurrency or creation-rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"Braid publish unavailable — the worker is not provisioned for on-demand publish.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/braid/publish/{ns}":{"delete":{"tags":["Braided Audio"],"summary":"Stop a braided audio publish","operationId":"stopBraidAudio","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"name":"ns","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Braid machine stopped","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BraidStopResult"}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"No live braid machine for this namespace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"501":{"description":"Braid publish unavailable — the worker is not provisioned for on-demand publish.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/av/remux":{"post":{"tags":["AV Mux/Demux"],"summary":"Mux synchronized IP video + Dante audio into one container","operationId":"avRemux","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvRemuxRequest"}}}},"responses":{"200":{"description":"Muxed container stream — binary, or an AvTransformResult envelope under Accept application/json.","content":{"video/mp2t":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/AvTransformResult"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"description":"Payment required — pay the x402 challenge and retry.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"The x402 challenge, including the quoted price."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"501":{"description":"AV mux/demux unavailable — the spoke is not provisioned (AV_ORIGIN unset).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/av/demux":{"post":{"tags":["AV Mux/Demux"],"summary":"Demux one container back into separate video + Dante audio","operationId":"avDemux","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvDemuxRequest"}}}},"responses":{"200":{"description":"Demux result — routed IP-video + Dante sink status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvTransformResult"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"description":"Payment required — pay the x402 challenge and retry.","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"The x402 challenge, including the quoted price."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"501":{"description":"AV mux/demux unavailable — the spoke is not provisioned (AV_ORIGIN unset).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/moq/publish/{ns}/{track}":{"post":{"tags":["MoQ"],"summary":"Mint a MoQ publish join-token","operationId":"mintMoqPublishToken","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"$ref":"#/components/parameters/MoqNamespaceParam"},{"$ref":"#/components/parameters/MoqTrackParam"},{"name":"x-wave-declare-protocol","in":"header","required":false,"schema":{"type":"string"},"description":"Optional declared origin protocol for billing (e.g. `moq`). Ignored unless recognized and authorized for this org; never rejects the mint."}],"responses":{"200":{"description":"Join-token minted. Served `cache-control: no-store` — never cache or log `joinToken`.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"Always `no-store` — the response carries a short-lived bearer token."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoqJoinToken"}}}},"400":{"description":"`MOQ_JOIN_BAD_RESOURCE` — `ns` or `track` does not match `^[a-z0-9-]{1,64}$`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"503":{"$ref":"#/components/responses/MoqJoinUnconfigured"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/moq/subscribe/{ns}/{track}":{"get":{"tags":["MoQ"],"summary":"Mint a MoQ subscribe join-token","operationId":"mintMoqSubscribeToken","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"$ref":"#/components/parameters/MoqNamespaceParam"},{"$ref":"#/components/parameters/MoqTrackParam"}],"responses":{"200":{"description":"Join-token minted. Served `cache-control: no-store` — never cache or log `joinToken`.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"Always `no-store` — the response carries a short-lived bearer token."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoqJoinToken"}}}},"400":{"description":"`MOQ_JOIN_BAD_RESOURCE` — `ns` or `track` does not match `^[a-z0-9-]{1,64}$`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"},"503":{"$ref":"#/components/responses/MoqJoinUnconfigured"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/identity/resolve":{"get":{"tags":["Identity"],"summary":"Resolve a WAVE agent id to its public channel map","operationId":"identityResolve","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"name":"agent","in":"query","required":true,"description":"Agent id (lowercase, e.g. `opencode`, `claude`, `telephony`)","schema":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"}},{"name":"org","in":"query","required":false,"description":"Optional tenancy self-assertion; must equal the authenticated principal's org","schema":{"type":"string"}}],"responses":{"200":{"description":"The resolved directory entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityResolveResponse"}}}},"400":{"description":"Missing/bad agent id, or org self-assertion mismatch (MISSING_AGENT / BAD_AGENT / ORG_MISMATCH)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityResolveValidationError"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"Well-formed but unknown agent id (UNKNOWN_AGENT)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityResolveNotFoundError"}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/pricing/manifests":{"get":{"tags":["Pricing"],"summary":"List the caller-org's pricing tier manifests","operationId":"pricingManifestsList","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","responses":{"200":{"description":"The org's manifests","content":{"application/json":{"schema":{"type":"object","required":["org","manifests"],"properties":{"org":{"type":"string"},"manifests":{"type":"array","items":{"$ref":"#/components/schemas/PricingManifest"}}}}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"},"post":{"tags":["Pricing"],"summary":"Validate + upsert the caller-org's tier manifest","operationId":"pricingManifestsCreate","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["slug","tiers"],"properties":{"slug":{"type":"string"},"tiers":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}},"responses":{"200":{"description":"The upserted manifest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PricingManifest"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/custody/{op}":{"post":{"tags":["Custody"],"summary":"Held-fund capability operation (grant / revoke / inspect / exercise)","operationId":"custodyOperation","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","parameters":[{"name":"op","in":"path","required":true,"description":"The custody operation","schema":{"type":"string","enum":["grant","revoke","inspect","exercise"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["grantId"],"properties":{"grantId":{"type":"string"},"provider":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"ttlSeconds":{"type":"number"}}}}}},"responses":{"200":{"description":"The operation receipt (metadata only — never a secret field)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"CUSTODY_UNCONFIGURED — bindings/flag absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/engine/capabilities":{"get":{"tags":["Engine"],"summary":"The media-engine capability contract","operationId":"engineCapabilities","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","responses":{"200":{"description":"The capability contract","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/gpu/infer":{"post":{"tags":["Gpu"],"summary":"Dispatch a GPU inference job on the WAVE-hosted GPU plane","operationId":"gpuInfer","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"input":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"The job receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"},"get":{"tags":["Gpu"],"summary":"GPU plane status","operationId":"gpuStatus","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","responses":{"200":{"description":"Plane status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"429 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/accessibility-studio":{"post":{"tags":["Accessibility Studio"],"operationId":"accessibilityStudio","summary":"WAVE accessibility-studio API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/accessibility-studio.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on accessibility-studio; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["accessibility-studio:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/acp":{"post":{"tags":["ACP"],"operationId":"acp","summary":"WAVE acp API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/acp.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on acp; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["acp:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/acuity":{"post":{"tags":["Acuity"],"operationId":"acuity","summary":"WAVE acuity API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/acuity.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_acuity_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on acuity; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["acuity:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/aegis":{"post":{"tags":["Aegis"],"operationId":"aegis","summary":"WAVE aegis API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/aegis.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on aegis; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["aegis:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/aes67":{"post":{"tags":["AES67"],"operationId":"aes67","summary":"WAVE aes67 API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/aes67.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on aes67; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["aes67:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/agentic-media":{"post":{"tags":["Agentic Media"],"operationId":"agenticMedia","summary":"WAVE agentic-media API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/agentic-media.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on agentic-media; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["agentic-media:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/agents":{"post":{"tags":["Agents"],"operationId":"agents","summary":"WAVE agents API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/agents.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on agents; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["agents:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/ai":{"post":{"tags":["AI"],"operationId":"ai","summary":"WAVE ai API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/ai.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_ai_tokens_haiku_input","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on ai; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["ai:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/analytics":{"post":{"tags":["Analytics"],"operationId":"analytics","summary":"WAVE analytics API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/analytics.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on analytics; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["analytics:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/api-gateway":{"post":{"tags":["Api Gateway"],"operationId":"apiGateway","summary":"WAVE api-gateway API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/api-gateway.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on api-gateway; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["api-gateway:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/archive":{"post":{"tags":["Archive"],"operationId":"archive","summary":"WAVE archive API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/archive.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on archive; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["archive:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/argus":{"post":{"tags":["Argus"],"operationId":"argus","summary":"WAVE argus API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/argus.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on argus; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["argus:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/audience-engagement":{"post":{"tags":["Audience Engagement"],"operationId":"audienceEngagement","summary":"WAVE audience-engagement API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/audience-engagement.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on audience-engagement; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["audience-engagement:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/audio-mastering":{"post":{"tags":["Audio Mastering"],"operationId":"audioMastering","summary":"WAVE audio-mastering API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/audio-mastering.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on audio-mastering; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["audio-mastering:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/auth":{"post":{"tags":["Auth"],"operationId":"auth","summary":"WAVE auth API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/auth.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on auth; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["auth:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/autopilot":{"post":{"tags":["Autopilot"],"operationId":"autopilot","summary":"WAVE autopilot API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/autopilot.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on autopilot; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["autopilot:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/behavioral-intelligence":{"post":{"tags":["Behavioral Intelligence"],"operationId":"behavioralIntelligence","summary":"WAVE behavioral-intelligence API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/behavioral-intelligence.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on behavioral-intelligence; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["behavioral-intelligence:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/benchmark":{"post":{"tags":["Benchmark"],"operationId":"benchmark","summary":"WAVE benchmark API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/benchmark.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on benchmark; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["benchmark:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/bmd":{"post":{"tags":["Bmd"],"operationId":"bmd","summary":"WAVE bmd API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/bmd.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on bmd; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["bmd:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/bridge":{"post":{"tags":["Bridge"],"operationId":"bridge","summary":"WAVE bridge API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/bridge.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_bridge_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on bridge; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["bridge:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/broadcast":{"post":{"tags":["Broadcast"],"operationId":"broadcast","summary":"WAVE broadcast API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/broadcast.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on broadcast; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["broadcast:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/camera-control":{"post":{"tags":["Camera Control"],"operationId":"cameraControl","summary":"WAVE camera-control API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/camera-control.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on camera-control; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["camera-control:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/campus":{"post":{"tags":["Campus"],"operationId":"campus","summary":"WAVE campus API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/campus.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on campus; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["campus:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/challenge":{"post":{"tags":["Challenge"],"operationId":"challenge","summary":"WAVE challenge API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/challenge.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on challenge; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["challenge:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/chapters":{"post":{"tags":["Chapters"],"operationId":"chapters","summary":"WAVE chapters API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/chapters.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on chapters; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["chapters:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/ci":{"post":{"tags":["Ci"],"operationId":"ci","summary":"WAVE ci API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/ci.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on ci; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["ci:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/cloud-switcher":{"post":{"tags":["Cloud Switcher"],"operationId":"cloudSwitcher","summary":"WAVE cloud-switcher API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/cloud-switcher.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on cloud-switcher; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["cloud-switcher:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/companion":{"post":{"tags":["Companion"],"operationId":"companion","summary":"WAVE companion API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/companion.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on companion; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["companion:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/competitive-intel":{"post":{"tags":["Competitive Intel"],"operationId":"competitiveIntel","summary":"WAVE competitive-intel API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/competitive-intel.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on competitive-intel; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["competitive-intel:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/compliance":{"post":{"tags":["Compliance"],"operationId":"compliance","summary":"WAVE compliance API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/compliance.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on compliance; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["compliance:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/connect":{"post":{"tags":["Connect"],"operationId":"connect","summary":"WAVE connect API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/connect.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on connect; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["connect:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/cookie-consent":{"post":{"tags":["Cookie Consent"],"operationId":"cookieConsent","summary":"WAVE cookie-consent API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/cookie-consent.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on cookie-consent; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["cookie-consent:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/cost":{"post":{"tags":["Cost"],"operationId":"cost","summary":"WAVE cost API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/cost.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on cost; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["cost:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/creator":{"post":{"tags":["Creator"],"operationId":"creator","summary":"WAVE creator API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/creator.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on creator; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["creator:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/creator-economy":{"post":{"tags":["Creator Economy"],"operationId":"creatorEconomy","summary":"WAVE creator-economy API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/creator-economy.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on creator-economy; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["creator-economy:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/creator-storefront":{"post":{"tags":["Creator Storefront"],"operationId":"creatorStorefront","summary":"WAVE creator-storefront API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/creator-storefront.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on creator-storefront; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["creator-storefront:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/crest":{"post":{"tags":["Crest"],"operationId":"crest","summary":"WAVE crest API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/crest.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_crest_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on crest; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["crest:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/cro":{"post":{"tags":["Cro"],"operationId":"cro","summary":"WAVE cro API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/cro.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on cro; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["cro:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/dante":{"post":{"tags":["Dante"],"operationId":"dante","summary":"WAVE dante API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/dante.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_dante_observe_ingests","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on dante; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["dante:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/data-exchange":{"post":{"tags":["Data Exchange"],"operationId":"dataExchange","summary":"WAVE data-exchange API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/data-exchange.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_data_exchange_queries","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on data-exchange; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["data-exchange:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/decode":{"post":{"tags":["Decode"],"operationId":"decode","summary":"WAVE decode API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/decode.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_decode_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on decode; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["decode:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/director":{"post":{"tags":["Director"],"operationId":"director","summary":"WAVE director API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/director.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on director; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["director:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/discovery":{"post":{"tags":["Discovery"],"operationId":"discovery","summary":"WAVE discovery API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/discovery.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on discovery; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["discovery:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/dispatch":{"post":{"tags":["Dispatch"],"operationId":"dispatch","summary":"WAVE dispatch API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/dispatch.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_dispatch_decisions","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on dispatch; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["dispatch:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/dmca":{"post":{"tags":["Dmca"],"operationId":"dmca","summary":"WAVE dmca API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/dmca.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on dmca; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["dmca:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/dsar":{"post":{"tags":["Dsar"],"operationId":"dsar","summary":"WAVE dsar API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/dsar.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on dsar; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["dsar:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/dub":{"post":{"tags":["Dub"],"operationId":"dub","summary":"WAVE dub API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/dub.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on dub; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["dub:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/echo":{"post":{"tags":["Echo"],"operationId":"echo","summary":"WAVE echo API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/echo.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on echo; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["echo:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/edge":{"post":{"tags":["Edge"],"operationId":"edge","summary":"WAVE edge API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/edge.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_edge_delivered_units","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on edge; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["edge:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/embeddings":{"post":{"tags":["Embeddings"],"operationId":"embeddings","summary":"WAVE embeddings API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/embeddings.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_embeddings_tokens","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on embeddings; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["embeddings:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/encode":{"post":{"tags":["Encode"],"operationId":"encode","summary":"WAVE encode API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/encode.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_encode_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on encode; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["encode:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/engagement":{"post":{"tags":["Engagement"],"operationId":"engagement","summary":"WAVE engagement API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/engagement.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on engagement; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["engagement:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/enhance":{"post":{"tags":["Enhance"],"operationId":"enhance","summary":"WAVE enhance API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/enhance.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_enhance_minutes","currency":"USDC","network":"base","atomicAmount":"600000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on enhance; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["enhance:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/example":{"post":{"tags":["Example"],"operationId":"example","summary":"WAVE example API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/example.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on example; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["example:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/experiments":{"post":{"tags":["Experiments"],"operationId":"experiments","summary":"WAVE experiments API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/experiments.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on experiments; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["experiments:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/fleet":{"post":{"tags":["Fleet"],"operationId":"fleet","summary":"WAVE fleet API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/fleet.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on fleet; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["fleet:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/forecast":{"post":{"tags":["Forecast"],"operationId":"forecast","summary":"WAVE forecast API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/forecast.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on forecast; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["forecast:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/geo":{"post":{"tags":["Geo"],"operationId":"geo","summary":"WAVE geo API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/geo.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on geo; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["geo:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/ghost-producer":{"post":{"tags":["Ghost Producer"],"operationId":"ghostProducer","summary":"WAVE ghost-producer API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/ghost-producer.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on ghost-producer; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["ghost-producer:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/graphics-engine":{"post":{"tags":["Graphics Engine"],"operationId":"graphicsEngine","summary":"WAVE graphics-engine API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/graphics-engine.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on graphics-engine; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["graphics-engine:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/integrations":{"post":{"tags":["Integrations"],"operationId":"integrations","summary":"WAVE integrations API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/integrations.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on integrations; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["integrations:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/intel":{"post":{"tags":["Intel"],"operationId":"intel","summary":"WAVE intel API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/intel.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on intel; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["intel:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/listen":{"post":{"tags":["Listen"],"operationId":"listen","summary":"WAVE listen API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/listen.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_listen_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on listen; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["listen:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/live":{"post":{"tags":["Live"],"operationId":"live","summary":"WAVE live API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/live.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on live; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["captions:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/live-annotation":{"post":{"tags":["Live Annotation"],"operationId":"liveAnnotation","summary":"WAVE live-annotation API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/live-annotation.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on live-annotation; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["live-annotation:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/live-commerce":{"post":{"tags":["Live Commerce"],"operationId":"liveCommerce","summary":"WAVE live-commerce API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/live-commerce.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on live-commerce; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["live-commerce:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/local-ai":{"post":{"tags":["Local AI"],"operationId":"localAi","summary":"WAVE local-ai API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/local-ai.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on local-ai; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["local-ai:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/me":{"post":{"tags":["Me"],"operationId":"me","summary":"WAVE me API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/me.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on me; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["me:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/memory":{"post":{"tags":["Memory"],"operationId":"memory","summary":"WAVE memory API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/memory.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on memory; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["memory:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/mesh":{"post":{"tags":["Mesh"],"operationId":"mesh","summary":"WAVE mesh API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/mesh.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_mesh_requests_routed","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on mesh; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["mesh:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/mlvc":{"post":{"tags":["Mlvc"],"operationId":"mlvc","summary":"WAVE mlvc API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/mlvc.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on mlvc; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["mlvc:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/mobile-producer":{"post":{"tags":["Mobile Producer"],"operationId":"mobileProducer","summary":"WAVE mobile-producer API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/mobile-producer.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on mobile-producer; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["mobile-producer:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/monetization":{"post":{"tags":["Monetization"],"operationId":"monetization","summary":"WAVE monetization API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/monetization.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on monetization; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["monetization:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/monitoring":{"post":{"tags":["Monitoring"],"operationId":"monitoring","summary":"WAVE monitoring API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/monitoring.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on monitoring; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["monitoring:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/mpp":{"post":{"tags":["MPP"],"operationId":"mpp","summary":"WAVE mpp API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/mpp.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on mpp; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["mpp:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/mux":{"post":{"tags":["Mux"],"operationId":"mux","summary":"WAVE mux API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/mux.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_mux_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on mux; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["mux:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/mxl":{"post":{"tags":["MXL"],"operationId":"mxl","summary":"WAVE mxl API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/mxl.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on mxl; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["mxl:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/ndi":{"post":{"tags":["NDI"],"operationId":"ndi","summary":"WAVE ndi API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/ndi.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on ndi; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["ndi:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/nvr":{"post":{"tags":["NVR"],"operationId":"nvr","summary":"WAVE nvr API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/nvr.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on nvr; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["nvr:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/omt":{"post":{"tags":["OMT"],"operationId":"omt","summary":"WAVE omt API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/omt.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on omt; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["omt:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/ops":{"post":{"tags":["Ops"],"operationId":"ops","summary":"WAVE ops API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/ops.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on ops; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["ops:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/orbit":{"post":{"tags":["Orbit"],"operationId":"orbit","summary":"WAVE orbit API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/orbit.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on orbit; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["orbit:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/organizations":{"post":{"tags":["Organizations"],"operationId":"organizations","summary":"WAVE organizations API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/organizations.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on organizations; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["organizations:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/outliers":{"post":{"tags":["Outliers"],"operationId":"outliers","summary":"WAVE outliers API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/outliers.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on outliers; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["outliers:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/payments":{"post":{"tags":["Payments"],"operationId":"payments","summary":"WAVE payments API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/payments.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on payments; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["payments:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/perception":{"post":{"tags":["Perception"],"operationId":"perception","summary":"WAVE perception API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/perception.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on perception; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["perception:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/pipelines":{"post":{"tags":["Pipelines"],"operationId":"pipelines","summary":"WAVE pipelines API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/pipelines.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on pipelines; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["pipelines:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/preferences":{"post":{"tags":["Preferences"],"operationId":"preferences","summary":"WAVE preferences API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/preferences.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on preferences; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["preferences:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/presence":{"post":{"tags":["Presence"],"operationId":"presence","summary":"WAVE presence API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/presence.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on presence; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["presence:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/privy":{"post":{"tags":["Privy"],"operationId":"privy","summary":"WAVE privy API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/privy.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on privy; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["privy:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/production":{"post":{"tags":["Production"],"operationId":"production","summary":"WAVE production API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/production.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on production; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["production:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/production-graph":{"post":{"tags":["Production Graph"],"operationId":"productionGraph","summary":"WAVE production-graph API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/production-graph.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on production-graph; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["production-graph:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/products":{"post":{"tags":["Products"],"operationId":"products","summary":"WAVE products API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/products.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on products; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["products:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/pulse":{"post":{"tags":["Pulse"],"operationId":"pulse","summary":"WAVE pulse API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/pulse.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"free","meter":"wave_pulse_queries","currency":"USDC","network":"base","x-price-note":"Observed live as no-payment-required (200) unauthenticated; pricing.model is 'free'."},"security":[{"bearerWithScopes":["pulse:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/qr-system":{"post":{"tags":["QR System"],"operationId":"qrSystem","summary":"WAVE qr-system API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/qr-system.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on qr-system; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["qr-system:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/quality-scorecard":{"post":{"tags":["Quality Scorecard"],"operationId":"qualityScorecard","summary":"WAVE quality-scorecard API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/quality-scorecard.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on quality-scorecard; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["quality-scorecard:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/radar":{"post":{"tags":["Radar"],"operationId":"radar","summary":"WAVE radar API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/radar.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on radar; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["radar:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/rate-limit":{"post":{"tags":["Rate Limit"],"operationId":"rateLimit","summary":"WAVE rate-limit API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/rate-limit.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on rate-limit; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["rate-limit:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/recommend":{"post":{"tags":["Recommend"],"operationId":"recommend","summary":"WAVE recommend API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/recommend.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on recommend; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["recommend:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/remotion":{"post":{"tags":["Remotion"],"operationId":"remotion","summary":"WAVE remotion API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/remotion.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on remotion; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["remotion:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/renders":{"post":{"tags":["Renders"],"operationId":"renders","summary":"WAVE renders API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/renders.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_render_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on renders; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["renders:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/replay":{"post":{"tags":["Replay"],"operationId":"replay","summary":"WAVE replay API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/replay.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on replay; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["replay:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/replay-engine":{"post":{"tags":["Replay Engine"],"operationId":"replayEngine","summary":"WAVE replay-engine API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/replay-engine.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on replay-engine; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["replay-engine:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/review":{"post":{"tags":["Review"],"operationId":"review","summary":"WAVE review API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/review.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_review_calls","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on review; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["review:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/rist":{"post":{"tags":["RIST"],"operationId":"rist","summary":"WAVE rist API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/rist.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on rist; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["rist:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/router":{"post":{"tags":["Router"],"operationId":"router","summary":"WAVE router API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/router.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on router; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["router:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/routes":{"post":{"tags":["Routes"],"operationId":"routes","summary":"WAVE routes API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/routes.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on routes; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["routes:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/rtmp":{"post":{"tags":["Rtmp"],"operationId":"rtmp","summary":"WAVE rtmp API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/rtmp.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on rtmp; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["rtmp:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/runtime":{"post":{"tags":["Runtime"],"operationId":"runtime","summary":"WAVE runtime API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/runtime.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_runtime_delivered_units","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on runtime; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["runtime:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/sandbox":{"post":{"tags":["Sandbox"],"operationId":"sandbox","summary":"WAVE sandbox API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/sandbox.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_sandbox_exec","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on sandbox; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["sandbox:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/scene":{"post":{"tags":["Scene"],"operationId":"scene","summary":"WAVE scene API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/scene.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on scene; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["scene:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/signal":{"post":{"tags":["Signal"],"operationId":"signal","summary":"WAVE signal API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/signal.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on signal; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["signal:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/signal-generator":{"post":{"tags":["Signal Generator"],"operationId":"signalGenerator","summary":"WAVE signal-generator API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/signal-generator.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on signal-generator; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["signal-generator:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/signal-verifier":{"post":{"tags":["Signal Verifier"],"operationId":"signalVerifier","summary":"WAVE signal-verifier API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/signal-verifier.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on signal-verifier; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["signal-verifier:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/slides-to-video":{"post":{"tags":["Slides To Video"],"operationId":"slidesToVideo","summary":"WAVE slides-to-video API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/slides-to-video.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on slides-to-video; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["slides-to-video:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/social-distribution":{"post":{"tags":["Social Distribution"],"operationId":"socialDistribution","summary":"WAVE social-distribution API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/social-distribution.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on social-distribution; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["social-distribution:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/sports-data":{"post":{"tags":["Sports Data"],"operationId":"sportsData","summary":"WAVE sports-data API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/sports-data.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on sports-data; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["sports-data:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/srt":{"post":{"tags":["SRT"],"operationId":"srt","summary":"WAVE srt API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/srt.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on srt; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["srt:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/st2110":{"post":{"tags":["ST2110"],"operationId":"st2110","summary":"WAVE st2110 API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/st2110.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on st2110; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["st2110:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/stream":{"post":{"tags":["Stream"],"operationId":"stream","summary":"WAVE stream API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/stream.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_stream_bridge_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on stream; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["stream:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/stream-router":{"post":{"tags":["Stream Router"],"operationId":"streamRouter","summary":"WAVE stream-router API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/stream-router.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on stream-router; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["streams:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streamdeck":{"post":{"tags":["Streamdeck"],"operationId":"streamdeck","summary":"WAVE streamdeck API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/streamdeck.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on streamdeck; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["streamdeck:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/streaming":{"post":{"tags":["Streaming"],"operationId":"streaming","summary":"WAVE streaming API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/streaming.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on streaming; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["streaming:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/studio":{"post":{"tags":["Studio"],"operationId":"studio","summary":"WAVE studio API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/studio.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on studio; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["studio:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/studio-automation":{"post":{"tags":["Studio Automation"],"operationId":"studioAutomation","summary":"WAVE studio-automation API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/studio-automation.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on studio-automation; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["studio-automation:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/switcher":{"post":{"tags":["Switcher"],"operationId":"switcher","summary":"WAVE switcher API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/switcher.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on switcher; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["switcher:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/tempo":{"post":{"tags":["Tempo"],"operationId":"tempo","summary":"WAVE tempo API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/tempo.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on tempo; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["tempo:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/transcode":{"post":{"tags":["Transcode"],"operationId":"transcode","summary":"WAVE transcode API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/transcode.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_transcode_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on transcode; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["transcode:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/twilio":{"post":{"tags":["Twilio"],"operationId":"twilio","summary":"WAVE twilio API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/twilio.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on twilio; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["twilio:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/unsubscribe":{"post":{"tags":["Unsubscribe"],"operationId":"unsubscribe","summary":"WAVE unsubscribe API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/unsubscribe.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on unsubscribe; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["unsubscribe:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/usb-relay":{"post":{"tags":["USB Relay"],"operationId":"usbRelay","summary":"WAVE usb-relay API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/usb-relay.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on usb-relay; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["usb-relay:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/vault":{"post":{"tags":["Vault"],"operationId":"vault","summary":"WAVE vault API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/vault.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on vault; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["vault:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/video-gen":{"post":{"tags":["Video Gen"],"operationId":"videoGen","summary":"WAVE video-gen API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/video-gen.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on video-gen; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["video-gen:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/viewer":{"post":{"tags":["Viewer"],"operationId":"viewer","summary":"WAVE viewer API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/viewer.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on viewer; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["viewer:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/virtual-studio":{"post":{"tags":["Virtual Studio"],"operationId":"virtualStudio","summary":"WAVE virtual-studio API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/virtual-studio.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on virtual-studio; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["virtual-studio:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/vision":{"post":{"tags":["Vision"],"operationId":"vision","summary":"WAVE vision API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/vision.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_vision_summarize_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on vision; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["vision:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog","x-lifecycle":"preview"}},"/visual-programming":{"post":{"tags":["Visual Programming"],"operationId":"visualProgramming","summary":"WAVE visual-programming API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/visual-programming.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on visual-programming; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["visual-programming:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/visual-qa":{"post":{"tags":["Visual Qa"],"operationId":"visualQa","summary":"WAVE visual-qa API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/visual-qa.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_visual_qa_runs","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on visual-qa; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["visual-qa:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/vod":{"post":{"tags":["VOD"],"operationId":"vod","summary":"WAVE vod API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/vod.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_vod_delivered_gb","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on vod; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["vod:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/volumetric":{"post":{"tags":["Volumetric"],"operationId":"volumetric","summary":"WAVE volumetric API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/volumetric.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on volumetric; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["volumetric:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/wave-console":{"post":{"tags":["Wave Console"],"operationId":"waveConsole","summary":"WAVE wave-console API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/wave-console.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on wave-console; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["wave-console:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/wave-node":{"post":{"tags":["Wave Node"],"operationId":"waveNode","summary":"WAVE wave-node API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/wave-node.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on wave-node; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["wave-node:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/wave-sdk":{"post":{"tags":["Wave SDK"],"operationId":"waveSdk","summary":"WAVE wave-sdk API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/wave-sdk.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on wave-sdk; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["wave-sdk:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/wave-tokens":{"post":{"tags":["Wave Tokens"],"operationId":"waveTokens","summary":"WAVE wave-tokens API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/wave-tokens.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on wave-tokens; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["wave-tokens:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/webrtc":{"post":{"tags":["Webrtc"],"operationId":"webrtc","summary":"WAVE webrtc API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/webrtc.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on webrtc; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["webrtc:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/whep":{"post":{"tags":["Whep"],"operationId":"whep","summary":"WAVE whep API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/whep.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_whep_egress_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on whep; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["whep:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/whip":{"post":{"tags":["Whip"],"operationId":"whip","summary":"WAVE whip API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/whip.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":"wave_whip_ingest_minutes","currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on whip; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["whip:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/workflow-engine":{"post":{"tags":["Workflow Engine"],"operationId":"workflowEngine","summary":"WAVE workflow-engine API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/workflow-engine.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on workflow-engine; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["workflow-engine:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/x402":{"post":{"tags":["X402"],"operationId":"x402","summary":"WAVE x402 API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/x402.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on x402; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["x402:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/zero-trust-vault":{"post":{"tags":["Zero Trust Vault"],"operationId":"zeroTrustVault","summary":"WAVE zero-trust-vault API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/zero-trust-vault.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on zero-trust-vault; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["zero-trust-vault:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/zoom":{"post":{"tags":["Zoom"],"operationId":"zoom","summary":"WAVE zoom API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/zoom.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"metered","meter":"wave_zoom_minutes","currency":"USDC","network":"base","x-price-note":"Observed live as 401 AUTH_REQUIRED (no x402 challenge shown pre-auth); pricing.model is 'metered'."},"security":[{"bearerWithScopes":["zoom:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/zoom-integration":{"post":{"tags":["Zoom Integration"],"operationId":"zoomIntegration","summary":"WAVE zoom-integration API","x-schema-status":"draft","x-skill-url":"https://gateway.wave.online/.well-known/wave-skills/zoom-integration.json","description":"WAVE API v1. Versioned by URL path (/v1/). Deprecations announced via Sunset headers and the changelog.","x-price":{"model":"x402","meter":null,"currency":"USDC","network":"base","atomicAmount":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","x-price-note":"Observed live via an unauthenticated x402 402 challenge on zoom-integration; a flat per-call gate, not necessarily the metered rate."},"security":[{"bearerWithScopes":["zoom-integration:write"]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Capability response (draft — shape not yet published).","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"401 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"404 error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error message"},"param":{"type":"string","description":"The parameter that caused the error","nullable":true}},"required":["code","message"]}},"required":["error"]}}}},"429":{"$ref":"#/components/responses/RateLimitError"}},"x-version":"1","x-deprecation-policy":"https://wave.online/changelog"}},"/compose":{"post":{"tags":["composer"],"summary":"Compose a plan from a plain-language intent","description":"Returns a PLAN: the stages, the products, the scopes needed, the price rows and the per-edge typing verdict. Composing never calls a product and never bills. Requires composer:write.","operationId":"createComposeProposal","security":[{"bearerWithScopes":["composer:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeProposalCreate"}}}},"responses":{"200":{"description":"The composed proposal. Stamps x-wave-meter: wave_compose_proposals (counted, never billed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeProposal"}}}}}}},"/compose/run":{"post":{"tags":["composer"],"summary":"Run a stored proposal once","description":"Runs every gate that must hold before a product is called: input check, idempotency, manifest freshness, budget and the declared-IO typing gate. Refuses with 501 RUN_NOT_YET_DECLARED naming the exact missing declaration when a stage edge is undeclared. Requires composer:write.","operationId":"runComposeProposal","security":[{"bearerWithScopes":["composer:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeRunCreate"}}}},"responses":{"200":{"description":"A REPLAY of a prior run with the same idempotency key and the same input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeRunReplay"}}}}}}},"/compose/proposals/{proposalId}":{"get":{"tags":["composer"],"summary":"Read a stored proposal by id","description":"Org scoped. Lets the CLI, SDK and MCP renderings re-read one proposal instead of re-composing it. Requires composer:read.","operationId":"getComposeProposal","security":[{"bearerWithScopes":["composer:read"]}],"parameters":[{"name":"proposalId","in":"path","required":true,"schema":{"type":"string","pattern":"^prp_[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"The stored proposal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeProposal"}}}}}}},"/leaderboard":{"get":{"summary":"Your org's usage leaderboard (meters ranked by consumption) — API key + usage:read","description":"Tenant-scoped: rows are the calling org's own metered dimensions, ranked by billed usage over the window (`from`/`to` as YYYYMMDD, default trailing 7 days). The org is taken from the API key, never from the query string. Unauthenticated callers receive 401 LEADERBOARD_AUTH_REQUIRED. The PUBLIC model-eval leaderboard is a different surface at https://leaderboard.wave.online/leaderboard (no key needed).","tags":["usage"],"servers":[{"url":"https://api.wave.online"}],"security":[{"bearerWithScopes":["usage:read"]}],"externalDocs":{"description":"Public model-eval leaderboard (measured rows only)","url":"https://leaderboard.wave.online/leaderboard"},"responses":{"200":{"description":"{ org, window:{from,to,days}, ranking:[{rank, meter, unit, used}] } — private, no-store"},"401":{"description":"LEADERBOARD_AUTH_REQUIRED — no or invalid API key; body names the public board's URL"},"403":{"description":"SCOPE_DENIED — key lacks usage:read"}}}},"/platform":{"get":{"summary":"Platform-wide live usage — OPERATOR ONLY (inference + voice + codec + storage + realtime + clips + captions)","description":"Operator-authenticated. Requires the WAVE service bearer; unauthenticated callers receive 401 TELEMETRY_AUTH_REQUIRED.","tags":["internal"],"security":[{"bearerWithScopes":[]}],"servers":[{"url":"https://api.wave.online"}],"responses":{"200":{"description":"Every product's live usage, grounded-only"},"401":{"description":"Operator authentication required: {\"error\":{\"code\":\"TELEMETRY_AUTH_REQUIRED\"}}"}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key authentication. Get your API key from the WAVE Developer Portal.\n"},"bearerWithScopes":{"type":"http","scheme":"bearer","description":"Bearer token with scope grants. The token's scopes determine access (see scopes_supported).","x-scopes":{"clips:read":"Read clips and clip metadata","clips:write":"Create and modify clips","voice:read":"Read voice generation results","voice:write":"Generate voice audio","captions:read":"Read captions","captions:write":"Generate captions","dispatch:read":"Read dispatch routing info","dispatch:write":"Send dispatch requests","usage:read":"Read your own usage and meter data","meter:read":"Read your meter ledger","insights:read":"Read analytics insights","media:read":"Read media assets","media:write":"Upload and modify media"}}},"parameters":{"RenderJobIdParam":{"name":"jobId","in":"path","required":true,"description":"The render job id returned when the render was started asynchronously.","schema":{"type":"string"},"example":"9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34"},"MoqNamespaceParam":{"name":"ns","in":"path","required":true,"description":"MoQ namespace. Lowercase alphanumeric and dashes, 1–64 characters. The same value is bound into the minted token's claims and re-checked by the relay against the session it opens.","schema":{"type":"string","pattern":"^[a-z0-9-]{1,64}$","minLength":1,"maxLength":64},"example":"demo-ns"},"MoqTrackParam":{"name":"track","in":"path","required":true,"description":"MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters.","schema":{"type":"string","pattern":"^[a-z0-9-]{1,64}$","minLength":1,"maxLength":64},"example":"cam-1"},"PageParam":{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},"PerPageParam":{"name":"perPage","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},"StreamIdParam":{"name":"streamId","in":"path","required":true,"schema":{"type":"string"}},"ProductionIdParam":{"name":"productionId","in":"path","required":true,"schema":{"type":"string"}},"CameraIdParam":{"name":"cameraId","in":"path","required":true,"schema":{"type":"string"}},"AnalyticsFromParam":{"name":"from","in":"query","description":"Range start (ISO 8601 timestamp). Defaults to 30 days before `to`.","schema":{"type":"string","format":"date-time"}},"AnalyticsToParam":{"name":"to","in":"query","description":"Range end (ISO 8601 timestamp). Defaults to now.","schema":{"type":"string","format":"date-time"}}},"responses":{"ValidationError":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFoundError":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimitError":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait before retrying"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Authentication required, or the API key / token is invalid or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The key is valid but lacks the scope or entitlement for this operation (e.g. SCOPE_OVERREACH, quota tier exhausted).\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PaymentRequired":{"description":"Payment required — the gateway answers with an x402 challenge instead of serving the request. **This response does NOT use the `Error` envelope.** Its `error` member is a plain string (`\"payment required\"`); the normalized WAVE error object is nested under `error_detail`. Complete the challenge in `accepts[0]` and retry with the `x-payment` header. Observed on `api.wave.online` 2026-07-25: a request with no API key AND a request with an unrecognized API key both receive this 402 (not a 401) on the MoQ mint routes, so a client must treat 402 as the ordinary \"not yet authorized to pay-per-use\" outcome.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}}},"MoqJoinUnconfigured":{"description":"`MOQ_JOIN_UNCONFIGURED` — the mint is fail-closed and the signing secret is not provisioned in this environment. The gateway will never mint an unsigned or empty-key token. Not retryable by the caller; it clears when an operator provisions the secret.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UpstreamError":{"description":"An upstream capability provider (e.g. the speech engine) failed. The gateway interprets the failure and returns this normalized WAVE error instead of the raw upstream response, so the caller always sees a stable shape it can act on.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"ComposeProposalCreate":{"type":"object","description":"POST /v1/compose request body. Validated by parseComposeRequest (compose-route.ts).","required":["intent"],"properties":{"intent":{"type":"string","minLength":1,"maxLength":280,"description":"What the caller wants composed, in plain language. Sanitized and capped server side."},"budgetUsd":{"type":"number","minimum":0,"description":"Optional ceiling in USD. A proposal whose minimum total exceeds it is refused at run time."},"flowId":{"type":"string","pattern":"^flw_[A-Za-z0-9_-]{4,64}$","description":"Optional id of an existing flow this proposal belongs to."},"context":{"type":"object","description":"Optional retrieval hints. Ordering only: nothing here is rendered, logged or sent to a model.","properties":{"referer":{"type":"string","maxLength":200}}}}},"ComposeProposal":{"type":"object","description":"A composed PLAN. `executes` is always false: a proposal never runs, POST /v1/compose/run does.","required":["id","intent","why","stages","productIds","tools","scopes","priceRows","callShape","candidates","retrieval","next","typing","executes","grounding","groundedAt","manifestHash","engine","flowId"],"properties":{"id":{"type":"string","pattern":"^prp_[A-Za-z0-9_-]+$","description":"Proposal id. Re-readable via GET /v1/compose/proposals/{proposalId}."},"intent":{"type":"string","description":"The sanitized intent this plan was composed from."},"why":{"type":"string","minLength":1,"description":"One governed sentence about the proposal as a whole (#1682). For a grounded chain it names the stages in composition order; for an intent WAVE could not build, it says exactly that. Always present, never empty."},"stages":{"type":"array","items":{"type":"object"},"description":"The ordered stages of the plan, one per product call."},"productIds":{"type":"array","items":{"type":"string"},"description":"The product ids the stages name, in composition order."},"tools":{"type":"array","items":{"type":"string"},"description":"The MCP tool names the plan would call."},"scopes":{"type":"array","items":{"type":"object"},"description":"Every scope the plan needs, each with whether the caller can be granted it."},"priceRows":{"type":"array","items":{"type":"object"},"description":"One price row per stage. An unquoted row carries the literal 'quote at call time'."},"callShape":{"type":"object","description":"How to call the plan: the surface, the path and the body shape."},"candidates":{"type":"array","description":"The shelf (#1672): every component retrieval connected to this intent, best scoring entry per group.","items":{"$ref":"#/components/schemas/ComposeCandidate"}},"retrieval":{"$ref":"#/components/schemas/ComposeRetrievalInfo"},"next":{"type":"array","items":{"type":"string"},"description":"The next actions a caller can take with this proposal."},"typing":{"type":"array","items":{"type":"object"},"description":"One row per stage edge stating whether stage N may follow stage N-1 AS DECLARED, and citing what was read."},"executes":{"type":"boolean","const":false,"description":"Always false. A proposal is a plan, never an execution."},"grounding":{"type":"string","enum":["live","snapshot"],"description":"Whether the index this plan was composed against was read live."},"groundedAt":{"type":"string","format":"date-time"},"manifestHash":{"type":"string","description":"Digest of the product manifest the plan was composed against. A run refuses on a stale hash."},"engine":{"type":"object","description":"Which composer engine produced the plan: `route` (dispatch|deterministic-fallback), `promptHash`, `model` (null until a sourced catalog exists). When `route` is deterministic-fallback, carries an additional `fallback: { reason, rungs[] }` naming WHY (e.g. a missing provider key, an upstream 402/4xx/5xx, a timeout, a schema refusal, or no products at all) and which provider rungs were tried, in order — never a secret or a raw upstream body. Omitted entirely when `route` is dispatch."},"flowId":{"type":"string","nullable":true}}},"ComposeCandidate":{"type":"object","description":"One retrieved shelf entry: the best scoring knowledge entry for a /v1 group against this intent (#1672).","required":["product","group","score","source"],"properties":{"product":{"type":"string","nullable":true,"description":"The product id when the live enforcement index carries a product row for this group, else null."},"group":{"type":"string","description":"The /v1 group the retrieved entry belongs to. This is the diversity unit of the top k."},"score":{"type":"number","minimum":0,"maximum":1,"description":"Cosine similarity to the intent, 0..1, rounded to 4 dp."},"source":{"type":"object","description":"The PUBLIC document and field the winning entry for this group was read from.","required":["url","field"],"properties":{"url":{"type":"string","format":"uri"},"field":{"type":"string"}}}}},"ComposeRetrievalInfo":{"type":"object","description":"How the shelf was retrieved: k, which embedder produced the numbers, and which corpus answered (#1672).","required":["k","embedder","indexManifestHash","builtAt"],"properties":{"k":{"type":"integer","minimum":0},"embedder":{"type":"string","description":"The embedder id. A swap changes this string on the wire, so a score is never comparable across embedders by accident."},"indexManifestHash":{"type":"string","description":"The enforcement manifestHash the knowledge index was built from. Equals the proposal manifestHash when fresh."},"builtAt":{"type":"string","format":"date-time"}}},"ComposeRunInput":{"type":"object","description":"The caller's own input into stage 0. EXACTLY ONE of `url` or `uploadId`. `url` is validated (https only, no userinfo credentials, no private or metadata host) and hashed. It is never dereferenced, echoed or logged.","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"An https URL naming a public host."},"uploadId":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}},"oneOf":[{"required":["url"]},{"required":["uploadId"]}]},"ComposeRunCreate":{"type":"object","description":"POST /v1/compose/run request body. Validated by parseRunRequest (compose-run-lib.ts).","required":["proposalId","input"],"properties":{"proposalId":{"type":"string","pattern":"^prp_[A-Za-z0-9_-]+$","description":"A proposal the calling org owns."},"input":{"$ref":"#/components/schemas/ComposeRunInput"},"budgetUsd":{"type":"number","minimum":0,"description":"Ceiling in USD for this run. Exceeded means 402, not a partial run."},"idempotencyKey":{"type":"string","pattern":"^[A-Za-z0-9_.:-]{8,200}$","description":"Replay guard. The same key with a different input is a 409 COMPOSE_RUN_CONFLICT, never a second run."}}},"ComposeRunReplay":{"type":"object","description":"The 200 a REPLAYED run returns: the prior run's outcome, not a new execution.","required":["runId","proposalId","status","code","replayed","createdAt"],"properties":{"runId":{"type":"string"},"proposalId":{"type":"string"},"status":{"type":"string","enum":["refused","running","completed","failed"]},"code":{"type":"string","nullable":true},"replayed":{"type":"boolean","const":true},"createdAt":{"type":"string","format":"date-time"}}},"Error":{"type":"object","description":"WAVE-normalized error envelope returned by the api.wave.online gateway. Upstream provider, auth, and quota failures are *interpreted* into this single shape — raw upstream errors (stack traces, vendor SDK objects) are never leaked to the caller. `error.code` is a stable machine-readable code (e.g. AUTH_REQUIRED, SCOPE_OVERREACH, RATE_LIMIT_EXCEEDED, UPSTREAM_ERROR); `error.message` is human-readable.\n","required":["error"],"properties":{"error":{"$ref":"#/components/schemas/ErrorBody"}}},"ErrorBody":{"type":"object","description":"The normalized WAVE error object itself — the value of the `Error` envelope's `error` member. Referenced directly by bodies that carry the error object under a different key (the 402 x402 challenge nests it under `error_detail` without the envelope wrapper).\n","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable explanation, safe to surface to end users."},"details":{"type":"object","additionalProperties":true,"description":"Optional structured context (e.g. failing field, retry limit, requested scopes) — never raw upstream payloads.\n"},"suggestions":{"type":"array","description":"Actionable next steps, ordered most→least likely to resolve the error. Written to be acted on by a human OR an agent.\n","items":{"type":"string"}},"did_you_mean":{"type":"array","description":"Closest valid alternatives when the caller likely made a typo or wrong choice (e.g. an unknown scope, product, or route).\n","items":{"type":"string"}},"doc_url":{"type":"string","format":"uri","description":"Documentation link for this error."}}},"Pagination":{"type":"object","properties":{"page":{"type":"integer"},"perPage":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}}},"PaginatedResponse":{"type":"object","properties":{"data":{"type":"array","items":{}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"JobStatus":{"type":"string","enum":["pending","processing","completed","failed","cancelled"]},"Attestation":{"type":"object","description":"WAVE Attestation envelope — a signed, verifiable record of exactly what a capability DID. This is NOT a financial receipt: customer payment receipts and invoices live in the billing domain (`Invoice`); an Attestation proves platform behaviour, not money owed. One shape, three instances: the Render Attestation, the Settlement Attestation (proof an x402 spend executed), and the Context Attestation. The bytes that are signed and verified are the *canonical* JSON of `attestation` (sorted keys, no whitespace), so any verifier reproduces exactly what the signer signed.\n","required":["schema","attestation","alg"],"properties":{"schema":{"type":"string","description":"Attestation payload schema id + version (matches the payload's own `schema_version`).","examples":["wave.context-attestation/v0"]},"attestation":{"type":"object","description":"The attested facts — one of the instance payload schemas (e.g. `#/components/schemas/ContextAttestation`).\n","additionalProperties":true},"sig":{"type":["string","null"],"description":"Detached signature over the canonical JSON of `attestation`, encoded per `alg`, or null when unsigned (`alg: none`).\n"},"alg":{"type":"string","description":"Signature algorithm (e.g. `ed25519`). `none` means the attestation is honestly unsigned; a present signature is trusted ONLY when a verifier confirms it over the canonical body — a signature that cannot be checked is never trusted.\n","examples":["ed25519","none"]}},"allOf":[{"if":{"properties":{"alg":{"const":"none"}}},"then":{"properties":{"sig":{"type":"null"}}},"else":{"required":["sig"],"properties":{"sig":{"type":"string"}}}}]},"ContextAttestation":{"type":"object","description":"Proof of exactly what context a single model invocation was given — the Context Integrity instance of the WAVE Attestation standard. Travels as the `attestation` payload of an `Attestation` envelope (`schema: wave.context-attestation/v0`). The platform measures the window each model REALLY serves (not the advertised one) and either fits the prompt, routes up to a bigger window, or refuses — it never silently front-truncates.\n","required":["model","served_window","effective_window","input_tokens","decision_kind","truncated","ts","schema_version"],"properties":{"model":{"type":"string","description":"Target model identifier."},"served_window":{"type":"integer","description":"The context window the model ACTUALLY served, as measured by the Fleet Probe — not the advertised window. Trusting the measured value over the advertised one is the guarantee this attestation makes.\n"},"effective_window":{"type":"integer","description":"Window available for input after carving out reserved output headroom, chat-template overhead, and tool/MCP schema tokens.\n"},"input_tokens":{"type":"integer","description":"Conservative estimate of the prompt's input tokens (chars/token margin biased to never under-count).\n"},"decision_kind":{"type":"string","enum":["fit","route_up","refuse"],"description":"The Truncation Guard's decision: `fit` (prompt fits), `route_up` (escalate to a bigger window), or `refuse` (loud — chunk or raise the window). Never silently truncates.\n"},"truncated":{"type":"boolean","description":"True only if a downstream stage forced a truncation the guard would have refused. Normally false.\n"},"ts":{"type":"string","format":"date-time","description":"ISO-8601 timestamp of the decision."},"schema_version":{"type":"string","description":"Payload schema version (equals the envelope `schema`).","examples":["wave.context-attestation/v0"]}}},"RenderAttestation":{"type":"object","description":"WAVE Render Attestation v1 — the subject payload carried inside an `Attestation` envelope for `kind: render`. Attests that a specific renderer produced a specific output from a specific scene. The content-addressed envelope ID is derived from the canonical serialization of these fields (see `attestation/ATTESTATION-STANDARD-v1.md`).\n","required":["v","kind","renderer","scene_sha256","output_sha256","format","bytes"],"properties":{"v":{"type":"string","maxLength":64,"description":"Version string. Equals the outer envelope `v` field.","examples":["wave.render-attestation/v1"]},"kind":{"type":"string","const":"render","description":"Always `\"render\"` for this payload type."},"renderer":{"type":"string","description":"Renderer identifier in `name@version/runtime` format, e.g. `wave-video@0.3.0/kernel`. Used to identify which build produced the output.\n"},"scene_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"SHA-256 hex of the canonical scene input (the Brief or Scene IR)."},"output_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"SHA-256 hex of the rendered output bytes."},"format":{"type":"string","enum":["mp4","alpha"],"description":"Output container/codec family."},"bytes":{"type":"integer","minimum":0,"description":"Byte length of the rendered output."}}},"WaveAttestation":{"description":"Top-level wire envelope for any WAVE Attestation v1. Carried as the `wave.attestation` OTLP span attribute (JSON string) and stored in the `observability.attestation` table. The `id` is content-addressed: `sha256hex(canonicalJson(attestationSubject(envelope)))`. Invariant: `alg === \"none\"` ⟺ `sig === null`. See `attestation/ATTESTATION-STANDARD-v1.md` for the normative specification.\n","type":"object","required":["id","kind","v","subject","alg"],"properties":{"id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"Content-addressed ID: `sha256hex(canonicalJson(attestationSubject(envelope)))`. Stable across cache replays; upserts are idempotent by this key.\n"},"kind":{"type":"string","enum":["render","context","settlement"],"description":"Attestation kind."},"v":{"type":"string","maxLength":64,"description":"Version string, e.g. `wave.render-attestation/v1`."},"subject":{"type":"object","description":"Kind-specific payload. For `kind: render`, see `RenderAttestation`.","additionalProperties":true},"alg":{"type":"string","maxLength":32,"description":"Signature algorithm. `\"ed25519\"` or `\"none\"`.","examples":["ed25519","none"]},"sig":{"type":["string","null"],"maxLength":2048,"description":"Base64url-encoded Ed25519 signature over `canonicalJson(subject)` bytes. `null` when `alg` is `\"none\"`.\n"},"created":{"oneOf":[{"type":"integer","description":"Unix seconds."},{"type":"string","maxLength":40,"description":"ISO 8601 timestamp or unix seconds as string."}],"description":"When the attestation was minted."}},"allOf":[{"if":{"properties":{"alg":{"const":"none"}}},"then":{"properties":{"sig":{"type":"null"}}},"else":{"required":["sig"],"properties":{"sig":{"type":"string"}}}}]},"Clip":{"type":"object","properties":{"id":{"type":"string"},"videoId":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"},"duration":{"type":"number"},"title":{"type":"string"},"description":{"type":"string"},"score":{"type":"number"},"category":{"type":"string"},"thumbnailUrl":{"type":"string","format":"uri"},"previewUrl":{"type":"string","format":"uri"},"status":{"$ref":"#/components/schemas/JobStatus"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ClipCreate":{"type":"object","description":"The real live-route request contract. `videoId` is NOT accepted — the live route requires `source` (a recording id) instead.","required":["source","in"],"properties":{"source":{"type":"string","minLength":1,"description":"A recording id the gateway resolves to an org-scoped source URL."},"sourceType":{"type":"string","enum":["recording_id"],"default":"recording_id","description":"Only `recording_id` is accepted — a raw storage key (`r2_key`) is rejected outright (cross-tenant read protection)."},"visibility":{"type":"string","enum":["public","private"],"default":"private"},"in":{"type":"string","pattern":"^\\d+(\\.\\d+)?(s|m)$","description":"Clip start offset, a time string like \"5s\" or \"2m\" (0-10m)."},"out":{"type":"string","pattern":"^\\d+(\\.\\d+)?(s|m)$","description":"Clip end offset, a time string. Provide `out` or `duration`, not both."},"duration":{"type":"string","pattern":"^\\d+(\\.\\d+)?(s|m)$","description":"Output clip length, a time string (1s-60s). Provide `out` or `duration`, not both."},"width":{"type":"integer","minimum":10,"maximum":2000},"height":{"type":"integer","minimum":10,"maximum":2000},"fit":{"type":"string","enum":["contain","cover","scale-down"],"default":"contain"},"formats":{"type":"array","default":["mp4"],"items":{"type":"string","enum":["mp4","spritesheet","m4a","frame"]},"description":"`frame` produces a single JPEG still at `in` and needs neither `out` nor `duration`."},"quality":{"type":"string","enum":["720p","1080p","4k"],"default":"720p"},"spritesheetFrames":{"type":"integer","minimum":1,"maximum":120,"default":30}}},"ClipUpdate":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"}}},"ClipDetectRequest":{"type":"object","required":["videoId"],"properties":{"videoId":{"type":"string"},"minDuration":{"type":"number","default":5},"maxDuration":{"type":"number","default":60},"categories":{"type":"array","items":{"type":"string"}},"sensitivity":{"type":"number","minimum":0,"maximum":1,"default":0.5},"maxClips":{"type":"integer"}}},"DetectionJob":{"type":"object","properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/JobStatus"},"progress":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"}}},"ClipCreateResponse":{"type":"object","description":"The real POST /clips 201 response.","properties":{"ok":{"type":"boolean","const":true},"clipId":{"type":"string"},"org":{"type":"string","description":"The gateway-resolved owning organization."},"visibility":{"type":"string","enum":["public","private"]},"source":{"type":"string"},"in":{"type":"string"},"duration":{"type":"string","description":"Output clip duration, a time string like \"12s\"."},"quality":{"type":"string","enum":["720p","1080p","4k"]},"assets":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["clip","spritesheet","audio","frame"]},"key":{"type":"string","description":"Org-prefixed storage key: ‹org›/{clips|public}/‹clipId›/…"},"contentType":{"type":"string"},"url":{"type":["string","null"],"description":"Delivery URL — plain for public, HMAC-signed for private. null when delivery isn't configured."}}}}}},"ClipError":{"type":"object","description":"The clip-creation route's own error envelope for POST /clips — distinct from the gateway-normalized `Error` schema used elsewhere in this document.","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"string"},"detail":{"description":"Optional structured detail. Absent or null on most errors."}}},"Stream":{"type":"object","description":"A live stream. Never carries the Cloudflare stream key or any other ingest secret — only the public ingest/playback URLs.","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"protocol":{"type":"string","enum":["webrtc","srt","rtmp","auto"]},"status":{"type":"string","enum":["idle","live","ended"]},"privacy":{"type":"string","enum":["public","private"]},"viewer_count":{"type":"integer"},"peak_viewer_count":{"type":"integer"},"ingest_url":{"type":["string","null"]},"playback_url":{"type":["string","null"]},"cloudflare_live_input_uid":{"type":["string","null"]},"metadata":{"type":"object","additionalProperties":true},"started_at":{"type":["string","null"],"format":"date-time"},"ended_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"CreateStreamRequest":{"type":"object","required":["title"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":5000},"protocol":{"type":"string","enum":["webrtc","srt","rtmp","auto"],"default":"auto"},"recording":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"privacy":{"type":"string","enum":["public","private"],"default":"public"},"metadata":{"type":"object","additionalProperties":true}}},"Highlight":{"type":"object","properties":{"id":{"type":"string"},"stream_id":{"type":"string"},"organization_id":{"type":"string"},"title":{"type":["string","null"]},"settings":{"type":"object","additionalProperties":true,"description":"{label, timestamp, confidence, source}"},"created_at":{"type":"string","format":"date-time"}}},"ModerateRequest":{"type":"object","required":["content","contentType"],"properties":{"content":{"type":"string","minLength":1,"maxLength":50000},"contentType":{"type":"string","enum":["text","title","description","comment","chat","username","bio"]},"context":{"type":"object","properties":{"streamId":{"type":"string"},"userId":{"type":"string"},"previousContent":{"type":"array","items":{"type":"string"}}},"description":"streamId attributes the moderated content to a stream (e.g. a chat message)."},"options":{"type":"object","properties":{"returnDetails":{"type":"boolean","default":true},"categories":{"type":"array","items":{"type":"string"},"description":"Subset of harassment, hate_speech, violence, sexual_content, spam, misinformation, self_harm, illegal_activity, personal_information, copyright."},"customRules":{"type":"array","items":{"type":"object","required":["name","pattern","action"],"properties":{"name":{"type":"string"},"pattern":{"type":"string","description":"A regular expression evaluated against content."},"action":{"type":"string","enum":["flag","block"]}}}}}}}},"ModerateResponse":{"type":"object","properties":{"allowed":{"type":"boolean"},"action":{"type":"string","enum":["allow","flag","block","review"]},"violations":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"severity":{"type":"string","enum":["low","medium","high","critical"]},"confidence":{"type":"number"},"description":{"type":"string"},"matchedText":{"type":"string"},"rule":{"type":"string"}}}},"confidence":{"type":"number"},"reasoning":{"type":"string"},"suggestedAction":{"type":"string"},"metadata":{"type":"object","properties":{"contentId":{"type":"string"},"processingTimeMs":{"type":"integer"},"model":{"type":"string"},"categoriesChecked":{"type":"array","items":{"type":"string"}}}}}},"Production":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"user_id":{"type":["string","null"]},"title":{"type":"string"},"description":{"type":["string","null"]},"status":{"type":"string","enum":["setup","rehearsal","live","paused","ended"]},"layout":{"type":"string","enum":["single","split","pip","grid","custom"]},"stream_ids":{"type":"array","items":{"type":"string"}},"record":{"type":"boolean"},"program_camera_index":{"type":["integer","null"]},"preview_camera_index":{"type":["integer","null"]},"last_transition":{"type":["string","null"]},"overlays":{"type":"object","additionalProperties":true},"settings":{"type":"object","additionalProperties":true},"started_at":{"type":["string","null"],"format":"date-time"},"ended_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"CreateProductionRequest":{"type":"object","required":["title"],"properties":{"title":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":2000},"layout":{"type":"string","enum":["single","split","pip","grid","custom"],"default":"single"},"stream_ids":{"type":"array","items":{"type":"string"}},"record":{"type":"boolean","default":false}}},"SwitchCameraRequest":{"type":"object","required":["cameraIndex","bus"],"properties":{"cameraIndex":{"type":"integer","minimum":0,"maximum":15},"bus":{"type":"string","enum":["program","preview"]},"transition":{"type":"string","enum":["cut","dissolve","wipe","fade"],"default":"cut"}}},"Camera":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"name":{"type":"string"},"manufacturer":{"type":"string","enum":["blackmagic","sony","canon","ptzoptics","other"]},"control_protocol":{"type":"string","enum":["bmd_rest","visca_ip","visca_serial","canon_xc","onvif"]},"address":{"type":["string","null"],"description":"IPv4 address the camera was registered with."},"status":{"type":"string","enum":["offline","online","discovering","error"]},"presets":{"type":"array","items":{"type":"object","additionalProperties":true}},"metadata":{"type":"object","additionalProperties":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"RegisterCameraRequest":{"type":"object","required":["name","manufacturer","ipAddress","controlProtocol"],"properties":{"name":{"type":"string","minLength":1,"maxLength":100},"manufacturer":{"type":"string","enum":["blackmagic","sony","canon","ptzoptics","other"]},"model":{"type":"string"},"ipAddress":{"type":"string","format":"ipv4"},"controlProtocol":{"type":"string","enum":["bmd_rest","visca_ip","visca_serial","canon_xc","onvif"]}}},"ControlCameraRequest":{"description":"Discriminated union on `type`. Supply only the fields the chosen variant needs.","oneOf":[{"type":"object","required":["type","value"],"properties":{"type":{"const":"set_iris"},"value":{"type":"number"}}},{"type":"object","required":["type","value"],"properties":{"type":{"const":"set_focus"},"value":{"type":"number"}}},{"type":"object","required":["type","value"],"properties":{"type":{"const":"set_zoom"},"value":{"type":"number"}}},{"type":"object","required":["type","temperature","tint"],"properties":{"type":{"const":"set_white_balance"},"temperature":{"type":"number"},"tint":{"type":"number"}}},{"type":"object","required":["type","value"],"properties":{"type":{"const":"set_gain"},"value":{"type":"number"}}},{"type":"object","required":["type","angle"],"properties":{"type":{"const":"set_shutter"},"angle":{"type":"number"}}},{"type":"object","required":["type"],"properties":{"type":{"const":"start_recording"}}},{"type":"object","required":["type"],"properties":{"type":{"const":"stop_recording"}}},{"type":"object","required":["type"],"properties":{"type":{"const":"start_prerecord"}}},{"type":"object","required":["type"],"properties":{"type":{"const":"autofocus_trigger"}}},{"type":"object","required":["type","channel","level"],"properties":{"type":{"const":"set_audio_level"},"channel":{"type":"number"},"level":{"type":"number"}}},{"type":"object","required":["type","presetId"],"properties":{"type":{"const":"recall_preset"},"presetId":{"type":"string","format":"uuid"}}},{"type":"object","required":["type","name","slot"],"properties":{"type":{"const":"save_preset"},"name":{"type":"string","minLength":1},"slot":{"type":"integer","minimum":1,"maximum":20}}}],"discriminator":{"propertyName":"type"}},"DateRange":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}}},"BillingAccount":{"type":"object","description":"The caller-org's billing status. `billingAccount: null` and `plan: \"free\"` mean the org has no Stripe customer yet.","properties":{"organizationId":{"type":"string"},"billingAccount":{"type":["object","null"],"properties":{"customerId":{"type":"string"},"email":{"type":["string","null"]},"paymentMethod":{"type":["object","null"],"properties":{"brand":{"type":"string"},"last4":{"type":"string"},"expMonth":{"type":"integer"},"expYear":{"type":"integer"}}}}},"plan":{"type":"string","description":"\"free\" when the org has no billing account."},"subscription":{"type":["object","null"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"currentPeriodEnd":{"type":"integer","description":"Unix seconds."},"plan":{"type":["object","null"],"properties":{"priceId":{"type":"string"},"unitAmount":{"type":["integer","null"]},"currency":{"type":"string"},"interval":{"type":["string","null"]}}}}}}},"BillingUsageResponse":{"type":"object","properties":{"organizationId":{"type":"string"},"period":{"$ref":"#/components/schemas/DateRange"},"usage":{"type":"array","items":{"type":"object","properties":{"dimension":{"type":"string"},"unit":{"type":"string"},"quantity":{"type":"number"},"billedQuantity":{"type":"number"}}}},"total":{"type":"number"}}},"UsageResponse":{"type":"object","description":"Raw per-dimension usage from the underlying meter ledger.","properties":{"org":{"type":"string"},"range":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"days":{"type":"integer"}}},"totals":{"type":"object","additionalProperties":{"type":"number"},"description":"Meter dimension → summed quantity (e.g. wave_braid_minutes, transcription_seconds, duration_ms:srt). The dimension set is append-only and not enumerated here."}}},"Voice":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"previewUrl":{"type":"string","format":"uri"},"category":{"type":"string"},"labels":{"type":"object","additionalProperties":{"type":"string"}}}},"VoiceGeneration":{"type":"object","properties":{"id":{"type":"string"},"voiceId":{"type":"string"},"text":{"type":"string"},"status":{"$ref":"#/components/schemas/JobStatus"},"audioUrl":{"type":"string","format":"uri"},"alignment":{"$ref":"#/components/schemas/VoiceAlignment"},"duration":{"type":"number"},"characterCount":{"type":"integer"},"model":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"VoiceAlignment":{"type":"object","description":"Character-level timing for the generated audio, present only when the request set `timestamps: true`. A direct passthrough of the engine's alignment, so clients can render karaoke highlighting and derive caption cues. The three arrays are parallel (same length, always present together). Property names are snake_case because this is a verbatim passthrough of the speech engine's alignment, which downstream caption/karaoke consumers parse by these exact keys.\n","required":["characters","character_start_times_seconds","character_end_times_seconds"],"properties":{"characters":{"type":"array","items":{"type":"string"}},"character_start_times_seconds":{"type":"array","items":{"type":"number"}},"character_end_times_seconds":{"type":"array","items":{"type":"number"}}}},"VoiceSynthesisInline":{"type":"object","description":"Synchronous voice synthesis result returned inline in a single round-trip. Used when `timestamps: true`, so the caller receives audio and character-level `alignment` together with no polling — the shape the blog karaoke/caption pipeline consumes. When timestamps are not requested the gateway may instead return raw audio bytes (audio/mpeg) or an async VoiceGeneration job.\n","required":["audio_base64"],"properties":{"audio_base64":{"type":"string","format":"byte","description":"Base64-encoded audio payload (container/codec per `outputFormat`)."},"alignment":{"$ref":"#/components/schemas/VoiceAlignment"},"format":{"type":"string","description":"Audio container/codec of the decoded bytes (e.g. mp3_44100_128)."}}},"VoiceGenerateRequest":{"type":"object","required":["voiceId","text"],"properties":{"voiceId":{"type":"string"},"text":{"type":"string"},"stability":{"type":"number","minimum":0,"maximum":1,"default":0.5},"similarityBoost":{"type":"number","minimum":0,"maximum":1,"default":0.75},"style":{"type":"number","minimum":0,"maximum":1,"default":0},"model":{"type":"string","default":"eleven_multilingual_v2"},"outputFormat":{"type":"string","default":"mp3_44100_128"},"timestamps":{"type":"boolean","default":false,"description":"When true, the resulting VoiceGeneration includes character-level `alignment` (start/end times) so clients can render karaoke highlighting and derive caption cues. Backed by the engine's with-timestamps mode.\n"}}},"VoiceCloneRequest":{"type":"object","required":["name","audioFiles"],"properties":{"name":{"type":"string"},"audioFiles":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":25},"description":{"type":"string"},"labels":{"type":"object","additionalProperties":{"type":"string"}}}},"CaptionJob":{"type":"object","properties":{"id":{"type":"string"},"videoId":{"type":"string"},"sourceLanguage":{"type":"string"},"targetLanguages":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/JobStatus"},"progress":{"type":"integer"},"outputs":{"type":"object","additionalProperties":{"type":"string"}},"errorMessage":{"type":"string"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"CaptionJobCreate":{"type":"object","required":["videoId"],"properties":{"videoId":{"type":"string"},"sourceLanguage":{"type":"string","default":"en"},"targetLanguages":{"type":"array","items":{"type":"string"}},"style":{"type":"string","default":"default"},"speakerLabels":{"type":"boolean","default":false}}},"Chapter":{"type":"object","properties":{"id":{"type":"string"},"videoId":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"},"thumbnailUrl":{"type":"string","format":"uri"}}},"ChapterCreate":{"type":"object","required":["title","startTime","endTime"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"}}},"ChapterDetectRequest":{"type":"object","properties":{"minDuration":{"type":"number","default":30},"maxChapters":{"type":"integer"},"includeDescriptions":{"type":"boolean","default":true},"includeThumbnails":{"type":"boolean","default":true}}},"EditorProject":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"duration":{"type":"number"},"resolution":{"type":"string"},"frameRate":{"type":"number"},"thumbnailUrl":{"type":"string","format":"uri"},"exportUrl":{"type":"string","format":"uri"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"EditorProjectCreate":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"resolution":{"type":"string","default":"1920x1080"},"frameRate":{"type":"number","default":30},"aspectRatio":{"type":"string","default":"16:9"}}},"EditorProjectUpdate":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}}},"ExportRequest":{"type":"object","properties":{"format":{"type":"string","enum":["mp4","webm","mov"],"default":"mp4"},"resolution":{"type":"string"},"quality":{"type":"string","enum":["low","medium","high","ultra"],"default":"high"}}},"ExportJob":{"type":"object","properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/JobStatus"},"progress":{"type":"integer"},"outputUrl":{"type":"string","format":"uri"}}},"PhoneLine":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"}},"monthlyCost":{"type":"number"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PhoneLineProvision":{"type":"object","properties":{"areaCode":{"type":"string"},"country":{"type":"string","default":"US"},"capabilities":{"type":"array","items":{"type":"string","enum":["voice","sms","mms","fax"]}},"name":{"type":"string"}}},"Call":{"type":"object","properties":{"id":{"type":"string"},"lineId":{"type":"string"},"direction":{"type":"string","enum":["inbound","outbound"]},"fromNumber":{"type":"string"},"toNumber":{"type":"string"},"status":{"type":"string"},"duration":{"type":"integer"},"recordingUrl":{"type":"string","format":"uri"},"transcript":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"CallCreate":{"type":"object","required":["fromLineId","toNumber"],"properties":{"fromLineId":{"type":"string"},"toNumber":{"type":"string"},"record":{"type":"boolean","default":false},"transcribe":{"type":"boolean","default":false},"webhookUrl":{"type":"string","format":"uri"}}},"CollabRoom":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["video","audio","whiteboard","screen"]},"status":{"type":"string","enum":["waiting","active","ended"]},"maxParticipants":{"type":"integer"},"currentParticipants":{"type":"integer"},"scheduledStart":{"type":"string","format":"date-time"},"joinUrl":{"type":"string","format":"uri"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"CollabRoomCreate":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["video","audio","whiteboard","screen"]},"maxParticipants":{"type":"integer","default":10},"scheduledStart":{"type":"string","format":"date-time"},"settings":{"type":"object"}}},"PodcastShow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"coverUrl":{"type":"string","format":"uri"},"rssUrl":{"type":"string","format":"uri"},"category":{"type":"string"},"language":{"type":"string"},"explicit":{"type":"boolean"},"episodeCount":{"type":"integer"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PodcastShowCreate":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"language":{"type":"string","default":"en"},"explicit":{"type":"boolean","default":false},"coverUrl":{"type":"string","format":"uri"}}},"PodcastEpisode":{"type":"object","properties":{"id":{"type":"string"},"showId":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"audioUrl":{"type":"string","format":"uri"},"duration":{"type":"number"},"episodeNumber":{"type":"integer"},"seasonNumber":{"type":"integer"},"publishedAt":{"type":"string","format":"date-time"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PodcastEpisodeCreate":{"type":"object","required":["title","audioUrl"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"audioUrl":{"type":"string","format":"uri"},"episodeNumber":{"type":"integer"},"seasonNumber":{"type":"integer"},"publishedAt":{"type":"string","format":"date-time"}}},"Enhancement":{"type":"object","properties":{"id":{"type":"string"},"videoId":{"type":"string"},"type":{"type":"string","enum":["upscale","denoise","stabilize","color_correct","super_resolution"]},"status":{"$ref":"#/components/schemas/JobStatus"},"progress":{"type":"integer"},"inputUrl":{"type":"string","format":"uri"},"outputUrl":{"type":"string","format":"uri"},"settings":{"type":"object"},"creditsUsed":{"type":"integer"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"EnhancementCreate":{"type":"object","required":["videoId","type"],"properties":{"videoId":{"type":"string"},"type":{"type":"string","enum":["upscale","denoise","stabilize","color_correct","super_resolution"]},"settings":{"type":"object"},"priority":{"type":"string","enum":["low","normal","high"],"default":"normal"}}},"EnhancementPreviewRequest":{"type":"object","required":["videoId","type"],"properties":{"videoId":{"type":"string"},"type":{"type":"string"},"timestamp":{"type":"number","default":0},"settings":{"type":"object"}}},"Transcription":{"type":"object","properties":{"id":{"type":"string"},"sourceId":{"type":"string"},"sourceType":{"type":"string","enum":["video","audio"]},"status":{"$ref":"#/components/schemas/JobStatus"},"language":{"type":"string"},"text":{"type":"string"},"duration":{"type":"number"},"wordCount":{"type":"integer"},"confidence":{"type":"number"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"TranscriptionCreate":{"type":"object","required":["sourceId","sourceType"],"properties":{"sourceId":{"type":"string"},"sourceType":{"type":"string","enum":["video","audio"]},"language":{"type":"string"},"speakerLabels":{"type":"boolean","default":false},"wordTimestamps":{"type":"boolean","default":false},"punctuation":{"type":"boolean","default":true},"model":{"type":"string","default":"default"}}},"SentimentAnalysis":{"type":"object","properties":{"id":{"type":"string"},"sourceId":{"type":"string"},"sourceType":{"type":"string","enum":["video","audio","text","chat"]},"status":{"$ref":"#/components/schemas/JobStatus"},"overallSentiment":{"type":"string","enum":["positive","negative","neutral","mixed"]},"overallScore":{"type":"number"},"confidence":{"type":"number"},"summary":{"type":"string"},"organizationId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"SentimentAnalysisCreate":{"type":"object","required":["sourceId","sourceType"],"properties":{"sourceId":{"type":"string"},"sourceType":{"type":"string","enum":["video","audio","text","chat"]},"text":{"type":"string"},"includeEmotions":{"type":"boolean","default":false},"includeTopics":{"type":"boolean","default":false},"includeSummary":{"type":"boolean","default":false},"segmentAnalysis":{"type":"boolean","default":false}}},"EmotionBreakdown":{"type":"object","properties":{"joy":{"type":"number"},"sadness":{"type":"number"},"anger":{"type":"number"},"fear":{"type":"number"},"surprise":{"type":"number"},"disgust":{"type":"number"},"trust":{"type":"number"},"anticipation":{"type":"number"}}},"TopicSentiment":{"type":"object","properties":{"topic":{"type":"string"},"sentiment":{"type":"string","enum":["positive","negative","neutral"]},"score":{"type":"number"},"mentions":{"type":"integer"},"keywords":{"type":"array","items":{"type":"string"}}}},"SearchResult":{"type":"object","properties":{"id":{"type":"string"},"score":{"type":"number"},"fusedScore":{"type":"number"},"matchType":{"type":"string","enum":["semantic","keyword","hybrid"]},"denseScore":{"type":"number"},"sparseScore":{"type":"number"},"metadata":{"type":"object","properties":{"namespace":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"}}}}},"SearchWebHit":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string","format":"uri"},"highlights":{"type":"string"}}},"SearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"metadata":{"type":"object","properties":{"query":{"type":"string"},"namespace":{"type":"string"},"totalResults":{"type":"integer"},"processingTimeMs":{"type":"integer"},"searchType":{"type":"string","enum":["hybrid"]},"cached":{"type":"boolean"},"web":{"type":"array","items":{"$ref":"#/components/schemas/SearchWebHit"}}}}}},"SearchRequest":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":1000},"namespace":{"type":"string","enum":["streams","users","clips","transcripts","all"],"default":"streams"},"topK":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"SearchIndexDoc":{"type":"object","required":["id","namespace","text"],"properties":{"id":{"type":"string"},"namespace":{"type":"string","enum":["streams","users","clips","transcripts"]},"title":{"type":"string"},"text":{"type":"string"},"metadata":{"type":"object"}}},"SearchIndexRequest":{"type":"object","required":["id","namespace","text"],"properties":{"id":{"type":"string"},"namespace":{"type":"string","enum":["streams","users","clips","transcripts"]},"title":{"type":"string"},"text":{"type":"string"},"metadata":{"type":"object"},"docs":{"type":"array","items":{"$ref":"#/components/schemas/SearchIndexDoc"}}}},"SearchIndexResponse":{"type":"object","properties":{"indexed":{"type":"integer"},"ids":{"type":"array","items":{"type":"string"}}}},"SearchDeleteResponse":{"type":"object","properties":{"deleted":{"type":"boolean"},"id":{"type":"string"}}},"SearchInsightRow":{"type":"object","properties":{"query":{"type":"string"},"term":{"type":"string"},"count":{"type":"integer"},"previous":{"type":"integer"}}},"SearchAnalyticsResponse":{"type":"object","properties":{"org":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"insights":{"type":"object","properties":{"top":{"type":"array","items":{"$ref":"#/components/schemas/SearchInsightRow"}},"zeroResult":{"type":"array","items":{"$ref":"#/components/schemas/SearchInsightRow"}},"trending":{"type":"array","items":{"$ref":"#/components/schemas/SearchInsightRow"}}}}}},"SearchHighlight":{"type":"object","properties":{"field":{"type":"string"},"snippet":{"type":"string"},"positions":{"type":"array","items":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}}}}},"SearchSuggestion":{"type":"object","properties":{"text":{"type":"string"},"type":{"type":"string","enum":["query","title","tag"]},"score":{"type":"number"}}},"SearchFacet":{"type":"object","properties":{"field":{"type":"string"},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer"}}}}}},"BraidPublishRequest":{"type":"object","required":["ns","sources"],"description":"`org` is derived from the caller's authenticated principal, not sent in the body.","properties":{"ns":{"type":"string","description":"Namespace for the published track. Republishing the same ns replaces the prior machine."},"sources":{"type":"array","description":"Named audio sources to braid into one interleaved multichannel track. Each source needs a `label`/`track` and either a `url` or a `path`.","items":{"type":"object","required":["label","track"],"properties":{"label":{"type":"string"},"track":{"type":"string"},"url":{"type":"string","format":"uri"},"path":{"type":"string"}}}},"windowMs":{"type":"integer","description":"Braid window size in milliseconds. Defaults to the machine-config default when omitted."},"sampleRate":{"type":"integer","description":"Sample rate for the braided track. Defaults to the machine-config default when omitted."}}},"BraidPublishResult":{"type":"object","required":["ns","track","channels","windowMs","objectBytes","machineId","status"],"properties":{"ns":{"type":"string"},"track":{"type":"string"},"channels":{"type":"integer"},"windowMs":{"type":"integer"},"objectBytes":{"type":"integer"},"machineId":{"type":"string"},"status":{"type":"string","enum":["starting"]}}},"BraidStopResult":{"type":"object","required":["ns","machineId","status"],"properties":{"ns":{"type":"string"},"machineId":{"type":"string"},"status":{"type":"string","enum":["stopped"]}}},"AvRemuxRequest":{"type":"object","required":["videoUrl","audioUrl","container"],"description":"`org` is derived from the caller's authenticated principal, not sent in the body.","properties":{"videoUrl":{"type":"string","format":"uri","description":"Source for local IP video (RTP H.264)."},"audioUrl":{"type":"string","format":"uri","description":"Source for the separate Dante/AES67 audio track."},"container":{"type":"string","description":"Output container for the synchronized stream.","enum":["mpegts","fmp4"]},"outputUrl":{"type":"string","format":"uri","description":"Optional presigned destination to PUT the resulting container to. Omitted → returned inline."}}},"AvDemuxRequest":{"type":"object","required":["sourceUrl"],"description":"`org` is derived from the caller's authenticated principal, not sent in the body.","properties":{"sourceUrl":{"type":"string","format":"uri","description":"Synchronized MPEG-TS or fMP4 container to split back into video + Dante audio."},"videoOutputUrl":{"type":"string","format":"uri","description":"Optional presigned destination for the demuxed RTP H.264 video output."},"audioOutputUrl":{"type":"string","format":"uri","description":"Optional presigned destination for the demuxed Dante/AES67 audio output."}}},"AvTransformResult":{"type":"object","required":["ok","container","durationSeconds"],"properties":{"ok":{"type":"boolean"},"container":{"type":"string","enum":["mpegts","fmp4"]},"durationSeconds":{"type":"number","description":"Duration of the transformed stream, in seconds — the basis for wave_av_transform_seconds billing."},"syncOffsetMs":{"type":"number","description":"Measured audio/video sync offset after alignment, in milliseconds (sub-millisecond target)."}}},"RenderTemplate":{"type":"string","description":"The render template. Per-template prop shapes are published in the live contract (GET /render/openapi.json) so this enum can never drift from what the renderer accepts.","enum":["slate","lowerThird","announce","stat","hero","quote","backdrop","field","badge","endcard","sting","ident","kinetic","ticker","countdown","receipt","code","session","chart","audiogram","manifesto","changelog"]},"RenderBrief":{"type":"object","description":"A render Brief — a template plus its props. Brand-parametric: an optional BYO `brandKit` (logo SVG, fonts as data URLs, colors) renders any template on a tenant's brand.","required":["template","props"],"properties":{"template":{"$ref":"#/components/schemas/RenderTemplate"},"props":{"type":"object","description":"Template-specific props (see the live contract for per-template shapes). All string props are HTML-escaped; width/height ≤ 4096, durationMs ≤ 60000, fps ≤ 60.","additionalProperties":true}}},"RenderResult":{"description":"The delivery envelope (Accept application/json). `sha256` is the determinism receipt.","oneOf":[{"$ref":"#/components/schemas/RenderResultInline"},{"$ref":"#/components/schemas/RenderResultUrl"}]},"RenderResultInline":{"type":"object","required":["delivery","format","sha256","bytes","contentType","dataUrl"],"properties":{"delivery":{"type":"string","enum":["inline"]},"format":{"type":"string","enum":["mp4"]},"sha256":{"type":"string","description":"sha256 of the output bytes (determinism receipt)."},"bytes":{"type":"integer"},"contentType":{"type":"string","enum":["video/mp4"]},"dataUrl":{"type":"string","description":"base64 data URL of the output (small MP4s only)."}}},"RenderResultUrl":{"type":"object","required":["delivery","format","sha256","bytes","url","expiresAtSec","contentType"],"properties":{"delivery":{"type":"string","enum":["url"]},"format":{"type":"string","enum":["mp4","alpha"]},"sha256":{"type":"string","description":"sha256 of the output bytes (determinism receipt)."},"bytes":{"type":"integer"},"url":{"type":"string","description":"Signed, single-object, expiring URL on downloads.wave.online."},"expiresAtSec":{"type":"integer","description":"Absolute Unix expiry of the signed URL."},"contentType":{"type":"string","enum":["video/mp4","video/quicktime"]}}},"RenderJobStatus":{"type":"string","description":"Lifecycle of an async render. Deliberately NOT the platform-wide `JobStatus` enum — the render pipeline reports its own delivery-aware states, and collapsing the two would misreport `delivering` (output produced, upload in flight) as either finished or failed.","enum":["queued","rendering","delivering","done","error"]},"RenderJobView":{"type":"object","description":"A point-in-time view of an async render job. Only `jobId` and `status` are always present; the delivery and receipt fields appear once `status` is `done`, and `error` appears only when `status` is `error`.","required":["jobId","status"],"properties":{"jobId":{"type":"string"},"status":{"$ref":"#/components/schemas/RenderJobStatus"},"url":{"type":"string","description":"Terminal (done): the signed delivery URL."},"expiresAtSec":{"type":"integer","description":"Terminal (done): absolute Unix expiry of `url`."},"sha256":{"type":"string","description":"Terminal (done): determinism receipt — sha256 of the output bytes."},"bytes":{"type":"integer","description":"Terminal (done): output size in bytes."},"meters":{"type":"array","description":"Terminal (done): the billable usage lines this render billed.","items":{"type":"object","properties":{"event":{"type":"string"},"quantity":{"type":"number"}}}},"error":{"type":"object","description":"Terminal (error): a typed, client-safe error.","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"MoqJoinToken":{"type":"object","description":"A minted MoQ join-token and everything needed to open the media session. `joinToken` is a short-lived HMAC-signed bearer bound to exactly this `ns`/`track`, `role`, and the caller's organization; the relay derives identity and scope from the signed claims and never from a client-supplied header. Connect to `relayWsUrl` carrying the token as the `join` query parameter (browser clients) or the `x-wave-moq-join` header (server-to-server). Never log, cache, or persist `joinToken`; mint a fresh one per session.","required":["ok","relayWsUrl","joinToken","expiresIn","ns","track","role","scope"],"properties":{"ok":{"type":"boolean","description":"Always `true` on a successful mint."},"relayWsUrl":{"type":"string","format":"uri","description":"The DIRECT relay URL for this session, e.g. `wss://moq.wave.online/v1/publish/{ns}/{track}`. Media flows here, not through the API gateway."},"joinToken":{"type":"string","description":"The signed join-token (`base64url(header).base64url(payload).base64url(signature)`, HMAC-SHA256, `typ: MOQJ` so it can never be confused with an API key). Treat as a secret."},"expiresIn":{"type":"integer","description":"Token lifetime in seconds from mint. Currently 120; the relay additionally rejects any token whose signed lifetime exceeds the contract ceiling, and allows a few seconds of clock skew."},"ns":{"type":"string","description":"The namespace the token is bound to (echoes the path parameter)."},"track":{"type":"string","description":"The track the token is bound to (echoes the path parameter)."},"role":{"type":"string","enum":["publish","subscribe"],"description":"Derived from the route, never from a client field."},"scope":{"type":"string","enum":["moq:write","moq:read"],"description":"The single scope granted by this token — `moq:write` for publish, `moq:read` for subscribe. Least-privilege: a subscribe token cannot publish."},"protocol":{"type":"string","description":"Present only when a publisher declared a recognized, authorized origin protocol at mint time (see `x-wave-declare-protocol`). Absent means the session bills as plain `moq`."}}},"X402PaymentRequired":{"type":"object","description":"The x402 payment-challenge body returned with HTTP 402. Distinct from the `Error` envelope: `error` here is a human-readable string and the normalized WAVE error object is nested under `error_detail`.","required":["x402Version","error","accepts"],"properties":{"x402Version":{"type":"integer","description":"x402 protocol version (currently 1)."},"error":{"type":"string","description":"Short reason, e.g. `payment required`."},"accepts":{"type":"array","description":"Payment options; sign one and retry with the `x-payment` header.","items":{"$ref":"#/components/schemas/X402Accepts"}},"error_detail":{"allOf":[{"$ref":"#/components/schemas/ErrorBody"},{"type":"object","properties":{"payment_rejected":{"type":"object","description":"Present ONLY when a submitted payment was REJECTED (as opposed to no payment having been made at all): the sanitized deny verdict, so a paying caller can tell a rejected payment apart from an unpaid challenge and correct the named field. `reason` is a lowercase snake_case token from the gateway's closed deny vocabulary (e.g. `invalid_permit_header`, `session_expired`, `duplicate`, `rate_limited`); internal detail that cannot be published verbatim collapses to the generic `payment_rejected`. `rail` names the payment rail that denied (e.g. `base-usdc`, `tempo-pathusd`), or `unknown`.","required":["reason","rail"],"properties":{"reason":{"type":"string","description":"Sanitized machine-readable rejection reason token."},"rail":{"type":"string","description":"The payment rail the rejection occurred on."}}}}}]},"next_action":{"type":"object","additionalProperties":true,"description":"Machine-executable directive for agent callers — a `pay` directive carrying the same `accepts` options."}}},"X402Accepts":{"type":"object","description":"One acceptable payment option in an x402 challenge.","properties":{"scheme":{"type":"string","description":"Payment scheme, e.g. `exact`."},"protocol":{"type":"string","description":"Always `x402`."},"network":{"type":"string","description":"Settlement network, e.g. `base`."},"maxAmountRequired":{"type":"string","description":"Amount in the asset's smallest unit, as a decimal string."},"resource":{"type":"string","description":"The request path being charged for."},"description":{"type":"string"},"mimeType":{"type":"string"},"payTo":{"type":"string","description":"Destination address for the payment."},"maxTimeoutSeconds":{"type":"integer"},"asset":{"type":"string","description":"Contract address of the settlement asset."},"extra":{"type":"object","additionalProperties":true,"description":"Scheme-specific metadata (e.g. settlement mode, session id)."}}},"PricingManifest":{"type":"object","properties":{"slug":{"type":"string"},"org":{"type":"string"},"tiers":{"type":"array","items":{"type":"object","additionalProperties":true}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"additionalProperties":true},"IdentityResolveResponse":{"description":"The resolved directory entry, DISCRIMINATED on the outer `agent` value: `agent: \"telephony\"` serves the TelephonyResolveResponse variant; every other directory key serves the AgentResolveResponse variant. Generated clients can narrow on `agent`.\n","oneOf":[{"$ref":"#/components/schemas/AgentResolveResponse"},{"$ref":"#/components/schemas/TelephonyResolveResponse"}]},"AgentResolveResponse":{"type":"object","additionalProperties":false,"required":["agent","identity"],"properties":{"agent":{"type":"string","pattern":"^[a-z0-9-]{1,64}$","not":{"const":"telephony"},"description":"The resolved agent id — any directory key EXCEPT the telephony service entry"},"identity":{"$ref":"#/components/schemas/AgentIdentity"}}},"TelephonyResolveResponse":{"type":"object","additionalProperties":false,"required":["agent","identity"],"properties":{"agent":{"const":"telephony"},"identity":{"$ref":"#/components/schemas/TelephonyIdentity"}}},"AgentIdentity":{"type":"object","additionalProperties":false,"description":"One agent's public directory entry. `key` is a credential key NAME, never a key value — the directory carries no secret material.\n","required":["email","key","org","channels"],"properties":{"email":{"type":"string","format":"email","description":"The agent's inbox (e.g. `opencode@agents.wave.online`)"},"key":{"type":"string","pattern":"^[A-Z0-9_]+$","description":"Credential key NAME for the agent's inbox credential (never the value)"},"org":{"type":"string","description":"Owning org (e.g. `wave`)"},"channels":{"type":"array","items":{"type":"string"},"description":"Reachable channels (e.g. `mail`, `paid-rail`, `realtime`)"}}},"TelephonyIdentity":{"type":"object","additionalProperties":false,"description":"The telephony service entry — the one documented variation on the agent shape: plural credential key names + E.164 numbers, no email/key. `org` is always present so every identity object carries it.\n","required":["org","channels","numbers","keys"],"properties":{"org":{"type":"string","description":"Owning org (e.g. `wave`)"},"channels":{"type":"array","items":{"type":"string"},"description":"Reachable channels (e.g. `voice`, `sms-blocked-a2p`)"},"numbers":{"type":"array","items":{"type":"string","pattern":"^\\+[1-9]\\d{1,14}$"},"description":"E.164 numbers"},"keys":{"type":"array","items":{"type":"string","pattern":"^[A-Z0-9_]+$"},"description":"Credential key NAMES for the telephony credentials (never values)"}}},"IdentityResolveValidationError":{"type":"object","description":"400 envelope for /identity/resolve — `error.code` is one of the documented validation codes, so generated clients can switch on it.\n","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["MISSING_AGENT","BAD_AGENT","ORG_MISMATCH"]},"message":{"type":"string"}}}}},"IdentityResolveNotFoundError":{"type":"object","description":"404 envelope for /identity/resolve — `error.code` is always UNKNOWN_AGENT; `agent` echoes the requested id.\n","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["UNKNOWN_AGENT"]},"message":{"type":"string"}}},"agent":{"type":"string","description":"Echo of the requested (unknown) agent id"}}}}}}