Quickstart
WAVE has one gateway and three ways in. Pick the one that matches who — or what — is calling.
For people: an API key
- Claim a key at console.wave.online. The same key authenticates every WAVE product; the gateway enforces scope and metering in one place.
- Set it as an environment variable:
export WAVE_API_KEY=wave_sk_live_...
- Confirm the gateway is up. No key required, and nothing is billed:
curl -i https://api.wave.online/health
- Make your first product call.
/v1/clipsis metered — it bills by clip minutes:
curl -H "Authorization: Bearer $WAVE_API_KEY" \
https://api.wave.online/v1/clips
One key authenticates every WAVE product. A live product serves the call; a preview product answers with its preview state until it ships. See which is which at wave.online/products.json.
For agents: MCP
An agent running inside Claude, Cursor, or any MCP-capable client reaches WAVE through the live MCP server rather than raw HTTP:
{
"mcpServers": {
"wave": {
"url": "https://api.wave.online/mcp",
"transport": "http",
"headers": { "Authorization": "Bearer $WAVE_API_KEY" }
}
}
}
The MCP server is a thin protocol adapter over the same gateway, so the key carries the same scope and metering it would over REST. If your client cannot set a custom header, use the environment-variable pattern documented on MCP server instead. See MCP tools for the full tool catalogue.
For autonomous agents: pay per call over x402
An agent with no account and no key can still call WAVE. It sends the request; the gateway answers with a 402 and the exact terms to pay:
curl -s -X POST https://api.wave.online/v1/render \
-H "Content-Type: application/json" -d '{}'
{
"x402Version": 1,
"error": "payment required",
"accepts": [{
"scheme": "exact",
"network": "base",
"maxAmountRequired": "600000",
"resource": "/v1/render",
"payTo": "0x13014b6e42d6cae7d82798c17244b003c431b68c",
"asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
}]
}
The agent signs the accepts[0] authorization, retries with an X-PAYMENT header, and the gateway settles on Base mainnet before serving the request. No signup, no stored card.
The same 402 also carries the terms a second way: a base64-encoded x402 v2 body in the PAYMENT-REQUIRED response header (x402Version: 2, network: "eip155:8453", amount in place of maxAmountRequired). Both describe the same charge; the gateway accepts a retry with either credential header, X-PAYMENT for v1 or PAYMENT-SIGNATURE for v2, so a generic x402 client can use whichever version it already speaks. See Agent commerce for the full challenge-and-settle flow and MPP for the second protocol the gateway accepts alongside x402.
Next
- Agent commerce — how an agent pays for access over x402.
- What WAVE speaks — the transports behind the API.
- API endpoints — every operation, generated from the OpenAPI contract.