# Limits

Faustine enforces the limits on this page. A limit that you can change shows its default and where to change it. The others are fixed.

## Code uploads

These apply to a ZIP uploaded as the code of a Web Agent or of an API. See [Upload a ZIP instead of a repository](https://docs.faustine.ai/web-agents/upload-a-zip/).

| Limit | Value |
| --- | --- |
| Archive size | 500 MB |
| Size after extraction | 2 GB |
| Files and folders in the archive | 200,000 |
| Largest single file | 100 MB |
| `node_modules` inside the archive | 50 MB. Above that the archive is refused. Zip the source without it. |
| Uploaded code stored for a workspace | 5 GB for Web Agents and 5 GB for APIs |
| Time to attach a finished upload to an agent or an API | 24 hours. After that the archive is deleted. |

Faustine does not extract dependency and build folders such as `node_modules`, `.git`, `dist`, `build` and `.next`, so they do not count toward the extracted size.

## Analysis

| Limit | Value |
| --- | --- |
| Reference repositories for a Web Agent | 3 |
| API docs file attached to a Web Agent | 5 MB |
| Services in one API | 20 |

See [Add reference repositories and API docs](https://docs.faustine.ai/web-agents/reference-repositories/) and [Analyze an API made of several services](https://docs.faustine.ai/apis/several-services/).

## Knowledge

These apply to documents uploaded to a Web Agent's knowledge and to Faustine Chat's knowledge. See [Add knowledge from files](https://docs.faustine.ai/web-agents/knowledge-files/).

| Limit | Value |
| --- | --- |
| File types | `.pdf`, `.docx`, `.txt`, `.md` |
| File size | 25 MB |
| Embedding size | 1536 dimensions. The embeddings model you choose has to produce vectors of this size. |

## Web Agent conversations and identity

| Limit | Value |
| --- | --- |
| Messages in one conversation | 500. A longer conversation is refused with a message that tells the user to start a new one. |
| Text in one turn, the new message and the history together | 1 MB. Attachments are not counted. |
| Lifetime of an identity token (`exp` minus the time it was issued) | 24 hours at most. A token without `exp`, or with a longer lifetime, is ignored and the conversation runs as anonymous. |
| Setup code for the Faustine adapter (`fns_…`) | One use, 30 minutes |

See [Identity verification](https://docs.faustine.ai/web-agents/identity-verification/) and [The Faustine adapter for Next.js](https://docs.faustine.ai/web-agents/nextjs-adapter/).

## Gateway requests

Each environment of a gateway sets these in **Policies**. An empty field means the default in this table, which is still enforced. A key or a user can set its own values, and they can only be lower than its environment's. See [Limits and quotas](https://docs.faustine.ai/agent-gateway/limits/).

| Limit | Default | Applies to |
| --- | --- | --- |
| Requests per minute | 600 | Each credential |
| Burst | 100 | Each credential |
| Calls per hour | 10,000 | Each credential |
| Calls per day | 50,000 | Each credential |
| Concurrent calls | 8 | Each credential |
| Request body or MCP arguments | 1 MB | Each request |
| IP allowlist, IP blocklist | 100 entries each | Each environment |

A request over a limit is refused with a reason such as `rate_limit`, `quota`, `concurrency` or `body_too_large`, and with a `Retry-After` header where one applies.

## The run_code sandbox

In Code mode, an AI client runs a script through `run_code`. Each run has these caps. An environment can lower the first three in **Policies**. It cannot raise them. See [Serving modes: Code and Tools](https://docs.faustine.ai/agent-gateway/serving-modes/).

| Limit | Value |
| --- | --- |
| Run time | 30 seconds |
| Memory | 128 MB |
| Operation calls in one run | 200 |
| Size of the result | 1 MB |

## Repeated writes

These apply when an environment deduplicates repeated writes. See [Repeated writes](https://docs.faustine.ai/agent-gateway/repeated-writes/).

| Limit | Value |
| --- | --- |
| Window | 60 seconds by default. From 1 second to 24 hours. |
| Stored response of the first call | 64 KB. A repeat of a write with a larger response is refused with `idempotency_duplicate`. |

## Gateway sign-in

| Limit | Value |
| --- | --- |
| Access token of a gateway user | 1 hour. The client refreshes it. |
| Session of a gateway user | 30 days from sign-in. The person then signs in again. |

## Gateway logs

Each environment sets these in its log settings. See [Set recording and retention](https://docs.faustine.ai/agent-gateway/retention/) and [Redact sensitive fields](https://docs.faustine.ai/agent-gateway/redact-sensitive-fields/).

| Setting | Options | Default |
| --- | --- | --- |
| How long request metadata is kept | 7, 30 or 90 days | 30 days |
| How long recorded payloads are kept | 1, 3, 7 or 30 days | 7 days |
| Recorded size of one payload | 8 KB, 32 KB or 128 KB | 32 KB |
| Temporary payload capture | 15, 30 or 60 minutes | Off |
| Custom redaction rules | Up to 50 | None |
| Operations excluded from recording | Up to 500 | None |

## Custom domains

| Limit | Value |
| --- | --- |
| Live custom domains in a workspace | 1 |
| Domains added in one hour | 10 |
| Time a removed domain stays reserved for the workspace that had it | 30 days |

See [Use a custom domain](https://docs.faustine.ai/agent-gateway/custom-domain/).

## Invitations

| Limit | Value |
| --- | --- |
| Pending invitations in a workspace | 50 |
| Invitations in one send | 20 |
| Lifetime of an invitation link | 7 days |
| Emails for one invitation | 5. After that, copy the link. |
| Time between two emails for the same invitation | 60 seconds |

See [Invite people to your workspace](https://docs.faustine.ai/workspace/invite-people/).

## Next steps

- [Limits and quotas](https://docs.faustine.ai/agent-gateway/limits/): set the limits of a gateway environment and of a credential.
