Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,14 @@ All notable changes to this project are documented here. The format is based on
- **`capabilities.json`** — registers this repository with the organization's platform
registry for discovery and lifecycle tracking. (#3)

### Documentation

- **docs: rewrite README** — restructured the top-level README (badges, quick start, repo
layout, related-packages table) and refreshed it against the current spec: clarified that
the x402-payable render operations (`renderVideo`, `renderPoll`, `renderEvents`) and the
device-authorization-flow responses are exceptions to the shared Bearer-token/`Error`-envelope
shape, and fixed the error-envelope example to match the `Error` schema's actual field types
(`details` is an object, `suggestions`/`did_you_mean` are arrays, not strings).
### Changed

- **License: Apache-2.0** — the specification and repository now carry the Apache-2.0
Expand Down
78 changes: 63 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,89 @@
# WAVE API specification
# api-spec

WAVE is media infrastructure for the agentic internet: one call shape moves live and on-demand media across every transport, and both kinds of user, people and agents, discover it, call it, and pay for it per call. This repository is the OpenAPI 3.1 specification for that call shape.
<div align="center">

## Overview
**WAVE is media infrastructure for the agentic internet: one call shape moves live and on-demand
media across every transport, and both kinds of user, people and agents, discover it, call it, and
pay for it per call.** This repository is the OpenAPI 3.1 specification for that call shape — 229
documented endpoint paths across 181 tag groups (streaming, production, analytics, voice, captions,
clips, and more), plus generators for client SDKs.

Complete API specification covering 34 API modules: streaming, production, analytics, voice, captions, chapters, clips, phone, collaboration, search, and more.
![kind](https://img.shields.io/badge/kind-openapi--spec-555?style=flat-square) ![domain](https://img.shields.io/badge/domain-api-0a7?style=flat-square) ![format](https://img.shields.io/badge/format-OpenAPI%203.1-85ea2d?style=flat-square) ![visibility](https://img.shields.io/badge/visibility-public-brightgreen?style=flat-square) ![license](https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square)

## Usage
[wave.online](https://wave.online) · [Docs](https://docs.wave.online) · [GitHub](https://github.com/wave-av/api-spec) · [Status](https://wave.online/status)

</div>

---

## What this is

A single-file OpenAPI 3.1 document (`openapi.yaml`) describing the WAVE Enterprise Streaming Platform
API: 229 endpoint paths grouped under 181 tags. It is the source of truth other WAVE packages generate
from — the [`@wave-av/sdk`](https://www.npmjs.com/package/@wave-av/sdk) TypeScript client is built from
this spec.

## Quick start

```bash
# Preview with Redoc
# Preview the spec in a browser (Redoc)
npx @redocly/cli preview openapi.yaml

# Validate
# Lint / validate
npx @redocly/cli lint openapi.yaml

# Generate SDKs
# Generate a client SDK (example: TypeScript fetch client)
npx @openapitools/openapi-generator-cli generate -i openapi.yaml -g typescript-fetch -o ./sdk/typescript
```

## Authentication

All API requests require a Bearer token:
Most documented endpoints require a Bearer token (the x402-payable `/render` operations —
`renderVideo`, `renderPoll`, `renderEvents` — are the exception; they set `security: []` and
authenticate via an x402 payment challenge instead):

```
Authorization: Bearer YOUR_API_KEY
```

Get your API key at [wave.online/developers](https://wave.online/developers).
## Errors

The spec documents a normalized error envelope used across most endpoints (the x402 payment-challenge
and device-authorization-flow responses use their own distinct shapes, noted above and in the spec
itself):

```json
{ "error": { "code": "...", "message": "...", "details": { "field": "..." }, "suggestions": ["..."], "did_you_mean": ["..."], "doc_url": "..." } }
```
Comment thread
yakimoto marked this conversation as resolved.

## Related
List endpoints support `page` / `perPage` pagination, and requests are subject to rate limiting
(responses include a `Retry-After` header when throttled) — both per the spec's top-level description.

- [@wave-av/sdk](https://www.npmjs.com/package/@wave-av/sdk) — TypeScript SDK (34 API modules)
- [@wave-av/adk](https://www.npmjs.com/package/@wave-av/adk) — Agent Developer Kit
- [@wave-av/mcp-server](https://www.npmjs.com/package/@wave-av/mcp-server) — MCP server for AI tools
- [@wave-av/cli](https://www.npmjs.com/package/@wave-av/cli) — Command-line interface
## Repo layout

| Path | What it is |
| --- | --- |
| `openapi.yaml` | The spec itself — 14,039 lines, 229 paths, 181 tags |
| `capabilities.json` | Machine-readable lifecycle metadata (this spec is tagged `ga`, version 3.0.0) |
| `scripts/public-repo-guard` | CI check that keeps this public mirror free of internal-only content |

## Related packages

| Package | Description |
| --- | --- |
| [@wave-av/sdk](https://www.npmjs.com/package/@wave-av/sdk) | TypeScript SDK generated against this spec |
| [@wave-av/adk](https://www.npmjs.com/package/@wave-av/adk) | Agent Developer Kit |
| [@wave-av/mcp-server](https://www.npmjs.com/package/@wave-av/mcp-server) | MCP server exposing WAVE APIs as tools |
| [@wave-av/cli](https://www.npmjs.com/package/@wave-av/cli) | Command-line interface |

## License

Apache-2.0 — see [LICENSE](LICENSE) and [NOTICE](NOTICE).

---

<div align="center">

**Built by [WAVE Online, LLC](https://wave.online)** · [wave.online](https://wave.online) · [Docs](https://docs.wave.online)

</div>
Loading