diff --git a/.github/scripts/skills-index-allowlist.json b/.github/scripts/skills-index-allowlist.json new file mode 100644 index 0000000..7882641 --- /dev/null +++ b/.github/scripts/skills-index-allowlist.json @@ -0,0 +1,6 @@ +[ + { + "name": "internal", + "justification": "Live skill has pricing.model=free and auth.scope=null — an operator-only utility route by the gateway's own metadata (no scope to grant, nothing to meter), not a customer-facing capability. Documenting it as a public operation would misrepresent it as purchasable." + } +] diff --git a/.github/scripts/skills-index-coverage.mjs b/.github/scripts/skills-index-coverage.mjs new file mode 100644 index 0000000..65deffd --- /dev/null +++ b/.github/scripts/skills-index-coverage.mjs @@ -0,0 +1,102 @@ +#!/usr/bin/env node +/** + * skills-index-coverage.mjs — fail if a live, priced gateway capability has no operation in + * openapi.yaml. + * + * WHY THIS EXISTS: docs are GENERATED from openapi.yaml, but the gateway's live capability + * index (https://gateway.wave.online/.well-known/wave-skills.json) is the actual source of + * truth for what customers can call and pay for. The two can drift — a capability ships at + * the gateway before anyone documents it here. This gate catches that drift going forward: + * every name in the live index must resolve to a documented product in the spec (a matching + * top-level path segment or tag), or be named — with a reason — in the allowlist next to + * this script. + * + * Matching is deliberately coarse (product-level, not per-operation): the skills index itself + * is flat (one entry per product, e.g. `/v1/render`), while the spec documents richer nested + * shapes for the same product (`/render`, `/render/{jobId}`, `/render/{jobId}/events`). A skill + * named `foo` is "covered" if the spec has a path whose first segment is `foo` OR a tag whose + * name normalizes to `foo` (case/space/hyphen-insensitive). + * + * Usage: node .github/scripts/skills-index-coverage.mjs openapi.yaml + * Exit 0 = every live capability is covered or allowlisted. + * Exit 1 = at least one live, non-allowlisted capability has no matching operation. + * Exit 2 = could not read/parse the spec, or the live index could not be fetched. + * + * Network: fetches ONLY the well-known skills index URL below (GET, unauthenticated, public). + */ +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { dirname, join } from 'node:path'; + +const SKILLS_INDEX_URL = 'https://gateway.wave.online/.well-known/wave-skills.json'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +const ALLOWLIST_PATH = join(__dirname, 'skills-index-allowlist.json'); + +const specPath = process.argv[2]; +if (!specPath) { + console.error('usage: skills-index-coverage.mjs '); + process.exit(2); +} + +function norm(name) { + return String(name).replace(/[-_ ]/g, '').toLowerCase(); +} + +let doc; +try { + const raw = readFileSync(specPath, 'utf8'); + const yaml = await import('js-yaml'); + doc = (yaml.default ?? yaml).load(raw); +} catch (err) { + console.error(`could not read/parse ${specPath}: ${err.message}`); + process.exit(2); +} + +let allowlist = []; +try { + allowlist = JSON.parse(readFileSync(ALLOWLIST_PATH, 'utf8')); +} catch (err) { + console.error(`could not read/parse ${ALLOWLIST_PATH}: ${err.message}`); + process.exit(2); +} +const allowSet = new Set(allowlist.map((e) => norm(e.name))); +for (const e of allowlist) { + if (!e.name || !e.justification) { + console.error(`allowlist entry missing name/justification: ${JSON.stringify(e)}`); + process.exit(2); + } +} + +const covered = new Set(); +for (const p of Object.keys(doc.paths ?? {})) { + const seg = p.split('/').filter(Boolean)[0]; + if (seg && !seg.startsWith('{')) covered.add(norm(seg)); +} +for (const t of doc.tags ?? []) { + if (t.name) covered.add(norm(t.name)); +} + +let skills; +try { + const res = await fetch(SKILLS_INDEX_URL); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + skills = await res.json(); +} catch (err) { + console.error(`could not fetch ${SKILLS_INDEX_URL}: ${err.message}`); + process.exit(2); +} + +const missing = []; +for (const s of skills) { + const key = norm(s.name); + if (covered.has(key)) continue; + if (allowSet.has(key)) continue; + missing.push(s.name); +} + +console.log(`skills-index-coverage: ${skills.length - missing.length}/${skills.length} live capabilities covered (${allowlist.length} allowlisted)`); +if (missing.length) { + console.error(`::error::${missing.length} live priced capabilities have no matching operation/tag in ${specPath}: ${missing.join(', ')}`); + process.exit(1); +} +console.log('skills-index-coverage: OK'); diff --git a/.github/workflows/foundation-gate.yml b/.github/workflows/foundation-gate.yml index 2d5befb..9b44fd9 100644 --- a/.github/workflows/foundation-gate.yml +++ b/.github/workflows/foundation-gate.yml @@ -144,3 +144,23 @@ jobs: exit 1 fi fi + + # Docs are GENERATED from openapi.yaml, but the gateway's live capability index is the actual + # source of truth for what customers can call and pay for — the two drift when a capability + # ships at the gateway before anyone documents it here. This job fetches the live index and + # fails if a live, non-allowlisted capability has no matching operation/tag in the spec. + # See .github/scripts/skills-index-coverage.mjs and the allowlist next to it. + skills-index-coverage: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + with: + persist-credentials: false + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: '22' + - name: Install tooling + run: npm install --no-save --no-audit --no-fund js-yaml@4.1.0 + - name: Check every live priced capability has an operation + run: node .github/scripts/skills-index-coverage.mjs openapi.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index ec73469..4ae20ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,46 @@ All notable changes to this project are documented here. The format is based on ## [Unreleased] +### Added + +- **Spec coverage from the live gateway skills index** (v1.1.0). Diffed the live capability + index (`https://gateway.wave.online/.well-known/wave-skills.json`, 178 priced capabilities) + against this spec's 72 operations and added a draft operation for every capability that had + none: 158 new `POST /{name}` operations (one per missing product), 157 new tags, and a + `bearerWithScopes` OAuth2 security scheme carrying one scope per capability, all drawn + verbatim from the live index (no invented fields). Each new operation carries: + - `x-schema-status: draft` — the request/response shape is `additionalProperties: true` + because the actual payload contract is not published anywhere the spec can read it. + - `x-skill-url` — the capability's own skill document. + - `x-price` — `model`/`currency`/`network`/`meter` from the live index, plus, where an + unauthenticated `GET` on the route returned a real x402 402 challenge, the observed + `atomicAmount` and `asset` (verified live 2026-09-02; most capabilities gate at a flat + 1000-atomic-unit entry price, one at 600000 — these are the gateway's real numbers, not + estimates). + - Coverage: **before 21/178 → after 178/178** (1 allowlisted: `internal`, which the live + index itself marks `pricing.model=free` and `auth.scope=null`). + +- **`skills-index-coverage` CI check** (`.github/scripts/skills-index-coverage.mjs`, + `.github/scripts/skills-index-allowlist.json`) — fetches the live skills index on every PR + and push to `main` and fails if a live, non-allowlisted priced capability has no matching + path segment or tag in `openapi.yaml`. Wired into `foundation-gate.yml`. + +### Deprecated + +- **`GET/POST /videos/{videoId}/chapters` and `POST /videos/{videoId}/chapters/detect`** — + marked `deprecated: true` / `x-status: unrouted`. Verified live 2026-09-02: the gateway + returns `403 ROUTE_NOT_MAPPED` ("this path and method are not part of the WAVE API") for + both paths. The live-priced Chapters capability is the flat `POST /chapters` operation + (added above); the nested shape stays documented — deprecated rather than deleted — until + it is either wired up or formally removed. + +- **`/leaderboard` and `/platform`** — confirmed live 2026-09-02: both return + `403 ROUTE_NOT_MAPPED` at the gateway. Neither appears in this spec (never did) nor in the + live gateway skills index (not a priced capability), so nothing here needed a + `deprecated: true` marker — they are documented on the publicly served `openapi.json` at + the API host but are not real operations. Recommend the publicly served copy drop them; + out of scope for this spec since they were never present here. + ### Fixed - `pr-agent` lane: fork-triggered `/` commands are now refused, and the AI diff --git a/generated/api-types.d.ts b/generated/api-types.d.ts index 4916b8d..2fdf77a 100644 --- a/generated/api-types.d.ts +++ b/generated/api-types.d.ts @@ -315,10 +315,18 @@ export interface paths { path?: never; cookie?: never; }; - /** List chapters for a video */ + /** + * List chapters for a video + * @deprecated + * @description DEPRECATED — unrouted. The live gateway returns 403 ROUTE_NOT_MAPPED for this path; it is not part of the callable WAVE API. Use `GET /chapters` (the live-priced capability) instead. + */ get: operations["listChapters"]; put?: never; - /** Create a chapter */ + /** + * Create a chapter + * @deprecated + * @description DEPRECATED — unrouted. The live gateway returns 403 ROUTE_NOT_MAPPED for this path; it is not part of the callable WAVE API. Use `POST /chapters` (the live-priced capability) instead. + */ post: operations["createChapter"]; delete?: never; options?: never; @@ -335,7 +343,11 @@ export interface paths { }; get?: never; put?: never; - /** Start AI chapter detection */ + /** + * Start AI chapter detection + * @deprecated + * @description DEPRECATED — unrouted. The live gateway returns 403 ROUTE_NOT_MAPPED for this path; it is not part of the callable WAVE API. Use `POST /chapters` (the live-priced capability) instead. + */ post: operations["detectChapters"]; delete?: never; options?: never; @@ -887,10 +899,10 @@ export interface paths { cookie?: never; }; /** - * Resolve a WAVE fleet agent id to its public channel map - * @description Gateway-native read pane (identity-fabric E1). Returns the agent's public directory entry: - * email, Doppler key NAME (never a key value), org, and channels. The data is the - * agent-identity-fabric SSOT embedded at the gateway — public-directory data only. + * Resolve a WAVE agent id to its public channel map + * @description Gateway-native read pane. Returns the agent's public directory entry: + * email, credential key name (never a credential value), org, and channels. The data is + * public-directory data only. * * Tenancy is the authenticated principal; an optional `org` query param is a self-assertion * that must match the principal (a mismatch is a 400 ORG_MISMATCH). Requires the @@ -898,7 +910,7 @@ export interface paths { * scope that gates Stripe verification sessions). * * The one documented response variation is the `telephony` service entry, whose identity - * carries `org`/`channels`/`numbers`/`keys` (plural Doppler key names + E.164 numbers) + * carries `org`/`channels`/`numbers`/`keys` (plural credential key names + E.164 numbers) * instead of `email`/`key` — see the oneOf success schema. */ get: operations["identityResolve"]; @@ -1007,182 +1019,3342 @@ export interface paths { patch?: never; trace?: never; }; -} -export type webhooks = Record; -export interface components { - schemas: { - /** @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. */ - Error: { - error: { - /** @description Stable machine-readable error code. */ - code: string; - /** @description Human-readable explanation, safe to surface to end users. */ - message: string; - /** @description Optional structured context (e.g. failing field, retry limit, requested scopes) — never raw upstream payloads. */ - details?: { - [key: string]: unknown; - }; - /** @description Actionable next steps, ordered most→least likely to resolve the error. Written to be acted on by a human OR an agent. */ - suggestions?: string[]; - /** @description Closest valid alternatives when the caller likely made a typo or wrong choice (e.g. an unknown scope, product, or route). */ - did_you_mean?: string[]; - /** - * Format: uri - * @description Documentation link for this error. - */ - doc_url?: string; - }; - }; - Pagination: { - page?: number; - perPage?: number; - total?: number; - totalPages?: number; - }; - PaginatedResponse: { - data?: unknown[]; - pagination?: components["schemas"]["Pagination"]; + "/accessibility-studio": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - /** @enum {string} */ - JobStatus: "pending" | "processing" | "completed" | "failed" | "cancelled"; - /** @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. */ - Attestation: { - /** - * @description Attestation payload schema id + version (matches the payload's own `schema_version`). - * @example wave.context-attestation/v0 - */ - schema: string; - /** @description The attested facts — one of the instance payload schemas (e.g. `#/components/schemas/ContextAttestation`). */ - attestation: { - [key: string]: unknown; - }; - /** @description Detached signature over the canonical JSON of `attestation`, encoded per `alg`, or null when unsigned (`alg: none`). */ - sig?: string | null; - /** - * @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. - * @example ed25519 - * @example none - */ - alg: string; - } & unknown; - /** @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. */ - ContextAttestation: { - /** @description Target model identifier. */ - model: string; - /** @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. */ - served_window: number; - /** @description Window available for input after carving out reserved output headroom, chat-template overhead, and tool/MCP schema tokens. */ - effective_window: number; - /** @description Conservative estimate of the prompt's input tokens (chars/token margin biased to never under-count). */ - input_tokens: number; - /** - * @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. - * @enum {string} - */ - decision_kind: "fit" | "route_up" | "refuse"; - /** @description True only if a downstream stage forced a truncation the guard would have refused. Normally false. */ - truncated: boolean; - /** - * Format: date-time - * @description ISO-8601 timestamp of the decision. - */ - ts: string; - /** - * @description Payload schema version (equals the envelope `schema`). - * @example wave.context-attestation/v0 - */ - schema_version: string; + get?: never; + put?: never; + /** + * WAVE accessibility-studio API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `accessibility-studio:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["accessibilityStudio"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/acp": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - /** @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`). */ - RenderAttestation: { - /** - * @description Version string. Equals the outer envelope `v` field. - * @example wave.render-attestation/v1 - */ - v: string; - /** - * @description Always `"render"` for this payload type. - * @constant - */ - kind: "render"; - /** @description Renderer identifier in `name@version/runtime` format, e.g. `wave-video@0.3.0/kernel`. Used to identify which build produced the output. */ - renderer: string; - /** @description SHA-256 hex of the canonical scene input (the Brief or Scene IR). */ - scene_sha256: string; - /** @description SHA-256 hex of the rendered output bytes. */ - output_sha256: string; - /** - * @description Output container/codec family. - * @enum {string} - */ - format: "mp4" | "alpha"; - /** @description Byte length of the rendered output. */ - bytes: number; + get?: never; + put?: never; + /** + * WAVE acp API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `acp:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["acp"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/acuity": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - /** @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. */ - WaveAttestation: { - /** @description Content-addressed ID: `sha256hex(canonicalJson(attestationSubject(envelope)))`. Stable across cache replays; upserts are idempotent by this key. */ - id: string; - /** - * @description Attestation kind. - * @enum {string} - */ - kind: "render" | "context" | "settlement"; - /** @description Version string, e.g. `wave.render-attestation/v1`. */ - v: string; - /** @description Kind-specific payload. For `kind: render`, see `RenderAttestation`. */ - subject: { - [key: string]: unknown; - }; - /** - * @description Signature algorithm. `"ed25519"` or `"none"`. - * @example ed25519 - * @example none - */ - alg: string; - /** @description Base64url-encoded Ed25519 signature over `canonicalJson(subject)` bytes. `null` when `alg` is `"none"`. */ - sig?: string | null; - /** @description When the attestation was minted. */ - created?: number | string; - } & unknown; - Clip: { - id?: string; - videoId?: string; - startTime?: number; - endTime?: number; - duration?: number; - title?: string; - description?: string; - score?: number; - category?: string; - /** Format: uri */ - thumbnailUrl?: string; - /** Format: uri */ - previewUrl?: string; - status?: components["schemas"]["JobStatus"]; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + get?: never; + put?: never; + /** + * WAVE acuity API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `acuity:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["acuity"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/aegis": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - ClipCreate: { - videoId: string; - startTime: number; - endTime: number; - title?: string; - description?: string; - category?: string; + get?: never; + put?: never; + /** + * WAVE aegis API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `aegis:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["aegis"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/aes67": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - ClipUpdate: { - title?: string; - description?: string; - startTime?: number; - endTime?: number; + get?: never; + put?: never; + /** + * WAVE aes67 API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `aes67:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["aes67"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/agentic-media": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - ClipDetectRequest: { - videoId: string; - /** @default 5 */ + get?: never; + put?: never; + /** + * WAVE agentic-media API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `agentic-media:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["agenticMedia"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/agents": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE agents API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `agents:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["agents"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/ai": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE ai API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `ai:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["ai"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/analytics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE analytics API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `analytics:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["analytics"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api-gateway": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE api-gateway API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `api-gateway:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["apiGateway"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/archive": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE archive API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `archive:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["archive"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/argus": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE argus API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `argus:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["argus"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/audience-engagement": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE audience-engagement API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `audience-engagement:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["audienceEngagement"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/audio-mastering": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE audio-mastering API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `audio-mastering:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["audioMastering"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/auth": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE auth API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `auth:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["auth"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/autopilot": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE autopilot API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `autopilot:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["autopilot"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/behavioral-intelligence": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE behavioral-intelligence API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `behavioral-intelligence:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["behavioralIntelligence"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/benchmark": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE benchmark API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `benchmark:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["benchmark"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/billing": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE billing API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `billing:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["billing"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/bmd": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE bmd API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `bmd:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["bmd"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/bridge": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE bridge API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `bridge:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["bridge"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/broadcast": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE broadcast API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `broadcast:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["broadcast"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/camera-control": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE camera-control API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `camera-control:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["cameraControl"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/cameras": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE cameras API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `cameras:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["cameras"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/campus": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE campus API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `campus:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["campus"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/challenge": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE challenge API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `challenge:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["challenge"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/chapters": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE chapters API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `chapters:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["chapters"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/ci": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE ci API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `ci:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["ci"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/cloud-switcher": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE cloud-switcher API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `cloud-switcher:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["cloudSwitcher"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/companion": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE companion API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `companion:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["companion"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/competitive-intel": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE competitive-intel API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `competitive-intel:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["competitiveIntel"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/compliance": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE compliance API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `compliance:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["compliance"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/connect": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE connect API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `connect:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["connect"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/cookie-consent": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE cookie-consent API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `cookie-consent:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["cookieConsent"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/cost": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE cost API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `cost:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["cost"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/creator": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE creator API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `creator:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["creator"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/creator-economy": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE creator-economy API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `creator-economy:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["creatorEconomy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/creator-storefront": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE creator-storefront API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `creator-storefront:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["creatorStorefront"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/crest": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE crest API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `crest:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["crest"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/cro": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE cro API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `cro:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["cro"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/dante": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE dante API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `dante:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["dante"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/data-exchange": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE data-exchange API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `data-exchange:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["dataExchange"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/decode": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE decode API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `decode:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["decode"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/director": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE director API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `director:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["director"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/discovery": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE discovery API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `discovery:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["discovery"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/dispatch": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE dispatch API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `dispatch:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["dispatch"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/dmca": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE dmca API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `dmca:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["dmca"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/dsar": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE dsar API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `dsar:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["dsar"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/dub": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE dub API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `dub:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["dub"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/echo": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE echo API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `echo:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["echo"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/edge": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE edge API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `edge:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["edge"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/embeddings": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE embeddings API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `embeddings:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["embeddings"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/encode": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE encode API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `encode:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["encode"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/engagement": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE engagement API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `engagement:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["engagement"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/enhance": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE enhance API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `enhance:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["enhance"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/example": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE example API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `example:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["example"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/experiments": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE experiments API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `experiments:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["experiments"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/fleet": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE fleet API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `fleet:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["fleet"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/forecast": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE forecast API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `forecast:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["forecast"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/geo": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE geo API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `geo:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["geo"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/ghost-producer": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE ghost-producer API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `ghost-producer:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["ghostProducer"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/graphics-engine": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE graphics-engine API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `graphics-engine:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["graphicsEngine"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/integrations": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE integrations API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `integrations:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["integrations"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/intel": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE intel API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `intel:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["intel"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/listen": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE listen API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `listen:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["listen"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/live": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE live API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `captions:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["live"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/live-annotation": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE live-annotation API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `live-annotation:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["liveAnnotation"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/live-commerce": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE live-commerce API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `live-commerce:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["liveCommerce"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/local-ai": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE local-ai API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `local-ai:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["localAi"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/me": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE me API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `me:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["me"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/memory": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE memory API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `memory:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["memory"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/mesh": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE mesh API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `mesh:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["mesh"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/mlvc": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE mlvc API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `mlvc:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["mlvc"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/mobile-producer": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE mobile-producer API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `mobile-producer:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["mobileProducer"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/moderate": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE moderate API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `moderate:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["moderate"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/monetization": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE monetization API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `monetization:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["monetization"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/monitoring": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE monitoring API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `monitoring:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["monitoring"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/mpp": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE mpp API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `mpp:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["mpp"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/mux": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE mux API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `mux:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["mux"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/mxl": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE mxl API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `mxl:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["mxl"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/ndi": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE ndi API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `ndi:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["ndi"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/nvr": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE nvr API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `nvr:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["nvr"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/omt": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE omt API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `omt:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["omt"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/ops": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE ops API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `ops:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["ops"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/orbit": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE orbit API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `orbit:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["orbit"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/organizations": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE organizations API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `organizations:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["organizations"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/outliers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE outliers API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `outliers:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["outliers"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/payments": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE payments API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `payments:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["payments"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/perception": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE perception API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `perception:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["perception"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/pipelines": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE pipelines API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `pipelines:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["pipelines"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/preferences": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE preferences API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `preferences:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["preferences"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/presence": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE presence API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `presence:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["presence"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/privy": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE privy API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `privy:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["privy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/production": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE production API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `production:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["production"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/production-graph": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE production-graph API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `production-graph:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["productionGraph"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/productions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE productions API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `productions:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["productions"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/products": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE products API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `products:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["products"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/pulse": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE pulse API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `pulse:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["pulse"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/qr-system": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE qr-system API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `qr-system:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["qrSystem"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/quality-scorecard": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE quality-scorecard API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `quality-scorecard:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["qualityScorecard"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/radar": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE radar API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `radar:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["radar"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/rate-limit": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE rate-limit API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `rate-limit:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["rateLimit"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/recommend": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE recommend API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `recommend:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["recommend"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/remotion": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE remotion API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `remotion:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["remotion"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/renders": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE renders API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `renders:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["renders"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/replay": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE replay API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `replay:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["replay"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/replay-engine": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE replay-engine API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `replay-engine:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["replayEngine"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/review": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE review API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `review:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["review"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/rist": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE rist API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `rist:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["rist"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/router": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE router API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `router:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["router"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/routes": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE routes API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `routes:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["routes"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/rtmp": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE rtmp API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `rtmp:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["rtmp"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/runtime": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE runtime API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `runtime:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["runtime"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sandbox": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE sandbox API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `sandbox:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["sandbox"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/scene": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE scene API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `scene:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["scene"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/signal": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE signal API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `signal:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["signal"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/signal-generator": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE signal-generator API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `signal-generator:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["signalGenerator"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/signal-verifier": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE signal-verifier API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `signal-verifier:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["signalVerifier"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/slides-to-video": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE slides-to-video API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `slides-to-video:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["slidesToVideo"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/social-distribution": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE social-distribution API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `social-distribution:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["socialDistribution"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sports-data": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE sports-data API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `sports-data:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["sportsData"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/srt": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE srt API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `srt:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["srt"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/st2110": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE st2110 API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `st2110:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["st2110"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/stream": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE stream API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `stream:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["stream"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/stream-router": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE stream-router API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `streams:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["streamRouter"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/streamdeck": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE streamdeck API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `streamdeck:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["streamdeck"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/streaming": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE streaming API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `streaming:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["streaming"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/streams": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE streams API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `streams:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["streams"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/studio": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE studio API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `studio:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["studio"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/studio-automation": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE studio-automation API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `studio-automation:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["studioAutomation"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/switcher": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE switcher API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `switcher:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["switcher"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/tempo": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE tempo API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `tempo:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["tempo"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/transcode": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE transcode API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `transcode:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["transcode"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/twilio": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE twilio API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `twilio:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["twilio"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/unsubscribe": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE unsubscribe API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `unsubscribe:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["unsubscribe"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/usage": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE usage API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `usage:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["usage"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/usb-relay": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE usb-relay API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `usb-relay:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["usbRelay"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/vault": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE vault API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `vault:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["vault"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/video-gen": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE video-gen API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `video-gen:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["videoGen"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/viewer": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE viewer API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `viewer:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["viewer"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/virtual-studio": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE virtual-studio API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `virtual-studio:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["virtualStudio"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/vision": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE vision API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `vision:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["vision"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/visual-programming": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE visual-programming API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `visual-programming:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["visualProgramming"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/visual-qa": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE visual-qa API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `visual-qa:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["visualQa"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/vod": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE vod API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `vod:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["vod"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/volumetric": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE volumetric API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `volumetric:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["volumetric"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/wave-console": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE wave-console API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `wave-console:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["waveConsole"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/wave-node": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE wave-node API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `wave-node:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["waveNode"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/wave-sdk": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE wave-sdk API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `wave-sdk:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["waveSdk"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/wave-tokens": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE wave-tokens API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `wave-tokens:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["waveTokens"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/webrtc": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE webrtc API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `webrtc:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["webrtc"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/whep": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE whep API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `whep:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["whep"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/whip": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE whip API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `whip:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["whip"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/workflow-engine": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE workflow-engine API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `workflow-engine:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["workflowEngine"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/x402": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE x402 API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `x402:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["x402"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/zero-trust-vault": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE zero-trust-vault API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `zero-trust-vault:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["zeroTrustVault"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/zoom": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE zoom API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `zoom:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["zoom"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/zoom-integration": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * WAVE zoom-integration API + * @description Generated from the live gateway skills index (not yet hand-documented). The route is confirmed live at the gateway; the request/response shape below is a draft placeholder (`additionalProperties: true`) pending the product team's schema. Method is POST, inferred from the `zoom-integration:write` scope; the gateway's paywall is a flat per-product gate, so other verbs may also be live. + */ + post: operations["zoomIntegration"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** @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. */ + Error: { + error: { + /** @description Stable machine-readable error code. */ + code: string; + /** @description Human-readable explanation, safe to surface to end users. */ + message: string; + /** @description Optional structured context (e.g. failing field, retry limit, requested scopes) — never raw upstream payloads. */ + details?: { + [key: string]: unknown; + }; + /** @description Actionable next steps, ordered most→least likely to resolve the error. Written to be acted on by a human OR an agent. */ + suggestions?: string[]; + /** @description Closest valid alternatives when the caller likely made a typo or wrong choice (e.g. an unknown scope, product, or route). */ + did_you_mean?: string[]; + /** + * Format: uri + * @description Documentation link for this error. + */ + doc_url?: string; + }; + }; + Pagination: { + page?: number; + perPage?: number; + total?: number; + totalPages?: number; + }; + PaginatedResponse: { + data?: unknown[]; + pagination?: components["schemas"]["Pagination"]; + }; + /** @enum {string} */ + JobStatus: "pending" | "processing" | "completed" | "failed" | "cancelled"; + /** @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. */ + Attestation: { + /** + * @description Attestation payload schema id + version (matches the payload's own `schema_version`). + * @example wave.context-attestation/v0 + */ + schema: string; + /** @description The attested facts — one of the instance payload schemas (e.g. `#/components/schemas/ContextAttestation`). */ + attestation: { + [key: string]: unknown; + }; + /** @description Detached signature over the canonical JSON of `attestation`, encoded per `alg`, or null when unsigned (`alg: none`). */ + sig?: string | null; + /** + * @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. + * @example ed25519 + * @example none + */ + alg: string; + } & unknown; + /** @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. */ + ContextAttestation: { + /** @description Target model identifier. */ + model: string; + /** @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. */ + served_window: number; + /** @description Window available for input after carving out reserved output headroom, chat-template overhead, and tool/MCP schema tokens. */ + effective_window: number; + /** @description Conservative estimate of the prompt's input tokens (chars/token margin biased to never under-count). */ + input_tokens: number; + /** + * @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. + * @enum {string} + */ + decision_kind: "fit" | "route_up" | "refuse"; + /** @description True only if a downstream stage forced a truncation the guard would have refused. Normally false. */ + truncated: boolean; + /** + * Format: date-time + * @description ISO-8601 timestamp of the decision. + */ + ts: string; + /** + * @description Payload schema version (equals the envelope `schema`). + * @example wave.context-attestation/v0 + */ + schema_version: string; + }; + /** @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`). */ + RenderAttestation: { + /** + * @description Version string. Equals the outer envelope `v` field. + * @example wave.render-attestation/v1 + */ + v: string; + /** + * @description Always `"render"` for this payload type. + * @constant + */ + kind: "render"; + /** @description Renderer identifier in `name@version/runtime` format, e.g. `wave-video@0.3.0/kernel`. Used to identify which build produced the output. */ + renderer: string; + /** @description SHA-256 hex of the canonical scene input (the Brief or Scene IR). */ + scene_sha256: string; + /** @description SHA-256 hex of the rendered output bytes. */ + output_sha256: string; + /** + * @description Output container/codec family. + * @enum {string} + */ + format: "mp4" | "alpha"; + /** @description Byte length of the rendered output. */ + bytes: number; + }; + /** @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. */ + WaveAttestation: { + /** @description Content-addressed ID: `sha256hex(canonicalJson(attestationSubject(envelope)))`. Stable across cache replays; upserts are idempotent by this key. */ + id: string; + /** + * @description Attestation kind. + * @enum {string} + */ + kind: "render" | "context" | "settlement"; + /** @description Version string, e.g. `wave.render-attestation/v1`. */ + v: string; + /** @description Kind-specific payload. For `kind: render`, see `RenderAttestation`. */ + subject: { + [key: string]: unknown; + }; + /** + * @description Signature algorithm. `"ed25519"` or `"none"`. + * @example ed25519 + * @example none + */ + alg: string; + /** @description Base64url-encoded Ed25519 signature over `canonicalJson(subject)` bytes. `null` when `alg` is `"none"`. */ + sig?: string | null; + /** @description When the attestation was minted. */ + created?: number | string; + } & unknown; + Clip: { + id?: string; + videoId?: string; + startTime?: number; + endTime?: number; + duration?: number; + title?: string; + description?: string; + score?: number; + category?: string; + /** Format: uri */ + thumbnailUrl?: string; + /** Format: uri */ + previewUrl?: string; + status?: components["schemas"]["JobStatus"]; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + ClipCreate: { + videoId: string; + startTime: number; + endTime: number; + title?: string; + description?: string; + category?: string; + }; + ClipUpdate: { + title?: string; + description?: string; + startTime?: number; + endTime?: number; + }; + ClipDetectRequest: { + videoId: string; + /** @default 5 */ minDuration: number; /** @default 60 */ maxDuration: number; @@ -1191,1842 +4363,6624 @@ export interface components { sensitivity: number; maxClips?: number; }; - DetectionJob: { - id?: string; - status?: components["schemas"]["JobStatus"]; - progress?: number; - /** Format: date-time */ - createdAt?: string; + DetectionJob: { + id?: string; + status?: components["schemas"]["JobStatus"]; + progress?: number; + /** Format: date-time */ + createdAt?: string; + }; + Voice: { + id?: string; + name?: string; + description?: string; + /** Format: uri */ + previewUrl?: string; + category?: string; + labels?: { + [key: string]: string; + }; + }; + VoiceGeneration: { + id?: string; + voiceId?: string; + text?: string; + status?: components["schemas"]["JobStatus"]; + /** Format: uri */ + audioUrl?: string; + alignment?: components["schemas"]["VoiceAlignment"]; + duration?: number; + characterCount?: number; + model?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + /** @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. */ + VoiceAlignment: { + characters: string[]; + character_start_times_seconds: number[]; + character_end_times_seconds: number[]; + }; + /** @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. */ + VoiceSynthesisInline: { + /** + * Format: byte + * @description Base64-encoded audio payload (container/codec per `outputFormat`). + */ + audio_base64: string; + alignment?: components["schemas"]["VoiceAlignment"]; + /** @description Audio container/codec of the decoded bytes (e.g. mp3_44100_128). */ + format?: string; + }; + VoiceGenerateRequest: { + voiceId: string; + text: string; + /** @default 0.5 */ + stability: number; + /** @default 0.75 */ + similarityBoost: number; + /** @default 0 */ + style: number; + /** @default eleven_multilingual_v2 */ + model: string; + /** @default mp3_44100_128 */ + outputFormat: string; + /** + * @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. + * @default false + */ + timestamps: boolean; + }; + VoiceCloneRequest: { + name: string; + audioFiles: string[]; + description?: string; + labels?: { + [key: string]: string; + }; + }; + CaptionJob: { + id?: string; + videoId?: string; + sourceLanguage?: string; + targetLanguages?: string[]; + status?: components["schemas"]["JobStatus"]; + progress?: number; + outputs?: { + [key: string]: string; + }; + errorMessage?: string; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + CaptionJobCreate: { + videoId: string; + /** @default en */ + sourceLanguage: string; + targetLanguages?: string[]; + /** @default default */ + style: string; + /** @default false */ + speakerLabels: boolean; + }; + Chapter: { + id?: string; + videoId?: string; + title?: string; + description?: string; + startTime?: number; + endTime?: number; + /** Format: uri */ + thumbnailUrl?: string; + }; + ChapterCreate: { + title: string; + description?: string; + startTime: number; + endTime: number; + }; + ChapterDetectRequest: { + /** @default 30 */ + minDuration: number; + maxChapters?: number; + /** @default true */ + includeDescriptions: boolean; + /** @default true */ + includeThumbnails: boolean; + }; + EditorProject: { + id?: string; + name?: string; + description?: string; + status?: string; + duration?: number; + resolution?: string; + frameRate?: number; + /** Format: uri */ + thumbnailUrl?: string; + /** Format: uri */ + exportUrl?: string; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + EditorProjectCreate: { + name: string; + description?: string; + /** @default 1920x1080 */ + resolution: string; + /** @default 30 */ + frameRate: number; + /** @default 16:9 */ + aspectRatio: string; + }; + EditorProjectUpdate: { + name?: string; + description?: string; + }; + ExportRequest: { + /** + * @default mp4 + * @enum {string} + */ + format: "mp4" | "webm" | "mov"; + resolution?: string; + /** + * @default high + * @enum {string} + */ + quality: "low" | "medium" | "high" | "ultra"; + }; + ExportJob: { + id?: string; + status?: components["schemas"]["JobStatus"]; + progress?: number; + /** Format: uri */ + outputUrl?: string; + }; + PhoneLine: { + id?: string; + number?: string; + name?: string; + status?: string; + capabilities?: string[]; + monthlyCost?: number; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + PhoneLineProvision: { + areaCode?: string; + /** @default US */ + country: string; + capabilities?: ("voice" | "sms" | "mms" | "fax")[]; + name?: string; + }; + Call: { + id?: string; + lineId?: string; + /** @enum {string} */ + direction?: "inbound" | "outbound"; + fromNumber?: string; + toNumber?: string; + status?: string; + duration?: number; + /** Format: uri */ + recordingUrl?: string; + transcript?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + CallCreate: { + fromLineId: string; + toNumber: string; + /** @default false */ + record: boolean; + /** @default false */ + transcribe: boolean; + /** Format: uri */ + webhookUrl?: string; + }; + CollabRoom: { + id?: string; + name?: string; + /** @enum {string} */ + type?: "video" | "audio" | "whiteboard" | "screen"; + /** @enum {string} */ + status?: "waiting" | "active" | "ended"; + maxParticipants?: number; + currentParticipants?: number; + /** Format: date-time */ + scheduledStart?: string; + /** Format: uri */ + joinUrl?: string; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + CollabRoomCreate: { + name: string; + /** @enum {string} */ + type: "video" | "audio" | "whiteboard" | "screen"; + /** @default 10 */ + maxParticipants: number; + /** Format: date-time */ + scheduledStart?: string; + settings?: Record; + }; + PodcastShow: { + id?: string; + name?: string; + description?: string; + /** Format: uri */ + coverUrl?: string; + /** Format: uri */ + rssUrl?: string; + category?: string; + language?: string; + explicit?: boolean; + episodeCount?: number; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + PodcastShowCreate: { + name: string; + description?: string; + category?: string; + /** @default en */ + language: string; + /** @default false */ + explicit: boolean; + /** Format: uri */ + coverUrl?: string; + }; + PodcastEpisode: { + id?: string; + showId?: string; + title?: string; + description?: string; + /** Format: uri */ + audioUrl?: string; + duration?: number; + episodeNumber?: number; + seasonNumber?: number; + /** Format: date-time */ + publishedAt?: string; + status?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + PodcastEpisodeCreate: { + title: string; + description?: string; + /** Format: uri */ + audioUrl: string; + episodeNumber?: number; + seasonNumber?: number; + /** Format: date-time */ + publishedAt?: string; + }; + Enhancement: { + id?: string; + videoId?: string; + /** @enum {string} */ + type?: "upscale" | "denoise" | "stabilize" | "color_correct" | "super_resolution"; + status?: components["schemas"]["JobStatus"]; + progress?: number; + /** Format: uri */ + inputUrl?: string; + /** Format: uri */ + outputUrl?: string; + settings?: Record; + creditsUsed?: number; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + EnhancementCreate: { + videoId: string; + /** @enum {string} */ + type: "upscale" | "denoise" | "stabilize" | "color_correct" | "super_resolution"; + settings?: Record; + /** + * @default normal + * @enum {string} + */ + priority: "low" | "normal" | "high"; + }; + EnhancementPreviewRequest: { + videoId: string; + type: string; + /** @default 0 */ + timestamp: number; + settings?: Record; + }; + Transcription: { + id?: string; + sourceId?: string; + /** @enum {string} */ + sourceType?: "video" | "audio"; + status?: components["schemas"]["JobStatus"]; + language?: string; + text?: string; + duration?: number; + wordCount?: number; + confidence?: number; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + TranscriptionCreate: { + sourceId: string; + /** @enum {string} */ + sourceType: "video" | "audio"; + language?: string; + /** @default false */ + speakerLabels: boolean; + /** @default false */ + wordTimestamps: boolean; + /** @default true */ + punctuation: boolean; + /** @default default */ + model: string; + }; + SentimentAnalysis: { + id?: string; + sourceId?: string; + /** @enum {string} */ + sourceType?: "video" | "audio" | "text" | "chat"; + status?: components["schemas"]["JobStatus"]; + /** @enum {string} */ + overallSentiment?: "positive" | "negative" | "neutral" | "mixed"; + overallScore?: number; + confidence?: number; + summary?: string; + organizationId?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + SentimentAnalysisCreate: { + sourceId: string; + /** @enum {string} */ + sourceType: "video" | "audio" | "text" | "chat"; + text?: string; + /** @default false */ + includeEmotions: boolean; + /** @default false */ + includeTopics: boolean; + /** @default false */ + includeSummary: boolean; + /** @default false */ + segmentAnalysis: boolean; + }; + EmotionBreakdown: { + joy?: number; + sadness?: number; + anger?: number; + fear?: number; + surprise?: number; + disgust?: number; + trust?: number; + anticipation?: number; + }; + TopicSentiment: { + topic?: string; + /** @enum {string} */ + sentiment?: "positive" | "negative" | "neutral"; + score?: number; + mentions?: number; + keywords?: string[]; + }; + SearchResult: { + id?: string; + score?: number; + fusedScore?: number; + /** @enum {string} */ + matchType?: "semantic" | "keyword" | "hybrid"; + denseScore?: number; + sparseScore?: number; + metadata?: { + namespace?: string; + title?: string; + text?: string; + }; + }; + SearchWebHit: { + title?: string; + /** Format: uri */ + url?: string; + highlights?: string; + }; + SearchResponse: { + results?: components["schemas"]["SearchResult"][]; + metadata?: { + query?: string; + namespace?: string; + totalResults?: number; + processingTimeMs?: number; + /** @enum {string} */ + searchType?: "hybrid"; + cached?: boolean; + web?: components["schemas"]["SearchWebHit"][]; + }; + }; + SearchRequest: { + query: string; + /** + * @default streams + * @enum {string} + */ + namespace: "streams" | "users" | "clips" | "transcripts" | "all"; + /** @default 20 */ + topK: number; + }; + SearchIndexDoc: { + id: string; + /** @enum {string} */ + namespace: "streams" | "users" | "clips" | "transcripts"; + title?: string; + text: string; + metadata?: Record; + }; + SearchIndexRequest: { + id: string; + /** @enum {string} */ + namespace: "streams" | "users" | "clips" | "transcripts"; + title?: string; + text: string; + metadata?: Record; + docs?: components["schemas"]["SearchIndexDoc"][]; + }; + SearchIndexResponse: { + indexed?: number; + ids?: string[]; + }; + SearchDeleteResponse: { + deleted?: boolean; + id?: string; + }; + SearchInsightRow: { + query?: string; + term?: string; + count?: number; + previous?: number; + }; + SearchAnalyticsResponse: { + org?: string; + /** Format: date-time */ + generated_at?: string; + insights?: { + top?: components["schemas"]["SearchInsightRow"][]; + zeroResult?: components["schemas"]["SearchInsightRow"][]; + trending?: components["schemas"]["SearchInsightRow"][]; + }; + }; + SearchHighlight: { + field?: string; + snippet?: string; + positions?: { + start?: number; + end?: number; + }[]; + }; + SearchSuggestion: { + text?: string; + /** @enum {string} */ + type?: "query" | "title" | "tag"; + score?: number; + }; + SearchFacet: { + field?: string; + values?: { + value?: string; + count?: number; + }[]; + }; + /** @description `org` is derived from the caller's authenticated principal, not sent in the body. */ + BraidPublishRequest: { + /** @description Namespace for the published track. Republishing the same ns replaces the prior machine. */ + ns: string; + /** @description Named audio sources to braid into one interleaved multichannel track. Each source needs a `label`/`track` and either a `url` or a `path`. */ + sources: { + label: string; + track: string; + /** Format: uri */ + url?: string; + path?: string; + }[]; + /** @description Braid window size in milliseconds. Defaults to the machine-config default when omitted. */ + windowMs?: number; + /** @description Sample rate for the braided track. Defaults to the machine-config default when omitted. */ + sampleRate?: number; + }; + BraidPublishResult: { + ns: string; + track: string; + channels: number; + windowMs: number; + objectBytes: number; + machineId: string; + /** @enum {string} */ + status: "starting"; + }; + BraidStopResult: { + ns: string; + machineId: string; + /** @enum {string} */ + status: "stopped"; + }; + /** @description `org` is derived from the caller's authenticated principal, not sent in the body. */ + AvRemuxRequest: { + /** + * Format: uri + * @description Source for local IP video (RTP H.264). + */ + videoUrl: string; + /** + * Format: uri + * @description Source for the separate Dante/AES67 audio track. + */ + audioUrl: string; + /** + * @description Output container for the synchronized stream. + * @enum {string} + */ + container: "mpegts" | "fmp4"; + /** + * Format: uri + * @description Optional presigned destination to PUT the resulting container to. Omitted → returned inline. + */ + outputUrl?: string; + }; + /** @description `org` is derived from the caller's authenticated principal, not sent in the body. */ + AvDemuxRequest: { + /** + * Format: uri + * @description Synchronized MPEG-TS or fMP4 container to split back into video + Dante audio. + */ + sourceUrl: string; + /** + * Format: uri + * @description Optional presigned destination for the demuxed RTP H.264 video output. + */ + videoOutputUrl?: string; + /** + * Format: uri + * @description Optional presigned destination for the demuxed Dante/AES67 audio output. + */ + audioOutputUrl?: string; + }; + AvTransformResult: { + ok: boolean; + /** @enum {string} */ + container: "mpegts" | "fmp4"; + /** @description Duration of the transformed stream, in seconds — the basis for wave_av_transform_seconds billing. */ + durationSeconds: number; + /** @description Measured audio/video sync offset after alignment, in milliseconds (sub-millisecond target). */ + syncOffsetMs?: number; + }; + /** + * @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 {string} + */ + RenderTemplate: "slate" | "lowerThird" | "announce" | "stat" | "hero" | "quote" | "backdrop" | "field" | "badge" | "endcard" | "sting" | "ident" | "kinetic" | "ticker" | "countdown" | "receipt" | "code" | "session" | "chart" | "audiogram" | "manifesto" | "changelog"; + /** @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. */ + RenderBrief: { + template: components["schemas"]["RenderTemplate"]; + /** @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. */ + props: { + [key: string]: unknown; + }; + }; + /** @description The delivery envelope (Accept application/json). `sha256` is the determinism receipt. */ + RenderResult: components["schemas"]["RenderResultInline"] | components["schemas"]["RenderResultUrl"]; + RenderResultInline: { + /** @enum {string} */ + delivery: "inline"; + /** @enum {string} */ + format: "mp4"; + /** @description sha256 of the output bytes (determinism receipt). */ + sha256: string; + bytes: number; + /** @enum {string} */ + contentType: "video/mp4"; + /** @description base64 data URL of the output (small MP4s only). */ + dataUrl: string; + }; + RenderResultUrl: { + /** @enum {string} */ + delivery: "url"; + /** @enum {string} */ + format: "mp4" | "alpha"; + /** @description sha256 of the output bytes (determinism receipt). */ + sha256: string; + bytes: number; + /** @description Signed, single-object, expiring URL on downloads.wave.online. */ + url: string; + /** @description Absolute Unix expiry of the signed URL. */ + expiresAtSec: number; + /** @enum {string} */ + contentType: "video/mp4" | "video/quicktime"; + }; + /** + * @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 {string} + */ + RenderJobStatus: "queued" | "rendering" | "delivering" | "done" | "error"; + /** @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`. */ + RenderJobView: { + jobId: string; + status: components["schemas"]["RenderJobStatus"]; + /** @description Terminal (done): the signed delivery URL. */ + url?: string; + /** @description Terminal (done): absolute Unix expiry of `url`. */ + expiresAtSec?: number; + /** @description Terminal (done): determinism receipt — sha256 of the output bytes. */ + sha256?: string; + /** @description Terminal (done): output size in bytes. */ + bytes?: number; + /** @description Terminal (done): the billable usage lines this render billed. */ + meters?: { + event?: string; + quantity?: number; + }[]; + /** @description Terminal (error): a typed, client-safe error. */ + error?: { + code: string; + message: string; + }; + }; + /** @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. */ + MoqJoinToken: { + /** @description Always `true` on a successful mint. */ + ok: boolean; + /** + * 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. + */ + relayWsUrl: 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. */ + joinToken: string; + /** @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. */ + expiresIn: number; + /** @description The namespace the token is bound to (echoes the path parameter). */ + ns: string; + /** @description The track the token is bound to (echoes the path parameter). */ + track: string; + /** + * @description Derived from the route, never from a client field. + * @enum {string} + */ + role: "publish" | "subscribe"; + /** + * @description The single scope granted by this token — `moq:write` for publish, `moq:read` for subscribe. Least-privilege: a subscribe token cannot publish. + * @enum {string} + */ + scope: "moq:write" | "moq:read"; + /** @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`. */ + protocol?: string; + }; + /** @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`. */ + X402PaymentRequired: { + /** @description x402 protocol version (currently 1). */ + x402Version: number; + /** @description Short reason, e.g. `payment required`. */ + error: string; + /** @description Payment options; sign one and retry with the `x-payment` header. */ + accepts: components["schemas"]["X402Accepts"][]; + error_detail?: components["schemas"]["Error"]; + /** @description Machine-executable directive for agent callers — a `pay` directive carrying the same `accepts` options. */ + next_action?: { + [key: string]: unknown; + }; + }; + /** @description One acceptable payment option in an x402 challenge. */ + X402Accepts: { + /** @description Payment scheme, e.g. `exact`. */ + scheme?: string; + /** @description Always `x402`. */ + protocol?: string; + /** @description Settlement network, e.g. `base`. */ + network?: string; + /** @description Amount in the asset's smallest unit, as a decimal string. */ + maxAmountRequired?: string; + /** @description The request path being charged for. */ + resource?: string; + description?: string; + mimeType?: string; + /** @description Destination address for the payment. */ + payTo?: string; + maxTimeoutSeconds?: number; + /** @description Contract address of the settlement asset. */ + asset?: string; + /** @description Scheme-specific metadata (e.g. settlement mode, session id). */ + extra?: { + [key: string]: unknown; + }; + }; + PricingManifest: { + slug?: string; + org?: string; + tiers?: { + [key: string]: unknown; + }[]; + createdAt?: string; + updatedAt?: string; + } & { + [key: string]: unknown; + }; + /** @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`. */ + IdentityResolveResponse: components["schemas"]["AgentResolveResponse"] | components["schemas"]["TelephonyResolveResponse"]; + AgentResolveResponse: { + /** @description The resolved agent id — any directory key EXCEPT the telephony service entry */ + agent: string; + identity: components["schemas"]["AgentIdentity"]; + }; + TelephonyResolveResponse: { + /** @constant */ + agent: "telephony"; + identity: components["schemas"]["TelephonyIdentity"]; + }; + /** @description One agent's public directory entry. `key` is a credential key NAME, never a key value — the directory carries no secret material. */ + AgentIdentity: { + /** + * Format: email + * @description The agent's inbox (e.g. `opencode@agents.wave.online`) + */ + email: string; + /** @description Credential key NAME for the agent's inbox credential (never the value) */ + key: string; + /** @description Owning org (e.g. `wave`) */ + org: string; + /** @description Reachable channels (e.g. `mail`, `paid-rail`, `realtime`) */ + channels: string[]; + }; + /** @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. */ + TelephonyIdentity: { + /** @description Owning org (e.g. `wave`) */ + org: string; + /** @description Reachable channels (e.g. `voice`, `sms-blocked-a2p`) */ + channels: string[]; + /** @description E.164 numbers */ + numbers: string[]; + /** @description Credential key NAMES for the telephony credentials (never values) */ + keys: string[]; + }; + /** @description 400 envelope for /identity/resolve — `error.code` is one of the documented validation codes, so generated clients can switch on it. */ + IdentityResolveValidationError: { + error: { + /** @enum {string} */ + code: "MISSING_AGENT" | "BAD_AGENT" | "ORG_MISMATCH"; + message: string; + }; + }; + /** @description 404 envelope for /identity/resolve — `error.code` is always UNKNOWN_AGENT; `agent` echoes the requested id. */ + IdentityResolveNotFoundError: { + error: { + /** @enum {string} */ + code: "UNKNOWN_AGENT"; + message: string; + }; + /** @description Echo of the requested (unknown) agent id */ + agent?: string; + }; + }; + responses: { + /** @description Validation error */ + ValidationError: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Resource not found */ + NotFoundError: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Rate limit exceeded */ + RateLimitError: { + headers: { + /** @description Seconds to wait before retrying */ + "Retry-After"?: number; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Authentication required, or the API key / token is invalid or expired. */ + Unauthorized: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description The key is valid but lacks the scope or entitlement for this operation (e.g. SCOPE_OVERREACH, quota tier exhausted). */ + Forbidden: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @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. */ + PaymentRequired: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["X402PaymentRequired"]; + }; + }; + /** @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. */ + MoqJoinUnconfigured: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @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. */ + UpstreamError: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + parameters: { + /** + * @description The render job id returned when the render was started asynchronously. + * @example 9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34 + */ + RenderJobIdParam: string; + /** + * @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. + * @example demo-ns + */ + MoqNamespaceParam: string; + /** + * @description MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters. + * @example cam-1 + */ + MoqTrackParam: string; + PageParam: number; + PerPageParam: number; + }; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + agentAuthDevice: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The device grant (codes, verification URI, expiry, poll interval) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + device_code: string; + user_code: string; + /** + * Format: uri + * @description The approve URL the human opens + */ + verification_uri: string; + /** + * Format: uri + * @description The same URL with the user code prefilled + */ + verification_uri_complete: string; + /** @description Seconds until the device code expires (600) */ + expires_in: number; + /** @description Poll interval in seconds (5) */ + interval: number; + }; + }; + }; + /** @description Device authorization not enabled for the app (dashboard toggle) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 429: components["responses"]["RateLimitError"]; + /** @description Upstream auth endpoint unreachable */ + 502: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Ceremony not configured on this deployment (no app id) */ + 503: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + agentAuthToken: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + /** + * @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) + * @enum {string} + */ + grant_type: "urn:ietf:params:oauth:grant-type:device_code" | "device_code"; + device_code: string; + } | { + /** @enum {string} */ + grant_type: "refresh_token"; + refresh_token: string; + }; + }; + }; + responses: { + /** @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. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + access_token: string; + /** @description Present on first approval and on every refresh exchange (rotation); absent only when the grant is revoked or expired */ + refresh_token?: string; + }; + }; + }; + /** @description Invalid grant_type, missing credential for the grant, or the upstream polling protocol error passed through verbatim */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 429: components["responses"]["RateLimitError"]; + /** @description Upstream auth endpoint unreachable */ + 502: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Ceremony not configured on this deployment (no app id) */ + 503: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + batchOperations: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + operations: { + /** @enum {string} */ + method: "GET" | "HEAD" | "POST" | "PUT" | "PATCH" | "DELETE"; + /** @description An enforced /v1 route */ + path: string; + /** @description The operation's JSON body (mutating methods only) */ + body?: unknown; + }[]; + }; + }; + }; + responses: { + /** @description Per-operation results */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + operations?: number; + results?: { + ok?: boolean; + status?: number; + /** @description The operation's response body */ + body?: unknown; + }[]; + }; + }; + }; + /** @description Invalid batch (operations[] required, 25-op cap) */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Rate limited (RFC RateLimit headers on the response) */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + renderVideo: { + parameters: { + query?: never; + header?: { + /** @description A replayed key returns the original result without re-charging. */ + "Idempotency-Key"?: string; + }; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RenderBrief"]; + }; + }; + responses: { + /** @description The rendered video — binary, or a RenderResult envelope under Accept application/json. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "video/mp4": string; + "application/json": components["schemas"]["RenderResult"]; + }; + }; + 400: components["responses"]["ValidationError"]; + /** @description Payment required — pay the x402 challenge and retry. */ + 402: { + headers: { + /** @description The x402 challenge, including the quoted price. */ + "WWW-Authenticate"?: string; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Output too large to return inline and no hosted delivery configured (OUTPUT_TOO_LARGE). */ + 413: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 429: components["responses"]["RateLimitError"]; + /** @description Content is on the operator deny/takedown list and will not be rendered (CONTENT_BLOCKED). */ + 451: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + renderPoll: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description The render job id returned when the render was started asynchronously. + * @example 9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34 + */ + jobId: components["parameters"]["RenderJobIdParam"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The job view. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RenderJobView"]; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 404: components["responses"]["NotFoundError"]; + 429: components["responses"]["RateLimitError"]; + /** @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. */ + 503: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + renderEvents: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description The render job id returned when the render was started asynchronously. + * @example 9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34 + */ + jobId: components["parameters"]["RenderJobIdParam"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description SSE stream of RenderJobView frames. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/event-stream": string; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 404: components["responses"]["NotFoundError"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + listClips: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + videoId?: string; + status?: components["schemas"]["JobStatus"]; + category?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of clips */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["Clip"][]; + }; + }; + }; + }; + }; + createClip: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ClipCreate"]; + }; + }; + responses: { + /** @description Clip created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Clip"]; + }; + }; + 400: components["responses"]["ValidationError"]; + }; + }; + getClip: { + parameters: { + query?: never; + header?: never; + path: { + clipId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Clip details */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Clip"]; + }; + }; + 404: components["responses"]["NotFoundError"]; + }; + }; + deleteClip: { + parameters: { + query?: never; + header?: never; + path: { + clipId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Clip deleted */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + updateClip: { + parameters: { + query?: never; + header?: never; + path: { + clipId: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ClipUpdate"]; + }; + }; + responses: { + /** @description Clip updated */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Clip"]; + }; + }; + }; + }; + detectClips: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ClipDetectRequest"]; + }; + }; + responses: { + /** @description Detection job started */ + 202: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DetectionJob"]; + }; + }; + }; + }; + listVoices: { + parameters: { + query?: { + category?: "premade" | "cloned" | "professional"; + language?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of voices */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + voices?: components["schemas"]["Voice"][]; + }; + }; + }; + }; + }; + generateSpeech: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["VoiceGenerateRequest"]; + }; + }; + responses: { + /** @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. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["VoiceSynthesisInline"] | components["schemas"]["VoiceGeneration"]; + "audio/mpeg": string; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + 502: components["responses"]["UpstreamError"]; + }; + }; + cloneVoice: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["VoiceCloneRequest"]; + }; + }; + responses: { + /** @description Voice cloned */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Voice"]; + }; + }; + }; + }; + listCaptions: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + videoId?: string; + status?: components["schemas"]["JobStatus"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of caption jobs */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["CaptionJob"][]; + }; + }; + }; + }; + }; + createCaptionJob: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CaptionJobCreate"]; + }; + }; + responses: { + /** @description Caption job created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CaptionJob"]; + }; + }; + }; + }; + getCaptionJob: { + parameters: { + query?: never; + header?: never; + path: { + jobId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Caption job details */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CaptionJob"]; + }; + }; + }; + }; + deleteCaptionJob: { + parameters: { + query?: never; + header?: never; + path: { + jobId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Caption job deleted */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + downloadCaptions: { + parameters: { + query: { + language: string; + format?: "srt" | "vtt" | "txt" | "json"; + }; + header?: never; + path: { + jobId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Caption download */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** Format: uri */ + url?: string; + content?: string; + }; + }; + }; + }; + }; + listChapters: { + parameters: { + query?: never; + header?: never; + path: { + videoId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of chapters */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + chapters?: components["schemas"]["Chapter"][]; + }; + }; + }; + }; + }; + createChapter: { + parameters: { + query?: never; + header?: never; + path: { + videoId: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ChapterCreate"]; + }; + }; + responses: { + /** @description Chapter created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Chapter"]; + }; + }; + }; + }; + detectChapters: { + parameters: { + query?: never; + header?: never; + path: { + videoId: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ChapterDetectRequest"]; + }; + }; + responses: { + /** @description Detection job started */ + 202: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DetectionJob"]; + }; + }; + }; + }; + listProjects: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + status?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of projects */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["EditorProject"][]; + }; + }; + }; + }; + }; + createProject: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EditorProjectCreate"]; + }; + }; + responses: { + /** @description Project created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EditorProject"]; + }; + }; + }; + }; + getProject: { + parameters: { + query?: never; + header?: never; + path: { + projectId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Project details */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EditorProject"]; + }; + }; + }; + }; + deleteProject: { + parameters: { + query?: never; + header?: never; + path: { + projectId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Project deleted */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + updateProject: { + parameters: { + query?: never; + header?: never; + path: { + projectId: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EditorProjectUpdate"]; + }; + }; + responses: { + /** @description Project updated */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EditorProject"]; + }; + }; + }; + }; + exportProject: { + parameters: { + query?: never; + header?: never; + path: { + projectId: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExportRequest"]; + }; + }; + responses: { + /** @description Export started */ + 202: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExportJob"]; + }; + }; + }; + }; + listPhoneLines: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of phone lines */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["PhoneLine"][]; + }; + }; + }; + }; + }; + provisionPhoneLine: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PhoneLineProvision"]; + }; + }; + responses: { + /** @description Phone line provisioned */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PhoneLine"]; + }; + }; + }; + }; + listCalls: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + lineId?: string; + direction?: "inbound" | "outbound"; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of calls */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["Call"][]; + }; + }; + }; + }; + }; + makeCall: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CallCreate"]; + }; + }; + responses: { + /** @description Call initiated */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Call"]; + }; + }; + }; + }; + listCollabRooms: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + status?: "waiting" | "active" | "ended"; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of rooms */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["CollabRoom"][]; + }; + }; + }; + }; + }; + createCollabRoom: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CollabRoomCreate"]; + }; + }; + responses: { + /** @description Room created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CollabRoom"]; + }; + }; + }; + }; + getCollabRoom: { + parameters: { + query?: never; + header?: never; + path: { + roomId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Room details */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CollabRoom"]; + }; + }; + }; + }; + deleteCollabRoom: { + parameters: { + query?: never; + header?: never; + path: { + roomId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Room deleted */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + listPodcastShows: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of shows */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["PodcastShow"][]; + }; + }; + }; + }; + }; + createPodcastShow: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PodcastShowCreate"]; + }; + }; + responses: { + /** @description Show created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PodcastShow"]; + }; + }; + }; + }; + listPodcastEpisodes: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + }; + header?: never; + path: { + showId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of episodes */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["PodcastEpisode"][]; + }; + }; + }; + }; + }; + createPodcastEpisode: { + parameters: { + query?: never; + header?: never; + path: { + showId: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PodcastEpisodeCreate"]; + }; + }; + responses: { + /** @description Episode created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PodcastEpisode"]; + }; + }; + }; + }; + listEnhancements: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + type?: "upscale" | "denoise" | "stabilize" | "color_correct" | "super_resolution"; + status?: components["schemas"]["JobStatus"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of enhancements */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["Enhancement"][]; + }; + }; + }; + }; + }; + createEnhancement: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnhancementCreate"]; + }; + }; + responses: { + /** @description Enhancement created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Enhancement"]; + }; + }; + }; + }; + previewEnhancement: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnhancementPreviewRequest"]; + }; + }; + responses: { + /** @description Preview generated */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** Format: uri */ + beforeUrl?: string; + /** Format: uri */ + afterUrl?: string; + }; + }; + }; + }; + }; + listTranscriptions: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + status?: components["schemas"]["JobStatus"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of transcriptions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["Transcription"][]; + }; + }; + }; + }; + }; + createTranscription: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TranscriptionCreate"]; + }; + }; + responses: { + /** @description Transcription created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Transcription"]; + }; + }; + }; + }; + getTranscription: { + parameters: { + query?: never; + header?: never; + path: { + transcriptionId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Transcription details */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Transcription"]; + }; + }; + }; + }; + deleteTranscription: { + parameters: { + query?: never; + header?: never; + path: { + transcriptionId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Transcription deleted */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + listSentimentAnalyses: { + parameters: { + query?: { + page?: components["parameters"]["PageParam"]; + perPage?: components["parameters"]["PerPageParam"]; + status?: components["schemas"]["JobStatus"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Paginated list of analyses */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedResponse"] & { + data?: components["schemas"]["SentimentAnalysis"][]; + }; + }; + }; + }; + }; + createSentimentAnalysis: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SentimentAnalysisCreate"]; + }; + }; + responses: { + /** @description Analysis created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SentimentAnalysis"]; + }; + }; + }; + }; + analyzeText: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + text: string; + /** @default false */ + includeEmotions?: boolean; + /** @default false */ + includeTopics?: boolean; + }; + }; + }; + responses: { + /** @description Analysis result */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @enum {string} */ + sentiment?: "positive" | "negative" | "neutral"; + score?: number; + confidence?: number; + emotions?: components["schemas"]["EmotionBreakdown"]; + topics?: components["schemas"]["TopicSentiment"][]; + }; + }; + }; + }; + }; + search: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SearchRequest"]; + }; + }; + responses: { + /** @description Ranked results + metadata (metered wave_search_queries) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SearchResponse"]; + }; + }; + /** @description Invalid request (bad body/query/namespace/topK) */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Per-org rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Search plane unconfigured */ + 503: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + searchIndex: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SearchIndexRequest"]; + }; + }; + responses: { + /** @description Indexed count + ids */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SearchIndexResponse"]; + }; + }; + }; + }; + searchDelete: { + parameters: { + query: { + namespace: "streams" | "users" | "clips" | "transcripts"; + }; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Deleted flag + id */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SearchDeleteResponse"]; + }; + }; + }; + }; + searchAnalytics: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Insight receipt */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SearchAnalyticsResponse"]; + }; + }; + }; + }; + realtimeConnect: { + parameters: { + query: { + /** @description Namespaced channel id, e.g. `stream:abc`, `room:xyz`. */ + channel: string; + /** @description Member id to present as (defaults to the caller's key prefix). */ + as?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Switching Protocols — WebSocket established. */ + 101: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Authentication required */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Upgrade required (not a WebSocket request) */ + 426: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + realtimePublish: { + parameters: { + query?: never; + header?: never; + path: { + channel: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Event name, e.g. `caption.cue`, `sentiment.tick`, `clip.created`, `stream.started`. */ + event: string; + /** @description Arbitrary JSON payload for the event. */ + data?: unknown; + }; + }; + }; + responses: { + /** @description Published */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + ok?: boolean; + /** @description Number of subscribers the event reached */ + delivered?: number; + }; + }; + }; + /** @description Authentication required */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + realtimePresence: { + parameters: { + query?: never; + header?: never; + path: { + channel: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Presence list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + channel?: string; + members?: { + id?: string; + }[]; + }; + }; + }; + }; + }; + realtimeHistory: { + parameters: { + query?: { + limit?: number; + }; + header?: never; + path: { + channel: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Recent events */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + channel?: string; + events?: Record[]; + }; + }; + }; + }; + }; + publishBraidAudio: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BraidPublishRequest"]; + }; + }; + responses: { + /** @description Braid machine starting */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BraidPublishResult"]; + }; + }; + 400: components["responses"]["ValidationError"]; + 403: components["responses"]["Forbidden"]; + /** @description Per-org concurrency or creation-rate limit exceeded. */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Braid publish unavailable — the worker is not provisioned for on-demand publish. */ + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + stopBraidAudio: { + parameters: { + query?: never; + header?: never; + path: { + ns: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Braid machine stopped */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BraidStopResult"]; + }; + }; + 403: components["responses"]["Forbidden"]; + /** @description No live braid machine for this namespace. */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Braid publish unavailable — the worker is not provisioned for on-demand publish. */ + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + avRemux: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AvRemuxRequest"]; + }; + }; + responses: { + /** @description Muxed container stream — binary, or an AvTransformResult envelope under Accept application/json. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "video/mp2t": string; + "application/json": components["schemas"]["AvTransformResult"]; + }; + }; + 400: components["responses"]["ValidationError"]; + /** @description Payment required — pay the x402 challenge and retry. */ + 402: { + headers: { + /** @description The x402 challenge, including the quoted price. */ + "WWW-Authenticate"?: string; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 403: components["responses"]["Forbidden"]; + /** @description AV mux/demux unavailable — the spoke is not provisioned (AV_ORIGIN unset). */ + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + avDemux: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AvDemuxRequest"]; + }; + }; + responses: { + /** @description Demux result — routed IP-video + Dante sink status. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AvTransformResult"]; + }; + }; + 400: components["responses"]["ValidationError"]; + /** @description Payment required — pay the x402 challenge and retry. */ + 402: { + headers: { + /** @description The x402 challenge, including the quoted price. */ + "WWW-Authenticate"?: string; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 403: components["responses"]["Forbidden"]; + /** @description AV mux/demux unavailable — the spoke is not provisioned (AV_ORIGIN unset). */ + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + mintMoqPublishToken: { + parameters: { + query?: never; + header?: { + /** @description Optional declared origin protocol for billing (e.g. `moq`). Ignored unless recognized and authorized for this org; never rejects the mint. */ + "x-wave-declare-protocol"?: string; + }; + path: { + /** + * @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. + * @example demo-ns + */ + ns: components["parameters"]["MoqNamespaceParam"]; + /** + * @description MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters. + * @example cam-1 + */ + track: components["parameters"]["MoqTrackParam"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Join-token minted. Served `cache-control: no-store` — never cache or log `joinToken`. */ + 200: { + headers: { + /** @description Always `no-store` — the response carries a short-lived bearer token. */ + "Cache-Control"?: string; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MoqJoinToken"]; + }; + }; + /** @description `MOQ_JOIN_BAD_RESOURCE` — `ns` or `track` does not match `^[a-z0-9-]{1,64}$`. */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + 503: components["responses"]["MoqJoinUnconfigured"]; + }; + }; + mintMoqSubscribeToken: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @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. + * @example demo-ns + */ + ns: components["parameters"]["MoqNamespaceParam"]; + /** + * @description MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters. + * @example cam-1 + */ + track: components["parameters"]["MoqTrackParam"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Join-token minted. Served `cache-control: no-store` — never cache or log `joinToken`. */ + 200: { + headers: { + /** @description Always `no-store` — the response carries a short-lived bearer token. */ + "Cache-Control"?: string; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MoqJoinToken"]; + }; + }; + /** @description `MOQ_JOIN_BAD_RESOURCE` — `ns` or `track` does not match `^[a-z0-9-]{1,64}$`. */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + 503: components["responses"]["MoqJoinUnconfigured"]; + }; + }; + identityResolve: { + parameters: { + query: { + /** @description Agent id (lowercase, e.g. `opencode`, `claude`, `telephony`) */ + agent: string; + /** @description Optional tenancy self-assertion; must equal the authenticated principal's org */ + org?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The resolved directory entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IdentityResolveResponse"]; + }; + }; + /** @description Missing/bad agent id, or org self-assertion mismatch (MISSING_AGENT / BAD_AGENT / ORG_MISMATCH) */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IdentityResolveValidationError"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + /** @description Well-formed but unknown agent id (UNKNOWN_AGENT) */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IdentityResolveNotFoundError"]; + }; + }; + 429: components["responses"]["RateLimitError"]; + }; + }; + pricingManifestsList: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The org's manifests */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + org: string; + manifests: components["schemas"]["PricingManifest"][]; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + }; + }; + pricingManifestsCreate: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + slug: string; + tiers: { + [key: string]: unknown; + }[]; + }; + }; + }; + responses: { + /** @description The upserted manifest */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PricingManifest"]; + }; + }; + 400: components["responses"]["ValidationError"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + }; + }; + custodyOperation: { + parameters: { + query?: never; + header?: never; + path: { + /** @description The custody operation */ + op: "grant" | "revoke" | "inspect" | "exercise"; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + grantId: string; + provider?: string; + scopes?: string[]; + ttlSeconds?: number; + }; + }; + }; + responses: { + /** @description The operation receipt (metadata only — never a secret field) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 400: components["responses"]["ValidationError"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + /** @description CUSTODY_UNCONFIGURED — bindings/flag absent */ + 503: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + engineCapabilities: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The capability contract */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + }; + }; + gpuStatus: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Plane status */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + }; + }; + gpuInfer: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + model?: string; + input?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description The job receipt */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + }; + }; + accessibilityStudio: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + acp: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + acuity: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + aegis: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + aes67: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + agenticMedia: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + agents: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + ai: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + analytics: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + apiGateway: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + archive: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + argus: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + audienceEngagement: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + audioMastering: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + auth: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + autopilot: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + behavioralIntelligence: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + benchmark: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + billing: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + bmd: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + bridge: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + broadcast: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + cameraControl: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + cameras: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + campus: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + challenge: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + chapters: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + ci: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + cloudSwitcher: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + companion: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + competitiveIntel: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + compliance: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + connect: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + cookieConsent: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + cost: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + creator: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + creatorEconomy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + creatorStorefront: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + crest: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + cro: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + dante: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + dataExchange: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + decode: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + director: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - Voice: { - id?: string; - name?: string; - description?: string; - /** Format: uri */ - previewUrl?: string; - category?: string; - labels?: { - [key: string]: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; }; }; - VoiceGeneration: { - id?: string; - voiceId?: string; - text?: string; - status?: components["schemas"]["JobStatus"]; - /** Format: uri */ - audioUrl?: string; - alignment?: components["schemas"]["VoiceAlignment"]; - duration?: number; - characterCount?: number; - model?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @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. */ - VoiceAlignment: { - characters: string[]; - character_start_times_seconds: number[]; - character_end_times_seconds: number[]; + }; + discovery: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - /** @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. */ - VoiceSynthesisInline: { - /** - * Format: byte - * @description Base64-encoded audio payload (container/codec per `outputFormat`). - */ - audio_base64: string; - alignment?: components["schemas"]["VoiceAlignment"]; - /** @description Audio container/codec of the decoded bytes (e.g. mp3_44100_128). */ - format?: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - VoiceGenerateRequest: { - voiceId: string; - text: string; - /** @default 0.5 */ - stability: number; - /** @default 0.75 */ - similarityBoost: number; - /** @default 0 */ - style: number; - /** @default eleven_multilingual_v2 */ - model: string; - /** @default mp3_44100_128 */ - outputFormat: string; - /** - * @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. - * @default false - */ - timestamps: boolean; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - VoiceCloneRequest: { - name: string; - audioFiles: string[]; - description?: string; - labels?: { - [key: string]: string; + }; + dispatch: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; }; }; - CaptionJob: { - id?: string; - videoId?: string; - sourceLanguage?: string; - targetLanguages?: string[]; - status?: components["schemas"]["JobStatus"]; - progress?: number; - outputs?: { - [key: string]: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - errorMessage?: string; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - CaptionJobCreate: { - videoId: string; - /** @default en */ - sourceLanguage: string; - targetLanguages?: string[]; - /** @default default */ - style: string; - /** @default false */ - speakerLabels: boolean; + }; + dmca: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + dsar: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + dub: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - Chapter: { - id?: string; - videoId?: string; - title?: string; - description?: string; - startTime?: number; - endTime?: number; - /** Format: uri */ - thumbnailUrl?: string; + }; + echo: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - ChapterCreate: { - title: string; - description?: string; - startTime: number; - endTime: number; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - ChapterDetectRequest: { - /** @default 30 */ - minDuration: number; - maxChapters?: number; - /** @default true */ - includeDescriptions: boolean; - /** @default true */ - includeThumbnails: boolean; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - EditorProject: { - id?: string; - name?: string; - description?: string; - status?: string; - duration?: number; - resolution?: string; - frameRate?: number; - /** Format: uri */ - thumbnailUrl?: string; - /** Format: uri */ - exportUrl?: string; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + }; + edge: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - EditorProjectCreate: { - name: string; - description?: string; - /** @default 1920x1080 */ - resolution: string; - /** @default 30 */ - frameRate: number; - /** @default 16:9 */ - aspectRatio: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - EditorProjectUpdate: { - name?: string; - description?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - ExportRequest: { - /** - * @default mp4 - * @enum {string} - */ - format: "mp4" | "webm" | "mov"; - resolution?: string; - /** - * @default high - * @enum {string} - */ - quality: "low" | "medium" | "high" | "ultra"; + }; + embeddings: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - ExportJob: { - id?: string; - status?: components["schemas"]["JobStatus"]; - progress?: number; - /** Format: uri */ - outputUrl?: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - PhoneLine: { - id?: string; - number?: string; - name?: string; - status?: string; - capabilities?: string[]; - monthlyCost?: number; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - PhoneLineProvision: { - areaCode?: string; - /** @default US */ - country: string; - capabilities?: ("voice" | "sms" | "mms" | "fax")[]; - name?: string; + }; + encode: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - Call: { - id?: string; - lineId?: string; - /** @enum {string} */ - direction?: "inbound" | "outbound"; - fromNumber?: string; - toNumber?: string; - status?: string; - duration?: number; - /** Format: uri */ - recordingUrl?: string; - transcript?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - CallCreate: { - fromLineId: string; - toNumber: string; - /** @default false */ - record: boolean; - /** @default false */ - transcribe: boolean; - /** Format: uri */ - webhookUrl?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - CollabRoom: { - id?: string; - name?: string; - /** @enum {string} */ - type?: "video" | "audio" | "whiteboard" | "screen"; - /** @enum {string} */ - status?: "waiting" | "active" | "ended"; - maxParticipants?: number; - currentParticipants?: number; - /** Format: date-time */ - scheduledStart?: string; - /** Format: uri */ - joinUrl?: string; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + }; + engagement: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - CollabRoomCreate: { - name: string; - /** @enum {string} */ - type: "video" | "audio" | "whiteboard" | "screen"; - /** @default 10 */ - maxParticipants: number; - /** Format: date-time */ - scheduledStart?: string; - settings?: Record; + }; + enhance: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - PodcastShow: { - id?: string; - name?: string; - description?: string; - /** Format: uri */ - coverUrl?: string; - /** Format: uri */ - rssUrl?: string; - category?: string; - language?: string; - explicit?: boolean; - episodeCount?: number; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - PodcastShowCreate: { - name: string; - description?: string; - category?: string; - /** @default en */ - language: string; - /** @default false */ - explicit: boolean; - /** Format: uri */ - coverUrl?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - PodcastEpisode: { - id?: string; - showId?: string; - title?: string; - description?: string; - /** Format: uri */ - audioUrl?: string; - duration?: number; - episodeNumber?: number; - seasonNumber?: number; - /** Format: date-time */ - publishedAt?: string; - status?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + }; + example: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - PodcastEpisodeCreate: { - title: string; - description?: string; - /** Format: uri */ - audioUrl: string; - episodeNumber?: number; - seasonNumber?: number; - /** Format: date-time */ - publishedAt?: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - Enhancement: { - id?: string; - videoId?: string; - /** @enum {string} */ - type?: "upscale" | "denoise" | "stabilize" | "color_correct" | "super_resolution"; - status?: components["schemas"]["JobStatus"]; - progress?: number; - /** Format: uri */ - inputUrl?: string; - /** Format: uri */ - outputUrl?: string; - settings?: Record; - creditsUsed?: number; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - EnhancementCreate: { - videoId: string; - /** @enum {string} */ - type: "upscale" | "denoise" | "stabilize" | "color_correct" | "super_resolution"; - settings?: Record; - /** - * @default normal - * @enum {string} - */ - priority: "low" | "normal" | "high"; + }; + experiments: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - EnhancementPreviewRequest: { - videoId: string; - type: string; - /** @default 0 */ - timestamp: number; - settings?: Record; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - Transcription: { - id?: string; - sourceId?: string; - /** @enum {string} */ - sourceType?: "video" | "audio"; - status?: components["schemas"]["JobStatus"]; - language?: string; - text?: string; - duration?: number; - wordCount?: number; - confidence?: number; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - TranscriptionCreate: { - sourceId: string; - /** @enum {string} */ - sourceType: "video" | "audio"; - language?: string; - /** @default false */ - speakerLabels: boolean; - /** @default false */ - wordTimestamps: boolean; - /** @default true */ - punctuation: boolean; - /** @default default */ - model: string; + }; + fleet: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - SentimentAnalysis: { - id?: string; - sourceId?: string; - /** @enum {string} */ - sourceType?: "video" | "audio" | "text" | "chat"; - status?: components["schemas"]["JobStatus"]; - /** @enum {string} */ - overallSentiment?: "positive" | "negative" | "neutral" | "mixed"; - overallScore?: number; - confidence?: number; - summary?: string; - organizationId?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - SentimentAnalysisCreate: { - sourceId: string; - /** @enum {string} */ - sourceType: "video" | "audio" | "text" | "chat"; - text?: string; - /** @default false */ - includeEmotions: boolean; - /** @default false */ - includeTopics: boolean; - /** @default false */ - includeSummary: boolean; - /** @default false */ - segmentAnalysis: boolean; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - EmotionBreakdown: { - joy?: number; - sadness?: number; - anger?: number; - fear?: number; - surprise?: number; - disgust?: number; - trust?: number; - anticipation?: number; + }; + forecast: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - TopicSentiment: { - topic?: string; - /** @enum {string} */ - sentiment?: "positive" | "negative" | "neutral"; - score?: number; - mentions?: number; - keywords?: string[]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - SearchResult: { - id?: string; - score?: number; - fusedScore?: number; - /** @enum {string} */ - matchType?: "semantic" | "keyword" | "hybrid"; - denseScore?: number; - sparseScore?: number; - metadata?: { - namespace?: string; - title?: string; - text?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - SearchWebHit: { - title?: string; - /** Format: uri */ - url?: string; - highlights?: string; + }; + geo: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - SearchResponse: { - results?: components["schemas"]["SearchResult"][]; - metadata?: { - query?: string; - namespace?: string; - totalResults?: number; - processingTimeMs?: number; - /** @enum {string} */ - searchType?: "hybrid"; - cached?: boolean; - web?: components["schemas"]["SearchWebHit"][]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; }; }; - SearchRequest: { - query: string; - /** - * @default streams - * @enum {string} - */ - namespace: "streams" | "users" | "clips" | "transcripts" | "all"; - /** @default 20 */ - topK: number; - }; - SearchIndexDoc: { - id: string; - /** @enum {string} */ - namespace: "streams" | "users" | "clips" | "transcripts"; - title?: string; - text: string; - metadata?: Record; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - SearchIndexRequest: { - id: string; - /** @enum {string} */ - namespace: "streams" | "users" | "clips" | "transcripts"; - title?: string; - text: string; - metadata?: Record; - docs?: components["schemas"]["SearchIndexDoc"][]; + }; + ghostProducer: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - SearchIndexResponse: { - indexed?: number; - ids?: string[]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - SearchDeleteResponse: { - deleted?: boolean; - id?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - SearchInsightRow: { - query?: string; - term?: string; - count?: number; - previous?: number; + }; + graphicsEngine: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - SearchAnalyticsResponse: { - org?: string; - /** Format: date-time */ - generated_at?: string; - insights?: { - top?: components["schemas"]["SearchInsightRow"][]; - zeroResult?: components["schemas"]["SearchInsightRow"][]; - trending?: components["schemas"]["SearchInsightRow"][]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; }; }; - SearchHighlight: { - field?: string; - snippet?: string; - positions?: { - start?: number; - end?: number; - }[]; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - SearchSuggestion: { - text?: string; - /** @enum {string} */ - type?: "query" | "title" | "tag"; - score?: number; + }; + integrations: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - SearchFacet: { - field?: string; - values?: { - value?: string; - count?: number; - }[]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - /** @description `org` is derived from the caller's authenticated principal, not sent in the body. */ - BraidPublishRequest: { - /** @description Namespace for the published track. Republishing the same ns replaces the prior machine. */ - ns: string; - /** @description Named audio sources to braid into one interleaved multichannel track. Each source needs a `label`/`track` and either a `url` or a `path`. */ - sources: { - label: string; - track: string; - /** Format: uri */ - url?: string; - path?: string; - }[]; - /** @description Braid window size in milliseconds. Defaults to the machine-config default when omitted. */ - windowMs?: number; - /** @description Sample rate for the braided track. Defaults to the machine-config default when omitted. */ - sampleRate?: number; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - BraidPublishResult: { - ns: string; - track: string; - channels: number; - windowMs: number; - objectBytes: number; - machineId: string; - /** @enum {string} */ - status: "starting"; + }; + intel: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - BraidStopResult: { - ns: string; - machineId: string; - /** @enum {string} */ - status: "stopped"; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - /** @description `org` is derived from the caller's authenticated principal, not sent in the body. */ - AvRemuxRequest: { - /** - * Format: uri - * @description Source for local IP video (RTP H.264). - */ - videoUrl: string; - /** - * Format: uri - * @description Source for the separate Dante/AES67 audio track. - */ - audioUrl: string; - /** - * @description Output container for the synchronized stream. - * @enum {string} - */ - container: "mpegts" | "fmp4"; - /** - * Format: uri - * @description Optional presigned destination to PUT the resulting container to. Omitted → returned inline. - */ - outputUrl?: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @description `org` is derived from the caller's authenticated principal, not sent in the body. */ - AvDemuxRequest: { - /** - * Format: uri - * @description Synchronized MPEG-TS or fMP4 container to split back into video + Dante audio. - */ - sourceUrl: string; - /** - * Format: uri - * @description Optional presigned destination for the demuxed RTP H.264 video output. - */ - videoOutputUrl?: string; - /** - * Format: uri - * @description Optional presigned destination for the demuxed Dante/AES67 audio output. - */ - audioOutputUrl?: string; + }; + listen: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - AvTransformResult: { - ok: boolean; - /** @enum {string} */ - container: "mpegts" | "fmp4"; - /** @description Duration of the transformed stream, in seconds — the basis for wave_av_transform_seconds billing. */ - durationSeconds: number; - /** @description Measured audio/video sync offset after alignment, in milliseconds (sub-millisecond target). */ - syncOffsetMs?: number; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - /** - * @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 {string} - */ - RenderTemplate: "slate" | "lowerThird" | "announce" | "stat" | "hero" | "quote" | "backdrop" | "field" | "badge" | "endcard" | "sting" | "ident" | "kinetic" | "ticker" | "countdown" | "receipt" | "code" | "session" | "chart" | "audiogram" | "manifesto" | "changelog"; - /** @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. */ - RenderBrief: { - template: components["schemas"]["RenderTemplate"]; - /** @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. */ - props: { - [key: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @description The delivery envelope (Accept application/json). `sha256` is the determinism receipt. */ - RenderResult: components["schemas"]["RenderResultInline"] | components["schemas"]["RenderResultUrl"]; - RenderResultInline: { - /** @enum {string} */ - delivery: "inline"; - /** @enum {string} */ - format: "mp4"; - /** @description sha256 of the output bytes (determinism receipt). */ - sha256: string; - bytes: number; - /** @enum {string} */ - contentType: "video/mp4"; - /** @description base64 data URL of the output (small MP4s only). */ - dataUrl: string; + }; + live: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - RenderResultUrl: { - /** @enum {string} */ - delivery: "url"; - /** @enum {string} */ - format: "mp4" | "alpha"; - /** @description sha256 of the output bytes (determinism receipt). */ - sha256: string; - bytes: number; - /** @description Signed, single-object, expiring URL on downloads.wave.online. */ - url: string; - /** @description Absolute Unix expiry of the signed URL. */ - expiresAtSec: number; - /** @enum {string} */ - contentType: "video/mp4" | "video/quicktime"; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - /** - * @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 {string} - */ - RenderJobStatus: "queued" | "rendering" | "delivering" | "done" | "error"; - /** @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`. */ - RenderJobView: { - jobId: string; - status: components["schemas"]["RenderJobStatus"]; - /** @description Terminal (done): the signed delivery URL. */ - url?: string; - /** @description Terminal (done): absolute Unix expiry of `url`. */ - expiresAtSec?: number; - /** @description Terminal (done): determinism receipt — sha256 of the output bytes. */ - sha256?: string; - /** @description Terminal (done): output size in bytes. */ - bytes?: number; - /** @description Terminal (done): the billable usage lines this render billed. */ - meters?: { - event?: string; - quantity?: number; - }[]; - /** @description Terminal (error): a typed, client-safe error. */ - error?: { - code: string; - message: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @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. */ - MoqJoinToken: { - /** @description Always `true` on a successful mint. */ - ok: boolean; - /** - * 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. - */ - relayWsUrl: 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. */ - joinToken: string; - /** @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. */ - expiresIn: number; - /** @description The namespace the token is bound to (echoes the path parameter). */ - ns: string; - /** @description The track the token is bound to (echoes the path parameter). */ - track: string; - /** - * @description Derived from the route, never from a client field. - * @enum {string} - */ - role: "publish" | "subscribe"; - /** - * @description The single scope granted by this token — `moq:write` for publish, `moq:read` for subscribe. Least-privilege: a subscribe token cannot publish. - * @enum {string} - */ - scope: "moq:write" | "moq:read"; - /** @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`. */ - protocol?: string; + }; + liveAnnotation: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - /** @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`. */ - X402PaymentRequired: { - /** @description x402 protocol version (currently 1). */ - x402Version: number; - /** @description Short reason, e.g. `payment required`. */ - error: string; - /** @description Payment options; sign one and retry with the `x-payment` header. */ - accepts: components["schemas"]["X402Accepts"][]; - error_detail?: components["schemas"]["Error"]; - /** @description Machine-executable directive for agent callers — a `pay` directive carrying the same `accepts` options. */ - next_action?: { - [key: string]: unknown; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @description One acceptable payment option in an x402 challenge. */ - X402Accepts: { - /** @description Payment scheme, e.g. `exact`. */ - scheme?: string; - /** @description Always `x402`. */ - protocol?: string; - /** @description Settlement network, e.g. `base`. */ - network?: string; - /** @description Amount in the asset's smallest unit, as a decimal string. */ - maxAmountRequired?: string; - /** @description The request path being charged for. */ - resource?: string; - description?: string; - mimeType?: string; - /** @description Destination address for the payment. */ - payTo?: string; - maxTimeoutSeconds?: number; - /** @description Contract address of the settlement asset. */ - asset?: string; - /** @description Scheme-specific metadata (e.g. settlement mode, session id). */ - extra?: { - [key: string]: unknown; + }; + liveCommerce: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; }; }; - PricingManifest: { - slug?: string; - org?: string; - tiers?: { - [key: string]: unknown; - }[]; - createdAt?: string; - updatedAt?: string; - } & { - [key: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @description The resolved fleet 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`. */ - IdentityResolveResponse: components["schemas"]["AgentResolveResponse"] | components["schemas"]["TelephonyResolveResponse"]; - AgentResolveResponse: { - /** @description The resolved fleet agent id — any directory key EXCEPT the telephony service entry */ - agent: string; - identity: components["schemas"]["AgentIdentity"]; + }; + localAi: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - TelephonyResolveResponse: { - /** @constant */ - agent: "telephony"; - identity: components["schemas"]["TelephonyIdentity"]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - /** @description One fleet agent's public directory entry. `key` is a Doppler key NAME (e.g. `AGENTMAIL_API_KEY_OPENCODE`), never a key value — the directory carries no secret material. */ - AgentIdentity: { - /** - * Format: email - * @description The agent's inbox (e.g. `opencode@agents.wave.online`) - */ - email: string; - /** @description Doppler key NAME for the agent's inbox credential (never the value) */ - key: string; - /** @description Owning org (e.g. `wave`) */ - org: string; - /** @description Reachable channels (e.g. `mail`, `paid-rail`, `realtime`) */ - channels: string[]; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; - /** @description The telephony service entry — the one documented variation on the agent shape: plural Doppler key names + E.164 numbers, no email/key. `org` is always present so every identity object carries it. */ - TelephonyIdentity: { - /** @description Owning org (e.g. `wave`) */ - org: string; - /** @description Reachable channels (e.g. `voice`, `sms-blocked-a2p`) */ - channels: string[]; - /** @description E.164 numbers */ - numbers: string[]; - /** @description Doppler key NAMES for the telephony credentials (never values) */ - keys: string[]; + }; + me: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - /** @description 400 envelope for /identity/resolve — `error.code` is one of the documented validation codes, so generated clients can switch on it. */ - IdentityResolveValidationError: { - error: { - /** @enum {string} */ - code: "MISSING_AGENT" | "BAD_AGENT" | "ORG_MISMATCH"; - message: string; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description 404 envelope for /identity/resolve — `error.code` is always UNKNOWN_AGENT; `agent` echoes the requested id. */ - IdentityResolveNotFoundError: { - error: { - /** @enum {string} */ - code: "UNKNOWN_AGENT"; - message: string; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; - /** @description Echo of the requested (unknown) agent id */ - agent?: string; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - responses: { - /** @description Validation error */ - ValidationError: { - headers: { - [name: string]: unknown; - }; + memory: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description Resource not found */ - NotFoundError: { - headers: { - [name: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + mesh: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description Rate limit exceeded */ - RateLimitError: { - headers: { - /** @description Seconds to wait before retrying */ - "Retry-After"?: number; - [name: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + mlvc: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description Authentication required, or the API key / token is invalid or expired. */ - Unauthorized: { - headers: { - [name: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + mobileProducer: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description The key is valid but lacks the scope or entitlement for this operation (e.g. SCOPE_OVERREACH, quota tier exhausted). */ - Forbidden: { - headers: { - [name: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + moderate: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @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. */ - PaymentRequired: { - headers: { - [name: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + monetization: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["X402PaymentRequired"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @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. */ - MoqJoinUnconfigured: { - headers: { - [name: string]: unknown; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + monitoring: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @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. */ - UpstreamError: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - parameters: { - /** - * @description The render job id returned when the render was started asynchronously. - * @example 9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34 - */ - RenderJobIdParam: string; - /** - * @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. - * @example demo-ns - */ - MoqNamespaceParam: string; - /** - * @description MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters. - * @example cam-1 - */ - MoqTrackParam: string; - PageParam: number; - PerPageParam: number; - }; - requestBodies: never; - headers: never; - pathItems: never; -} -export type $defs = Record; -export interface operations { - agentAuthDevice: { + mpp: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description The device grant (codes, verification URI, expiry, poll interval) */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - device_code: string; - user_code: string; - /** - * Format: uri - * @description The approve URL the human opens - */ - verification_uri: string; - /** - * Format: uri - * @description The same URL with the user code prefilled - */ - verification_uri_complete: string; - /** @description Seconds until the device code expires (600) */ - expires_in: number; - /** @description Poll interval in seconds (5) */ - interval: number; + [key: string]: unknown; }; }; }; - /** @description Device authorization not enabled for the app (dashboard toggle) */ - 403: { + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + mux: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - /** @description Upstream auth endpoint unreachable */ - 502: { + }; + }; + mxl: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description Ceremony not configured on this deployment (no app id) */ - 503: { + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + ndi: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - agentAuthToken: { + nvr: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - /** - * @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) - * @enum {string} - */ - grant_type: "urn:ietf:params:oauth:grant-type:device_code" | "device_code"; - device_code: string; - } | { - /** @enum {string} */ - grant_type: "refresh_token"; - refresh_token: string; + [key: string]: unknown; }; }; }; responses: { - /** @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. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - access_token: string; - /** @description Present on first approval and on every refresh exchange (rotation); absent only when the grant is revoked or expired */ - refresh_token?: string; + [key: string]: unknown; }; }; }; - /** @description Invalid grant_type, missing credential for the grant, or the upstream polling protocol error passed through verbatim */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - /** @description Upstream auth endpoint unreachable */ - 502: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; + }; + }; + omt: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; }; }; - /** @description Ceremony not configured on this deployment (no app id) */ - 503: { + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - batchOperations: { + ops: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - operations: { - /** @enum {string} */ - method: "GET" | "HEAD" | "POST" | "PUT" | "PATCH" | "DELETE"; - /** @description An enforced /v1 route */ - path: string; - /** @description The operation's JSON body (mutating methods only) */ - body?: unknown; - }[]; + [key: string]: unknown; }; }; }; responses: { - /** @description Per-operation results */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - operations?: number; - results?: { - ok?: boolean; - status?: number; - /** @description The operation's response body */ - body?: unknown; - }[]; + [key: string]: unknown; }; }; }; - /** @description Invalid batch (operations[] required, 25-op cap) */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + orbit: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; }; }; - /** @description Rate limited (RFC RateLimit headers on the response) */ - 429: { + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - renderVideo: { + organizations: { parameters: { query?: never; - header?: { - /** @description A replayed key returns the original result without re-charging. */ - "Idempotency-Key"?: string; - }; + header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["RenderBrief"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description The rendered video — binary, or a RenderResult envelope under Accept application/json. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "video/mp4": string; - "application/json": components["schemas"]["RenderResult"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 400: components["responses"]["ValidationError"]; - /** @description Payment required — pay the x402 challenge and retry. */ - 402: { - headers: { - /** @description The x402 challenge, including the quoted price. */ - "WWW-Authenticate"?: string; - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + outliers: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; }; }; - /** @description Output too large to return inline and no hosted delivery configured (OUTPUT_TOO_LARGE). */ - 413: { + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - /** @description Content is on the operator deny/takedown list and will not be rendered (CONTENT_BLOCKED). */ - 451: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; }; }; - renderPoll: { + payments: { parameters: { query?: never; header?: never; - path: { - /** - * @description The render job id returned when the render was started asynchronously. - * @example 9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34 - */ - jobId: components["parameters"]["RenderJobIdParam"]; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description The job view. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["RenderJobView"]; + "application/json": { + [key: string]: unknown; + }; }; }; 402: components["responses"]["PaymentRequired"]; - 404: components["responses"]["NotFoundError"]; + 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - /** @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. */ - 503: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; }; }; - renderEvents: { + perception: { parameters: { query?: never; header?: never; - path: { - /** - * @description The render job id returned when the render was started asynchronously. - * @example 9f2c1a7e-4b3d-4c8a-9e21-6f0d5b8a1c34 - */ - jobId: components["parameters"]["RenderJobIdParam"]; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description SSE stream of RenderJobView frames. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "text/event-stream": string; + "application/json": { + [key: string]: unknown; + }; }; }; 402: components["responses"]["PaymentRequired"]; - 404: components["responses"]["NotFoundError"]; + 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; }; }; - listClips: { + pipelines: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - videoId?: string; - status?: components["schemas"]["JobStatus"]; - category?: string; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of clips */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["Clip"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createClip: { + preferences: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["ClipCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Clip created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Clip"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 400: components["responses"]["ValidationError"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - getClip: { + presence: { parameters: { query?: never; header?: never; - path: { - clipId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Clip details */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Clip"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 404: components["responses"]["NotFoundError"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - deleteClip: { + privy: { parameters: { query?: never; header?: never; - path: { - clipId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Clip deleted */ - 204: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; - content?: never; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - updateClip: { + production: { parameters: { query?: never; header?: never; - path: { - clipId: string; - }; + path?: never; cookie?: never; }; requestBody?: { content: { - "application/json": components["schemas"]["ClipUpdate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Clip updated */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Clip"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - detectClips: { + productionGraph: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["ClipDetectRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Detection job started */ - 202: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["DetectionJob"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listVoices: { + productions: { parameters: { - query?: { - category?: "premade" | "cloned" | "professional"; - language?: string; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description List of voices */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - voices?: components["schemas"]["Voice"][]; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - generateSpeech: { + products: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["VoiceGenerateRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @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. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["VoiceSynthesisInline"] | components["schemas"]["VoiceGeneration"]; - "audio/mpeg": string; + "application/json": { + [key: string]: unknown; + }; }; }; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - 502: components["responses"]["UpstreamError"]; }; }; - cloneVoice: { + pulse: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["VoiceCloneRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Voice cloned */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Voice"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listCaptions: { + qrSystem: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - videoId?: string; - status?: components["schemas"]["JobStatus"]; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of caption jobs */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["CaptionJob"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createCaptionJob: { + qualityScorecard: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["CaptionJobCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Caption job created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["CaptionJob"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - getCaptionJob: { + radar: { parameters: { query?: never; header?: never; - path: { - jobId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Caption job details */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["CaptionJob"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - deleteCaptionJob: { + rateLimit: { parameters: { query?: never; header?: never; - path: { - jobId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Caption job deleted */ - 204: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; - content?: never; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - downloadCaptions: { + recommend: { parameters: { - query: { - language: string; - format?: "srt" | "vtt" | "txt" | "json"; - }; + query?: never; header?: never; - path: { - jobId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Caption download */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - /** Format: uri */ - url?: string; - content?: string; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listChapters: { + remotion: { parameters: { query?: never; header?: never; - path: { - videoId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description List of chapters */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - chapters?: components["schemas"]["Chapter"][]; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createChapter: { + renders: { parameters: { query?: never; header?: never; - path: { - videoId: string; - }; + path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["ChapterCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Chapter created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Chapter"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - detectChapters: { + replay: { parameters: { query?: never; header?: never; - path: { - videoId: string; - }; + path?: never; cookie?: never; }; requestBody?: { content: { - "application/json": components["schemas"]["ChapterDetectRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Detection job started */ - 202: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["DetectionJob"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listProjects: { + replayEngine: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - status?: string; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of projects */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["EditorProject"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createProject: { + review: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["EditorProjectCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Project created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["EditorProject"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - getProject: { + rist: { parameters: { query?: never; header?: never; - path: { - projectId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Project details */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["EditorProject"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - deleteProject: { + router: { parameters: { query?: never; header?: never; - path: { - projectId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Project deleted */ - 204: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; - content?: never; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - updateProject: { + routes: { parameters: { query?: never; header?: never; - path: { - projectId: string; - }; + path?: never; cookie?: never; }; requestBody?: { content: { - "application/json": components["schemas"]["EditorProjectUpdate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Project updated */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["EditorProject"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - exportProject: { + rtmp: { parameters: { query?: never; header?: never; - path: { - projectId: string; - }; + path?: never; cookie?: never; }; requestBody?: { content: { - "application/json": components["schemas"]["ExportRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Export started */ - 202: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["ExportJob"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listPhoneLines: { + runtime: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of phone lines */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["PhoneLine"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - provisionPhoneLine: { + sandbox: { parameters: { query?: never; header?: never; @@ -3035,1171 +10989,1253 @@ export interface operations { }; requestBody?: { content: { - "application/json": components["schemas"]["PhoneLineProvision"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Phone line provisioned */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PhoneLine"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listCalls: { + scene: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - lineId?: string; - direction?: "inbound" | "outbound"; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of calls */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["Call"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - makeCall: { + signal: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["CallCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Call initiated */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Call"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listCollabRooms: { + signalGenerator: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - status?: "waiting" | "active" | "ended"; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of rooms */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["CollabRoom"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createCollabRoom: { + signalVerifier: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["CollabRoomCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Room created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["CollabRoom"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - getCollabRoom: { + slidesToVideo: { parameters: { query?: never; header?: never; - path: { - roomId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Room details */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["CollabRoom"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - deleteCollabRoom: { + socialDistribution: { parameters: { query?: never; header?: never; - path: { - roomId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; - responses: { - /** @description Room deleted */ - 204: { - headers: { - [name: string]: unknown; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; }; - content?: never; }; }; - }; - listPodcastShows: { - parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; responses: { - /** @description Paginated list of shows */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["PodcastShow"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createPodcastShow: { + sportsData: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["PodcastShowCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Show created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PodcastShow"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listPodcastEpisodes: { + srt: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - }; + query?: never; header?: never; - path: { - showId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of episodes */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["PodcastEpisode"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createPodcastEpisode: { + st2110: { parameters: { query?: never; header?: never; - path: { - showId: string; - }; + path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["PodcastEpisodeCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Episode created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PodcastEpisode"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listEnhancements: { + stream: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - type?: "upscale" | "denoise" | "stabilize" | "color_correct" | "super_resolution"; - status?: components["schemas"]["JobStatus"]; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of enhancements */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["Enhancement"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createEnhancement: { + streamRouter: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["EnhancementCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Enhancement created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Enhancement"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - previewEnhancement: { + streamdeck: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["EnhancementPreviewRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Preview generated */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - /** Format: uri */ - beforeUrl?: string; - /** Format: uri */ - afterUrl?: string; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listTranscriptions: { + streaming: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - status?: components["schemas"]["JobStatus"]; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of transcriptions */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["Transcription"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createTranscription: { + streams: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["TranscriptionCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Transcription created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Transcription"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - getTranscription: { + studio: { parameters: { query?: never; header?: never; - path: { - transcriptionId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Transcription details */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Transcription"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - deleteTranscription: { + studioAutomation: { parameters: { query?: never; header?: never; - path: { - transcriptionId: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Transcription deleted */ - 204: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; - content?: never; + content: { + "application/json": { + [key: string]: unknown; + }; + }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - listSentimentAnalyses: { + switcher: { parameters: { - query?: { - page?: components["parameters"]["PageParam"]; - perPage?: components["parameters"]["PerPageParam"]; - status?: components["schemas"]["JobStatus"]; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Paginated list of analyses */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PaginatedResponse"] & { - data?: components["schemas"]["SentimentAnalysis"][]; + "application/json": { + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - createSentimentAnalysis: { + tempo: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["SentimentAnalysisCreate"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Analysis created */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SentimentAnalysis"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - analyzeText: { + transcode: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - text: string; - /** @default false */ - includeEmotions?: boolean; - /** @default false */ - includeTopics?: boolean; + [key: string]: unknown; }; }; }; responses: { - /** @description Analysis result */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - /** @enum {string} */ - sentiment?: "positive" | "negative" | "neutral"; - score?: number; - confidence?: number; - emotions?: components["schemas"]["EmotionBreakdown"]; - topics?: components["schemas"]["TopicSentiment"][]; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - search: { + twilio: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["SearchRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Ranked results + metadata (metered wave_search_queries) */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SearchResponse"]; - }; - }; - /** @description Invalid request (bad body/query/namespace/topK) */ - 400: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Per-org rate limit exceeded */ - 429: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Search plane unconfigured */ - 503: { - headers: { - [name: string]: unknown; + "application/json": { + [key: string]: unknown; + }; }; - content?: never; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - searchIndex: { + unsubscribe: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["SearchIndexRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Indexed count + ids */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SearchIndexResponse"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - searchDelete: { + usage: { parameters: { - query: { - namespace: "streams" | "users" | "clips" | "transcripts"; - }; + query?: never; header?: never; - path: { - id: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Deleted flag + id */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SearchDeleteResponse"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - searchAnalytics: { + usbRelay: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Insight receipt */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["SearchAnalyticsResponse"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - realtimeConnect: { + vault: { parameters: { - query: { - /** @description Namespaced channel id, e.g. `stream:abc`, `room:xyz`. */ - channel: string; - /** @description Member id to present as (defaults to the caller's key prefix). */ - as?: string; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; - responses: { - /** @description Switching Protocols — WebSocket established. */ - 101: { - headers: { - [name: string]: unknown; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; }; - content?: never; }; - /** @description Authentication required */ - 401: { + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; - content?: never; - }; - /** @description Upgrade required (not a WebSocket request) */ - 426: { - headers: { - [name: string]: unknown; + content: { + "application/json": { + [key: string]: unknown; + }; }; - content?: never; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - realtimePublish: { + videoGen: { parameters: { query?: never; header?: never; - path: { - channel: string; - }; + path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - /** @description Event name, e.g. `caption.cue`, `sentiment.tick`, `clip.created`, `stream.started`. */ - event: string; - /** @description Arbitrary JSON payload for the event. */ - data?: unknown; + [key: string]: unknown; }; }; }; responses: { - /** @description Published */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - ok?: boolean; - /** @description Number of subscribers the event reached */ - delivered?: number; + [key: string]: unknown; }; }; }; - /** @description Authentication required */ - 401: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - realtimePresence: { + viewer: { parameters: { query?: never; header?: never; - path: { - channel: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Presence list */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - channel?: string; - members?: { - id?: string; - }[]; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - realtimeHistory: { + virtualStudio: { parameters: { - query?: { - limit?: number; - }; + query?: never; header?: never; - path: { - channel: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Recent events */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - channel?: string; - events?: Record[]; + [key: string]: unknown; }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - publishBraidAudio: { + vision: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["BraidPublishRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Braid machine starting */ - 201: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["BraidPublishResult"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 400: components["responses"]["ValidationError"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; - /** @description Per-org concurrency or creation-rate limit exceeded. */ - 429: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - /** @description Braid publish unavailable — the worker is not provisioned for on-demand publish. */ - 501: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; + 429: components["responses"]["RateLimitError"]; }; }; - stopBraidAudio: { + visualProgramming: { parameters: { query?: never; header?: never; - path: { - ns: string; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Braid machine stopped */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["BraidStopResult"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; - /** @description No live braid machine for this namespace. */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - /** @description Braid publish unavailable — the worker is not provisioned for on-demand publish. */ - 501: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; + 429: components["responses"]["RateLimitError"]; }; }; - avRemux: { + visualQa: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["AvRemuxRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Muxed container stream — binary, or an AvTransformResult envelope under Accept application/json. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "video/mp2t": string; - "application/json": components["schemas"]["AvTransformResult"]; - }; - }; - 400: components["responses"]["ValidationError"]; - /** @description Payment required — pay the x402 challenge and retry. */ - 402: { - headers: { - /** @description The x402 challenge, including the quoted price. */ - "WWW-Authenticate"?: string; - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; - /** @description AV mux/demux unavailable — the spoke is not provisioned (AV_ORIGIN unset). */ - 501: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; + 429: components["responses"]["RateLimitError"]; }; }; - avDemux: { + vod: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { - "application/json": components["schemas"]["AvDemuxRequest"]; + "application/json": { + [key: string]: unknown; + }; }; }; responses: { - /** @description Demux result — routed IP-video + Dante sink status. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["AvTransformResult"]; - }; - }; - 400: components["responses"]["ValidationError"]; - /** @description Payment required — pay the x402 challenge and retry. */ - 402: { - headers: { - /** @description The x402 challenge, including the quoted price. */ - "WWW-Authenticate"?: string; - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; - /** @description AV mux/demux unavailable — the spoke is not provisioned (AV_ORIGIN unset). */ - 501: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Error"]; - }; - }; + 429: components["responses"]["RateLimitError"]; }; }; - mintMoqPublishToken: { + volumetric: { parameters: { query?: never; - header?: { - /** @description Optional declared origin protocol for billing (e.g. `moq`). Ignored unless recognized and authorized for this org; never rejects the mint. */ - "x-wave-declare-protocol"?: string; - }; - path: { - /** - * @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. - * @example demo-ns - */ - ns: components["parameters"]["MoqNamespaceParam"]; - /** - * @description MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters. - * @example cam-1 - */ - track: components["parameters"]["MoqTrackParam"]; - }; + header?: never; + path?: never; cookie?: never; }; - requestBody?: never; - responses: { - /** @description Join-token minted. Served `cache-control: no-store` — never cache or log `joinToken`. */ - 200: { - headers: { - /** @description Always `no-store` — the response carries a short-lived bearer token. */ - "Cache-Control"?: string; - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["MoqJoinToken"]; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; }; - }; - /** @description `MOQ_JOIN_BAD_RESOURCE` — `ns` or `track` does not match `^[a-z0-9-]{1,64}$`. */ - 400: { + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 401: components["responses"]["Unauthorized"]; 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - 503: components["responses"]["MoqJoinUnconfigured"]; }; }; - mintMoqSubscribeToken: { + waveConsole: { parameters: { query?: never; header?: never; - path: { - /** - * @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. - * @example demo-ns - */ - ns: components["parameters"]["MoqNamespaceParam"]; - /** - * @description MoQ track name within the namespace. Lowercase alphanumeric and dashes, 1–64 characters. - * @example cam-1 - */ - track: components["parameters"]["MoqTrackParam"]; - }; + path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Join-token minted. Served `cache-control: no-store` — never cache or log `joinToken`. */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { - /** @description Always `no-store` — the response carries a short-lived bearer token. */ - "Cache-Control"?: string; [name: string]: unknown; }; content: { - "application/json": components["schemas"]["MoqJoinToken"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description `MOQ_JOIN_BAD_RESOURCE` — `ns` or `track` does not match `^[a-z0-9-]{1,64}$`. */ - 400: { + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + waveNode: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 401: components["responses"]["Unauthorized"]; 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; - 503: components["responses"]["MoqJoinUnconfigured"]; }; }; - identityResolve: { + waveSdk: { parameters: { - query: { - /** @description Fleet agent id (lowercase, e.g. `opencode`, `claude`, `telephony`) */ - agent: string; - /** @description Optional tenancy self-assertion; must equal the authenticated principal's org */ - org?: string; - }; + query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description The resolved directory entry */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["IdentityResolveResponse"]; + "application/json": { + [key: string]: unknown; + }; }; }; - /** @description Missing/bad agent id, or org self-assertion mismatch (MISSING_AGENT / BAD_AGENT / ORG_MISMATCH) */ - 400: { + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; + }; + }; + waveTokens: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["IdentityResolveValidationError"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; - /** @description Well-formed but unknown agent id (UNKNOWN_AGENT) */ - 404: { + 429: components["responses"]["RateLimitError"]; + }; + }; + webrtc: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["IdentityResolveNotFoundError"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; 429: components["responses"]["RateLimitError"]; }; }; - pricingManifestsList: { + whep: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description The org's manifests */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - org: string; - manifests: components["schemas"]["PricingManifest"][]; + [key: string]: unknown; }; }; }; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - pricingManifestsCreate: { + whip: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - slug: string; - tiers: { - [key: string]: unknown; - }[]; + [key: string]: unknown; }; }; }; responses: { - /** @description The upserted manifest */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["PricingManifest"]; + "application/json": { + [key: string]: unknown; + }; }; }; - 400: components["responses"]["ValidationError"]; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - custodyOperation: { + workflowEngine: { parameters: { query?: never; header?: never; - path: { - /** @description The custody operation */ - op: "grant" | "revoke" | "inspect" | "exercise"; - }; + path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - grantId: string; - provider?: string; - scopes?: string[]; - ttlSeconds?: number; + [key: string]: unknown; }; }; }; responses: { - /** @description The operation receipt (metadata only — never a secret field) */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; @@ -4210,30 +12246,58 @@ export interface operations { }; }; }; - 400: components["responses"]["ValidationError"]; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; - /** @description CUSTODY_UNCONFIGURED — bindings/flag absent */ - 503: { + 429: components["responses"]["RateLimitError"]; + }; + }; + x402: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + responses: { + /** @description Capability response (draft — shape not yet published). */ + 200: { headers: { [name: string]: unknown; }; content: { - "application/json": components["schemas"]["Error"]; + "application/json": { + [key: string]: unknown; + }; }; }; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - engineCapabilities: { + zeroTrustVault: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description The capability contract */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; @@ -4244,20 +12308,27 @@ export interface operations { }; }; }; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - gpuStatus: { + zoom: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody?: never; + requestBody?: { + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; responses: { - /** @description Plane status */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; @@ -4268,29 +12339,27 @@ export interface operations { }; }; }; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; - gpuInfer: { + zoomIntegration: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; - requestBody: { + requestBody?: { content: { "application/json": { - model?: string; - input?: { - [key: string]: unknown; - }; + [key: string]: unknown; }; }; }; responses: { - /** @description The job receipt */ + /** @description Capability response (draft — shape not yet published). */ 200: { headers: { [name: string]: unknown; @@ -4301,8 +12370,9 @@ export interface operations { }; }; }; - 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; 403: components["responses"]["Forbidden"]; + 429: components["responses"]["RateLimitError"]; }; }; } diff --git a/openapi.yaml b/openapi.yaml index e865763..09d6f7e 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -21,7 +21,7 @@ info: ## Errors All errors return the normalized WAVE envelope `{ "error": { "code", "message" } }`, optionally enriched with `details`, `suggestions`, `did_you_mean`, and `doc_url`. - version: 1.0.0 + version: 1.1.0 contact: name: WAVE Developer Support url: https://wave.online/developers @@ -109,7 +109,7 @@ tags: 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 in wave-moq-edge#114. + 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. @@ -120,9 +120,637 @@ tags: Brief renders to the same bytes on any host. Reference renderer is source-available (BSL). - name: Identity description: >- - Fleet agent directory — resolve a WAVE agent id to its public channel map (email, Doppler - key NAME, org, channels). Read-only; public-directory data only, never secret material. + 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: >- + WAVE analytics API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE billing API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE cameras API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE live API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE moderate API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE productions API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE streams API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: >- + WAVE usage API — priced capability surface documented from the live gateway + skills index; the request/response shape is not yet published (draft). + - 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: @@ -811,12 +1439,23 @@ paths: content: type: string - # Chapters API + # Chapters API — the nested /videos/{videoId}/chapters* shape below is DEPRECATED: verified + # 2026-09-02 against the live gateway, both paths return 403 ROUTE_NOT_MAPPED (fail-closed, + # "this path and method are not part of the WAVE API"). The gateway's live-priced Chapters + # capability is the flat `/chapters` operation added further down this tag; keep both + # documented (one dead, one live) until the nested shape is either wired up or removed — + # see CHANGELOG.md. /videos/{videoId}/chapters: get: tags: [Chapters] summary: List chapters for a video operationId: listChapters + deprecated: true + x-status: unrouted + description: > + DEPRECATED — unrouted. The live gateway returns 403 ROUTE_NOT_MAPPED for this path; + it is not part of the callable WAVE API. Use `GET /chapters` (the live-priced + capability) instead. parameters: - name: videoId in: path @@ -839,6 +1478,12 @@ paths: tags: [Chapters] summary: Create a chapter operationId: createChapter + deprecated: true + x-status: unrouted + description: > + DEPRECATED — unrouted. The live gateway returns 403 ROUTE_NOT_MAPPED for this path; + it is not part of the callable WAVE API. Use `POST /chapters` (the live-priced + capability) instead. parameters: - name: videoId in: path @@ -864,6 +1509,12 @@ paths: tags: [Chapters] summary: Start AI chapter detection operationId: detectChapters + deprecated: true + x-status: unrouted + description: > + DEPRECATED — unrouted. The live gateway returns 403 ROUTE_NOT_MAPPED for this path; + it is not part of the callable WAVE API. Use `POST /chapters` (the live-priced + capability) instead. parameters: - name: videoId in: path @@ -1999,12 +2650,12 @@ paths: /identity/resolve: get: tags: [Identity] - summary: Resolve a WAVE fleet agent id to its public channel map + summary: Resolve a WAVE agent id to its public channel map operationId: identityResolve description: | - Gateway-native read pane (identity-fabric E1). Returns the agent's public directory entry: - email, Doppler key NAME (never a key value), org, and channels. The data is the - agent-identity-fabric SSOT embedded at the gateway — public-directory data only. + Gateway-native read pane. Returns the agent's public directory entry: + email, credential key name (never a credential value), org, and channels. The data is + public-directory data only. Tenancy is the authenticated principal; an optional `org` query param is a self-assertion that must match the principal (a mismatch is a 400 ORG_MISMATCH). Requires the @@ -2012,13 +2663,13 @@ paths: scope that gates Stripe verification sessions). The one documented response variation is the `telephony` service entry, whose identity - carries `org`/`channels`/`numbers`/`keys` (plural Doppler key names + E.164 numbers) + carries `org`/`channels`/`numbers`/`keys` (plural credential key names + E.164 numbers) instead of `email`/`key` — see the oneOf success schema. parameters: - name: agent in: query required: true - description: Fleet agent id (lowercase, e.g. `opencode`, `claude`, `telephony`) + description: Agent id (lowercase, e.g. `opencode`, `claude`, `telephony`) schema: { type: string, pattern: '^[a-z0-9-]{1,64}$' } - name: org in: query @@ -2224,14 +2875,7291 @@ paths: '403': $ref: '#/components/responses/Forbidden' -components: - securitySchemes: - BearerAuth: - type: http - scheme: bearer - bearerFormat: API Key - description: | - API key authentication. Get your API key from the WAVE Developer Portal. + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `accessibility-studio:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `acp:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `acuity:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `aegis:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `aes67:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `agentic-media:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `agents:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `ai:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `analytics:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `api-gateway:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `archive:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `argus:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `audience-engagement:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `audio-mastering:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `auth:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `autopilot:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `behavioral-intelligence:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `benchmark:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /billing: + post: + tags: [Billing] + operationId: billing + summary: WAVE billing API + x-schema-status: draft + x-skill-url: https://gateway.wave.online/.well-known/wave-skills/billing.json + description: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `billing:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 billing; a flat per-call gate, not necessarily the metered rate. + security: + - bearerWithScopes: [billing: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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `bmd:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `bridge:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `broadcast:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `camera-control:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /cameras: + post: + tags: [Cameras] + operationId: cameras + summary: WAVE cameras API + x-schema-status: draft + x-skill-url: https://gateway.wave.online/.well-known/wave-skills/cameras.json + description: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `cameras:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 cameras; a flat per-call gate, not necessarily the metered rate. + security: + - bearerWithScopes: [cameras: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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `campus:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `challenge:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `chapters:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `ci:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `cloud-switcher:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `companion:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `competitive-intel:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `compliance:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `connect:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `cookie-consent:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `cost:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `creator:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `creator-economy:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `creator-storefront:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `crest:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `cro:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `dante:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `data-exchange:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `decode:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `director:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `discovery:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `dispatch:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `dmca:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `dsar:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `dub:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `echo:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `edge:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `embeddings:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `encode:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `engagement:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `enhance:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `example:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `experiments:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `fleet:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `forecast:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `geo:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `ghost-producer:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `graphics-engine:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `integrations:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `intel:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `listen:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `captions:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `live-annotation:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `live-commerce:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `local-ai:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `me:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `memory:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `mesh:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `mlvc:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `mobile-producer:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /moderate: + post: + tags: [Moderate] + operationId: moderate + summary: WAVE moderate API + x-schema-status: draft + x-skill-url: https://gateway.wave.online/.well-known/wave-skills/moderate.json + description: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `moderate:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 moderate; a flat per-call gate, not necessarily the metered rate. + security: + - bearerWithScopes: [moderate: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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `monetization:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `monitoring:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `mpp:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `mux:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `mxl:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `ndi:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `nvr:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `omt:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `ops:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `orbit:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `organizations:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `outliers:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `payments:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `perception:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `pipelines:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `preferences:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `presence:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `privy:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `production:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `production-graph:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /productions: + post: + tags: [Productions] + operationId: productions + summary: WAVE productions API + x-schema-status: draft + x-skill-url: https://gateway.wave.online/.well-known/wave-skills/productions.json + description: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `productions:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 productions; a flat per-call gate, not necessarily the metered rate. + security: + - bearerWithScopes: [productions: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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `products:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `pulse:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `qr-system:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `quality-scorecard:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `radar:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `rate-limit:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `recommend:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `remotion:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `renders:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `replay:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `replay-engine:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `review:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `rist:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `router:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `routes:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `rtmp:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `runtime:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `sandbox:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `scene:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `signal:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `signal-generator:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `signal-verifier:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `slides-to-video:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `social-distribution:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `sports-data:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `srt:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `st2110:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `stream:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `streams:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `streamdeck:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `streaming:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /streams: + post: + tags: [Streams] + operationId: streams + summary: WAVE streams API + x-schema-status: draft + x-skill-url: https://gateway.wave.online/.well-known/wave-skills/streams.json + description: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `streams:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 streams; 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `studio:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `studio-automation:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `switcher:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `tempo:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `transcode:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `twilio:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `unsubscribe:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /usage: + post: + tags: [Usage] + operationId: usage + summary: WAVE usage API + x-schema-status: draft + x-skill-url: https://gateway.wave.online/.well-known/wave-skills/usage.json + description: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `usage:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 usage; a flat per-call gate, not necessarily the metered rate. + security: + - bearerWithScopes: [usage: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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `usb-relay:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `vault:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `video-gen:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `viewer:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `virtual-studio:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `vision:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `visual-programming:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `visual-qa:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `vod:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `volumetric:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `wave-console:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `wave-node:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `wave-sdk:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `wave-tokens:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `webrtc:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `whep:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `whip:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `workflow-engine:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `x402:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `zero-trust-vault:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `zoom:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + /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: > + Generated from the live gateway skills index (not yet hand-documented). The + route is confirmed live at the gateway; the request/response shape below is a + draft placeholder (`additionalProperties: true`) pending the product team's + schema. Method is POST, inferred from the `zoom-integration:write` scope; the + gateway's paywall is a flat per-product gate, so other verbs may also be live. + 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 + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/RateLimitError' + + +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: API Key + description: | + API key authentication. Get your API key from the WAVE Developer Portal. + bearerWithScopes: + type: oauth2 + description: >- + Bearer API key carrying one or more granted scopes, one per priced capability. + Acquire a scope via the WAVE scope-grant flow described at the acquire URL + published for each capability in the live skills index + (https://gateway.wave.online/.well-known/wave-skills.json); tokens are minted + through the same device-grant flow as `Agent Auth` (`POST /agent/auth/token`). + The scopes below are drawn 1:1 from that live index (2026-09-02 snapshot). + flows: + clientCredentials: + tokenUrl: https://api.wave.online/v1/agent/auth/token + scopes: + accessibility-studio:write: Grants the accessibility-studio capability. + acp:write: Grants the acp capability. + acuity:write: Grants the acuity capability. + aegis:write: Grants the aegis capability. + aes67:write: Grants the aes67 capability. + agentic-media:write: Grants the agentic-media capability. + agents:write: Grants the agents capability. + ai:write: Grants the ai capability. + analytics:write: Grants the analytics capability. + api-gateway:write: Grants the api-gateway capability. + archive:write: Grants the archive capability. + argus:write: Grants the argus capability. + audience-engagement:write: Grants the audience-engagement capability. + audio-mastering:write: Grants the audio-mastering capability. + auth:write: Grants the auth capability. + autopilot:write: Grants the autopilot capability. + behavioral-intelligence:write: Grants the behavioral-intelligence capability. + benchmark:write: Grants the benchmark capability. + billing:write: Grants the billing capability. + bmd:write: Grants the bmd capability. + bridge:write: Grants the bridge capability. + broadcast:write: Grants the broadcast capability. + camera-control:write: Grants the camera-control capability. + cameras:write: Grants the cameras capability. + campus:write: Grants the campus capability. + captions:write: Grants the live capability. + challenge:write: Grants the challenge capability. + chapters:write: Grants the chapters capability. + ci:write: Grants the ci capability. + cloud-switcher:write: Grants the cloud-switcher capability. + companion:write: Grants the companion capability. + competitive-intel:write: Grants the competitive-intel capability. + compliance:write: Grants the compliance capability. + connect:write: Grants the connect capability. + cookie-consent:write: Grants the cookie-consent capability. + cost:write: Grants the cost capability. + creator-economy:write: Grants the creator-economy capability. + creator-storefront:write: Grants the creator-storefront capability. + creator:write: Grants the creator capability. + crest:write: Grants the crest capability. + cro:write: Grants the cro capability. + dante:write: Grants the dante capability. + data-exchange:write: Grants the data-exchange capability. + decode:write: Grants the decode capability. + director:write: Grants the director capability. + discovery:write: Grants the discovery capability. + dispatch:write: Grants the dispatch capability. + dmca:write: Grants the dmca capability. + dsar:write: Grants the dsar capability. + dub:write: Grants the dub capability. + echo:write: Grants the echo capability. + edge:write: Grants the edge capability. + embeddings:write: Grants the embeddings capability. + encode:write: Grants the encode capability. + engagement:write: Grants the engagement capability. + enhance:write: Grants the enhance capability. + example:write: Grants the example capability. + experiments:write: Grants the experiments capability. + fleet:write: Grants the fleet capability. + forecast:write: Grants the forecast capability. + geo:write: Grants the geo capability. + ghost-producer:write: Grants the ghost-producer capability. + graphics-engine:write: Grants the graphics-engine capability. + integrations:write: Grants the integrations capability. + intel:write: Grants the intel capability. + listen:write: Grants the listen capability. + live-annotation:write: Grants the live-annotation capability. + live-commerce:write: Grants the live-commerce capability. + local-ai:write: Grants the local-ai capability. + me:write: Grants the me capability. + memory:write: Grants the memory capability. + mesh:write: Grants the mesh capability. + mlvc:write: Grants the mlvc capability. + mobile-producer:write: Grants the mobile-producer capability. + moderate:write: Grants the moderate capability. + monetization:write: Grants the monetization capability. + monitoring:write: Grants the monitoring capability. + mpp:write: Grants the mpp capability. + mux:write: Grants the mux capability. + mxl:write: Grants the mxl capability. + ndi:write: Grants the ndi capability. + nvr:write: Grants the nvr capability. + omt:write: Grants the omt capability. + ops:write: Grants the ops capability. + orbit:write: Grants the orbit capability. + organizations:write: Grants the organizations capability. + outliers:write: Grants the outliers capability. + payments:write: Grants the payments capability. + perception:write: Grants the perception capability. + pipelines:write: Grants the pipelines capability. + preferences:write: Grants the preferences capability. + presence:write: Grants the presence capability. + privy:write: Grants the privy capability. + production-graph:write: Grants the production-graph capability. + production:write: Grants the production capability. + productions:write: Grants the productions capability. + products:write: Grants the products capability. + pulse:write: Grants the pulse capability. + qr-system:write: Grants the qr-system capability. + quality-scorecard:write: Grants the quality-scorecard capability. + radar:write: Grants the radar capability. + rate-limit:write: Grants the rate-limit capability. + recommend:write: Grants the recommend capability. + remotion:write: Grants the remotion capability. + renders:write: Grants the renders capability. + replay-engine:write: Grants the replay-engine capability. + replay:write: Grants the replay capability. + review:write: Grants the review capability. + rist:write: Grants the rist capability. + router:write: Grants the router capability. + routes:write: Grants the routes capability. + rtmp:write: Grants the rtmp capability. + runtime:write: Grants the runtime capability. + sandbox:write: Grants the sandbox capability. + scene:write: Grants the scene capability. + signal-generator:write: Grants the signal-generator capability. + signal-verifier:write: Grants the signal-verifier capability. + signal:write: Grants the signal capability. + slides-to-video:write: Grants the slides-to-video capability. + social-distribution:write: Grants the social-distribution capability. + sports-data:write: Grants the sports-data capability. + srt:write: Grants the srt capability. + st2110:write: Grants the st2110 capability. + stream:write: Grants the stream capability. + streamdeck:write: Grants the streamdeck capability. + streaming:write: Grants the streaming capability. + streams:write: Grants the stream-router capability. + studio-automation:write: Grants the studio-automation capability. + studio:write: Grants the studio capability. + switcher:write: Grants the switcher capability. + tempo:write: Grants the tempo capability. + transcode:write: Grants the transcode capability. + twilio:write: Grants the twilio capability. + unsubscribe:write: Grants the unsubscribe capability. + usage:write: Grants the usage capability. + usb-relay:write: Grants the usb-relay capability. + vault:write: Grants the vault capability. + video-gen:write: Grants the video-gen capability. + viewer:write: Grants the viewer capability. + virtual-studio:write: Grants the virtual-studio capability. + vision:write: Grants the vision capability. + visual-programming:write: Grants the visual-programming capability. + visual-qa:write: Grants the visual-qa capability. + vod:write: Grants the vod capability. + volumetric:write: Grants the volumetric capability. + wave-console:write: Grants the wave-console capability. + wave-node:write: Grants the wave-node capability. + wave-sdk:write: Grants the wave-sdk capability. + wave-tokens:write: Grants the wave-tokens capability. + webrtc:write: Grants the webrtc capability. + whep:write: Grants the whep capability. + whip:write: Grants the whip capability. + workflow-engine:write: Grants the workflow-engine capability. + x402:write: Grants the x402 capability. + zero-trust-vault:write: Grants the zero-trust-vault capability. + zoom-integration:write: Grants the zoom-integration capability. + zoom:write: Grants the zoom capability. parameters: RenderJobIdParam: @@ -4115,7 +12043,7 @@ components: IdentityResolveResponse: description: > - The resolved fleet directory entry, DISCRIMINATED on the outer `agent` value: + 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`. @@ -4132,7 +12060,7 @@ components: type: string pattern: '^[a-z0-9-]{1,64}$' not: { const: telephony } - description: The resolved fleet agent id — any directory key EXCEPT the telephony service entry + description: The resolved agent id — any directory key EXCEPT the telephony service entry identity: $ref: '#/components/schemas/AgentIdentity' @@ -4150,9 +12078,8 @@ components: type: object additionalProperties: false description: > - One fleet agent's public directory entry. `key` is a Doppler key NAME - (e.g. `AGENTMAIL_API_KEY_OPENCODE`), never a key value — the directory carries - no secret material. + One agent's public directory entry. `key` is a credential key NAME, never a key + value — the directory carries no secret material. required: [email, key, org, channels] properties: email: @@ -4162,7 +12089,7 @@ components: key: type: string pattern: '^[A-Z0-9_]+$' - description: Doppler key NAME for the agent's inbox credential (never the value) + description: Credential key NAME for the agent's inbox credential (never the value) org: type: string description: Owning org (e.g. `wave`) @@ -4176,7 +12103,7 @@ components: additionalProperties: false description: > The telephony service entry — the one documented variation on the agent shape: - plural Doppler key names + E.164 numbers, no email/key. `org` is always present + plural credential key names + E.164 numbers, no email/key. `org` is always present so every identity object carries it. required: [org, channels, numbers, keys] properties: @@ -4194,7 +12121,7 @@ components: keys: type: array items: { type: string, pattern: '^[A-Z0-9_]+$' } - description: Doppler key NAMES for the telephony credentials (never values) + description: Credential key NAMES for the telephony credentials (never values) IdentityResolveValidationError: type: object