# API Reference

The WarpStream API allows programatically interacting with various aspects of the WarpStream control plane. Example request / response payloads are provided for different API endpoints.

## Authentication

All API requests should be issued as `POST` requests with JSON payloads, and authentication for all endpoints is managed via the `warpstream-api-key` header. The value should be set to a WarpStream API Key generated in the admin console. Different endpoints accept different key types:

* **Application Keys** can authenticate requests to manage workspace-specific resources such as virtual clusters, topics, ACLs, and pipelines.
* **Agent Keys** can authenticate requests to virtual cluster-specific APIs, scoped to the cluster the Agent Key is associated with.
* **Account Keys** can authenticate requests to manage account-level resources such as workspaces, users, user roles, and invitations.

For more details about the different key types, see [Secrets Overview](https://docs.warpstream.com/warpstream/reference/secrets-overview).
