> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zerogen.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Generate images, video, and speech with every model in ZeroGen from your own servers.

The ZeroGen API lets your servers generate images, video, and speech with the
models in ZeroGen. You name a model, send a prompt and inputs, and ZeroGen
validates, prices, and runs the request against your organization's balance and
limits. That request is a run, which ZeroGen's app calls a generation. Outputs
are saved to your organization's Library, where your team sees them in ZeroGen
and your servers can download them.

> [!NOTE]
>
> The API is in private beta and is enabled per organization. If every request
> returns `403` with the message "The ZeroGen API is not enabled for this
> organization.", contact ZeroGen to join the beta.

## What you can do

With the API, you can:

* List the models your organization can run, each with the JSON Schema that
  its requests follow.
* Quote a run before you start it.
* Create a run in one call, wait for it to finish, read it, list your runs,
  and cancel one.
* Upload files, or pass `https` URLs as inputs.
* Browse and organize your Library: search, download, rename, and favorite
  assets, read what each was made from, file them in folders, manage labels,
  and read naming presets and skills. These endpoints need the `library:read`
  scope to read and `library:organize` to change anything.
* Read your key's own access, and your organization's balance and monthly
  limits.
* Rehearse all of it with a test key, on placeholder media, at no charge.

To call the API from TypeScript, JavaScript, or Python, use an official
[SDK](https://docs.zerogen.com/developers/sdks.md). The SDKs cover models, runs, and uploads; call the
Library endpoints over REST.

## Base URL

Send every request to the following base URL over HTTPS:

```text theme={null}
https://api.zerogen.com/v1
```

Send request bodies as JSON with `Content-Type: application/json`. A request
body can be up to 128 KiB.

## Conventions

* Field names are camelCase.
* Money is an integer number of micro-USD, in fields whose names end in
  `MicroUsd`. One US dollar is 1,000,000 micro-USD. For details, see
  [Billing](https://docs.zerogen.com/developers/billing.md).
* Timestamps are RFC 3339 strings in UTC, such as `2026-10-21T17:04:05.000Z`.
* Every response carries a `Request-Id` header, such as
  `req_8d0f3c2b9a7e4f6d8c1b2a3e4f5d6c7b`. Include it when you contact ZeroGen
  about a request.
* Every error uses one envelope. For details, see [Errors](https://docs.zerogen.com/developers/errors.md).

## Versioning

Changes within `/v1` are additive: new endpoints, new optional request fields,
and new response fields, error codes, and enum values. Breaking changes go to a
new version. Write clients that ignore response fields they don't know and that
handle unknown enum values and error codes. ZeroGen announces API changes in
the [changelog](https://zerogen.com/changelog).

## Next steps

> [card] [API quickstart](https://docs.zerogen.com/developers/quickstart.md)
>
> Create your first run and wait for its result.

> [card] [Authentication](https://docs.zerogen.com/developers/authentication.md)
>
> Create an API key and choose its scopes.

> [card] [Test keys](https://docs.zerogen.com/developers/test-keys.md)
>
> Rehearse requests and failures at no charge.

> [card] [Errors](https://docs.zerogen.com/developers/errors.md)
>
> Handle the error envelope and its stable codes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.