Skip to main content
All Kova TTS requests authenticate with an API key in the x-api-key HTTP header. Keys start with kova_sk_.
Kova uses x-api-key, not Authorization: Bearer. The header name is case-insensitive — x-api-key and X-API-KEY both work. Sending Authorization: Bearer <key> returns 401; the header is ignored entirely.

Getting a key

1

Sign in

Open platform.kova.ai and sign in (or sign up).
2

Open the API keys page

3

Create a key

Click Create key, name it (e.g. “production-backend”), and copy the key. You can only view the full key once — store it in your secret manager immediately.

Using the key

Security

  • Never commit keys to source control. Use environment variables or a secret manager.
  • Rotate keys if you suspect compromise. Old keys keep working until you delete them on the dashboard.
  • Use one key per environment / service. Easier to identify what’s spending and to revoke selectively.

On WebSocket connections

The key goes on the handshake, not in a frame after connecting:
A missing, empty, whitespace, or malformed x-api-key is rejected at the handshake with HTTP 403, before the connection is accepted — no frames are exchanged and no audio is generated. A well-formed kova_sk_ key that is revoked or unknown is accepted at the handshake and rejected on first use with {"error": "INVALID_API_KEY"} followed by close code 1008. Browsers can’t set custom handshake headers, so browser clients should use Streaming HTTP or proxy through a backend.

Errors

All three carry an x-request-id response header — log it. See Errors for the complete reference.