# Codzen API > Generate video and images with every Codzen model through one asynchronous API. - [Quickstart](https://docs.codzen.ai/quickstart.md): Create an API key, submit your first generation to https://codzen.ai/api/v1 with curl, and poll it until its output is ready to download. - [Authentication and rate limits](https://docs.codzen.ai/guides/authentication.md): Authenticate every request with a cz_ API key from the console, keep the key on your server, and stay within 300 requests per minute per key and 10 concurrent generations per account. - [Generation lifecycle](https://docs.codzen.ai/guides/generation-lifecycle.md): How a generation moves from queued to processing to succeeded or failed, how to learn when it finishes by polling or webhook, and how to read its outputs. - [Webhooks and signatures](https://docs.codzen.ai/guides/webhooks.md): Get called once a generation finishes instead of polling, verify the Standard Webhooks signature with your webhook signing secret, and handle retries and duplicates. - [Errors](https://docs.codzen.ai/guides/errors.md): The error object, every error type and code with its HTTP status and whether to retry it, and how content_rejected and failed generations are charged. - [Billing](https://docs.codzen.ai/guides/billing.md): How the estimate is held from your balance at submission, how the final cost is settled, why failed generations are free, what the cost fields mean, and what happens when the balance falls below zero. - [Create a generation](https://docs.codzen.ai/api-reference/create-a-generation.md): Submits a generation and returns it, `queued`. Poll `GET /generations/{id}` or pass `webhook_url` to learn when it finishes. The estimate is held from your balance until then. - [Get a generation](https://docs.codzen.ai/api-reference/get-a-generation.md): The generation's current state. A generation of another account is not found. - [List generations](https://docs.codzen.ai/api-reference/list-generations.md): Your generations, newest first, one page at a time. While `has_more` is true, pass the last `id` of a page as `after` to get the next one. - [List models](https://docs.codzen.ai/api-reference/list-models.md): Every model you can call, with the JSON Schema of its `input` and its prices. Needs no API key; rate limited per IP address. - [Get the balance](https://docs.codzen.ai/api-reference/get-the-balance.md): Your account balance. It can be negative after a final cost exceeds its estimate; new generations then fail with `insufficient_balance` until you top up. - [Generation completed](https://docs.codzen.ai/api-reference/generation-completed.md): Sent to the `webhook_url` of a generation once it succeeds or fails, with the same body as `GET /generations/{id}`. Delivered at least once and retried with exponential backoff for 24 hours. Verify the signature before trusting the body. - [Models](https://docs.codzen.ai/models.md): Every model you can call, with its slug and output type. Each links to its model page for its input fields. ## OpenAPI Specs - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.