# Limits

> Plan quotas and fixed platform limits in APIANT.ai, including request and response sizes, HTTP timeouts, pagination, script data, form uploads, nesting depth, retries, polling intervals and run history retention.

An outbound HTTP request from an app action times out after 30 seconds, and one app action may read at most 64 MiB of vendor responses across all its pages and retries. The tables below list plan quotas, which depend on your plan, and platform limits, which apply to every account.

## Plan quotas

Plan quotas reset on the 1st of each month. Current numbers per plan are on [apiant.ai/pricing](https://apiant.ai/pricing). What happens when each one is reached is on [Plans, usage and billing](/docs/account/plans-and-limits#when-a-quota-is-reached).

| Quota | Counts | Value |
|---|---|---|
| Tasks per month | Each app action that completes successfully | Per [apiant.ai/pricing](https://apiant.ai/pricing) |
| Connections | App connections | Per [apiant.ai/pricing](https://apiant.ai/pricing) |
| Form submissions per month | Each accepted hosted form submission | Per [apiant.ai/pricing](https://apiant.ai/pricing) |
| Assistant credits per month | 20 credits per assistant message | Per [apiant.ai/pricing](https://apiant.ai/pricing) |
| Instant trigger calls per month | Each webhook delivery that starts an automation | Set by plan|
| Web service calls per month | Each synchronous call to a web service URL | Set by plan |
| Active automations | Automations switched on at the same time | Set by plan|
| Run time per execution | Active execution time of one run; time spent paused in a wait, snooze or retry does not count | Set by plan|
| Execution history kept | Days a finished run stays in execution history | Free 7 days, Pro 30 days, Team 90 days, Scale 120 days, Enterprise custom |
| Fastest polling interval | Minimum time between polls of a polling trigger | Set by plan|

## Request and response sizes

| Limit | Value | What happens past it |
|---|---|---|
| Inbound request body (webhook triggers, web services, and links that resume a waiting run) | 32 MiB | The request is refused with HTTP `413` and `request body too large`. |
| One vendor response | 100 MiB | The step fails with a response-cap error. |
| All vendor responses read by one app action (every page, retry and nested call) | 64 MiB | The step fails with an error starting `response too large: exceeded 64 MB total response size for this execution`. |
| File upload on a hosted form, per file | 10 MiB unless the form field sets its own maximum | The form shows "the file is too large" with the maximum. |
| Data passed into a script step | 8 MiB | The script step fails. |
| Value a script step returns | 8 MiB | The script step fails. |

## Timeouts

| Limit | Value |
|---|---|
| Outbound HTTP request from an app action, including TLS handshake and reading the response | 30 seconds |
| TLS handshake on an outbound request | 10 seconds |
| A run's active execution time | Set by plan (see [Plan quotas](#plan-quotas)). A run that exceeds it ends in error and sends an alert; it is not retried. |

## Pagination

An app action that pages through results stops after 1,000 pages unless the action defines its own maximum page count. A connector action you build can set a different maximum. See [Build a connector, action or trigger](/docs/apps/custom-connectors).

## Nesting depth

Calls between automations, subroutines, app actions built from other actions, and AI agent tool calls can nest up to 16 levels deep. The call that would be level 17 fails with an error such as `call_automation: depth 17 exceeds max 16`. The same limit applies when a deploy follows references from one automation to the automations it calls.

## Retries

A run that fails with a retry-eligible error is retried on a fixed schedule: 9 attempts in total, waiting 1 minute, 2 minutes, 5 minutes, 10 minutes, 30 minutes, 1 hour, 2 hours and 4 hours between them. The schedule is the same for every account and cannot be changed per automation. See [Error handling and retries](/docs/automations/error-handling).

## Polling schedules

| Setting | Allowed values |
|---|---|
| Interval in minutes | 1 to 60, raised to your plan's minimum |
| Presets | Hourly, daily |
| Clock-based schedule | A standard 5-field cron expression for a wall-clock time, such as `30 14 * * *` for 14:30 daily, fired in the account's timezone |

A faster interval than your minimum is set to the minimum, and Claude or the assistant reports the change. Clock-based schedules are not raised. See [Polling triggers](/docs/automations/triggers/polling).

## Stored data

| Limit | Value |
|---|---|
| Lookup table entry expiry | 90 days (default), 180 days, 365 days or Never, chosen when the value is saved |
| Lookup table scope | This automation, My account, or Linked accounts |

See [Storing data between runs](/docs/automations/data-storage).

## Execution history retention

A finished run (success, error, halted or missed) is deleted once it is older than your plan's retention period. The cleanup runs once a day. A run that is still running, snoozed or waiting for a form is never deleted, whatever its age. An automation with data storage turned off keeps no step detail in its run history.

## Sign-in

| Limit | Value |
|---|---|
| Password length | At least 8 characters, at most 256 bytes |
| Failed password attempts | Repeated failures from one account or one network address block password sign-in for a period |

## Next steps

- [Plans, usage and billing](/docs/account/plans-and-limits)
- [Error handling and retries](/docs/automations/error-handling)
- [Public URLs](/docs/reference/urls)
- [Execution history](/docs/runs)
