# ZeroGen API > Generate images and video with every model in ZeroGen from your own servers. - [Introduction](https://docs.zerogen.com/index.md): Generate images and video with every model in ZeroGen from your own servers. - [Quickstart](https://docs.zerogen.com/quickstart.md): Create a generation, wait for it to finish, and read its result. - [SDKs](https://docs.zerogen.com/sdks.md): Call the ZeroGen API from TypeScript or JavaScript with the official library. - [Authentication](https://docs.zerogen.com/authentication.md): Create API keys, choose their scopes, and send them from your servers. - [Build with AI agents](https://docs.zerogen.com/build-with-ai.md): Give your coding agent the ZeroGen API docs and the rules it needs to integrate correctly. - [Models](https://docs.zerogen.com/models.md): Find a model, read the request schema it accepts, and handle deprecations. - [Uploads and URL inputs](https://docs.zerogen.com/uploads.md): Send images, video, and audio as generation inputs, by upload or by URL. - [Test keys](https://docs.zerogen.com/test-keys.md): Rehearse requests, failures, refusals, and delays on placeholder media at no charge. - [Billing](https://docs.zerogen.com/billing.md): Read money fields, how a generation is held and charged, and your organization's balance. - [Errors](https://docs.zerogen.com/errors.md): The error envelope, its stable codes, and when to retry. - [Rate limits](https://docs.zerogen.com/rate-limits.md): Request limits per key and per user, running-generation caps, and how to pace your client. - [Idempotency](https://docs.zerogen.com/idempotency.md): Retry POST requests safely with the Idempotency-Key header. - [Pagination](https://docs.zerogen.com/pagination.md): Page through lists with limit and cursor, and the query string rules every endpoint follows. - [Overview](https://docs.zerogen.com/api-reference/overview.md): Where the endpoint reference lives, and the headers every endpoint shares. - [Read the calling key](https://docs.zerogen.com/api-reference/account/read-the-calling-key.md): The calling API key, its organization and its owner. `scopes` lists what the key can do now: its scopes that the owner's role still allows. - [Read the organization's balance](https://docs.zerogen.com/api-reference/account/read-the-organizations-balance.md): The organization's funds and monthly limits, shared by every member and project. A new generation's quote must fit within `availableMicroUsd`. - [List models](https://docs.zerogen.com/api-reference/models/list-models.md): The models this organization can run, one entry per model and operation. Read a model to get the JSON Schema its requests follow. - [Read a model](https://docs.zerogen.com/api-reference/models/read-a-model.md): One model and the JSON Schema (2020-12) that `POST /generations` validates its requests against. A deprecated model sends `Deprecation` and `Sunset`. - [Quote a generation](https://docs.zerogen.com/api-reference/generations/quote-a-generation.md): Validates and prices a request exactly as create would, and returns the maximum charge create would reserve. Nothing starts and nothing is held. - [List generations](https://docs.zerogen.com/api-reference/generations/list-generations.md): The calling key owner's generations, newest first. - [Create a generation](https://docs.zerogen.com/api-reference/generations/create-a-generation.md): Validates, prices, reserves and starts one generation in a single call. Send `Prefer: wait=N` to hold the response until it ends. Nothing is charged unless every check passes. - [Read a generation](https://docs.zerogen.com/api-reference/generations/read-a-generation.md): One generation and each output's status, asset and error. Send `Prefer: wait=N` to hold the response until it ends. Reads never start or repeat work. - [Cancel a generation](https://docs.zerogen.com/api-reference/generations/cancel-a-generation.md): Stops the generation's unfinished outputs. Outputs a vendor already finished are kept and charged; cancelling a finished generation returns it unchanged. Takes no body. - [Create an upload](https://docs.zerogen.com/api-reference/uploads/create-an-upload.md): Starts an upload into the Library. PUT the file's exact bytes to the returned target, then complete the upload. With `sha256`, an identical file already in the project comes back ready, with nothing to send. - [Read an upload](https://docs.zerogen.com/api-reference/uploads/read-an-upload.md): One of the caller's uploads and, once ready, its Library asset. - [Complete an upload](https://docs.zerogen.com/api-reference/uploads/complete-an-upload.md): Checks the uploaded bytes and makes them a Library asset to use as a generation input. Completing again returns the same asset. Takes no body. ## OpenAPI Specs - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.