details usually reports the limit and the measured value, so your code can react without parsing the message.
Account and access
| Limit | Value | Details |
|---|---|---|
| API key name | 100 characters | API keys |
| API key lifetime | 365 days. Every key expires. | API keys |
| Live organizations per tenant | 100 | Organizations and roles |
| Organization name | 40 characters | Organizations and roles |
| Tenant name | 100 characters | Organizations and roles |
Requests
| Limit | Value | When exceeded |
|---|---|---|
| Request rate per allowance | 300 requests per 60 seconds. All your API keys share one allowance, and console use has its own. | 429 rate_limit_exceeded with Retry-After. |
| Open event streams | Bounded by service capacity. | 503 service_unavailable. |
Idempotency-Key | 1 to 256 visible ASCII characters, one header value | 400 invalid_request. |
| Idempotency key retention | About 24 hours for a completed request. An abandoned in-progress key can be reused after about 1 hour. | After that, the same key starts a new request. |
| Session list page token | Valid for 1 hour, with the same filters and limit | 400 invalid_request on page_token. |
API version
The API’s version is below 1.0.0; the Endpoints reference shows the current one. Branch on errorcode values and each operation’s published schema, not on message text.
Agents
| Limit | Value | Details |
|---|---|---|
| Agent name | 256 characters | Agent setup |
| Skills on one agent or session | 100, after groups are expanded and duplicates removed | Skills |
max_concurrent_sessions | 1 to 10,000, or unset for no cap. Extra root sessions wait as queued. | Usage and cost |
| Tags on one agent | 32 | Agent setup |
| Tags per organization | 200 | Agent setup |
| Tag label | 32 characters | Agent setup |
| Tag description | 280 characters | Agent setup |
| Tag ids in one list filter | 32 | Agent setup |
Sessions and events
| Limit | Value | Details |
|---|---|---|
| Custom metadata on a session | 32 pairs. Keys up to 64 characters of letters, digits, _, ., and -. Values 1 to 512 characters. Can’t be changed after start. | Sessions |
| Metadata filters in one list request | 32 metadata pairs and 32 metadata_key values | Session operations |
| Referenced sessions | 10 per request. A session keeps the 10 most recent. | Referenced sessions |
| Session list page | 100 by default, 1,000 at most | Session operations |
| Event list page | 100 events by default. A page stops at about 8 MiB, so it can hold fewer. | Events |
| One stream record | The stream’s Content-Type states the largest record it sends. A larger event arrives as event_record_too_large; fetch it with getSessionEventContent. | Events |
| Stream keep-alive | A ping every 15 seconds | Events |
| Live snapshot (gestalt) | 5,000 sessions, over a 30-day window (400 days when filtered by agent_id) | Events |
| Resource-sample page | 120 buckets by default, 720 at most | Session operations |
| Working root sessions per tenant | A new top-level session is refused with 429 tenant_concurrency_limit while your tenant already has as many working root sessions as it may (provisioning, queued, or running a turn). details.limit gives the cap. Resting sessions, messages, resumes and subagents don’t count. | Sessions |
| Sandbox provisioning | Fails with sandbox_provision_timeout if compute isn’t ready within 5 minutes | Sessions |
Deliverables
| Limit | Value | Details |
|---|---|---|
| Files kept per turn | 200 | Artifacts |
| Bytes kept per turn | 512 MiB | Artifacts |
| One deliverable file | 1 GiB on managed computes; 64 MiB on self-hosted workers | Artifacts |
| Files considered in the outputs folder | 10,000 per turn | Artifacts |
| Deliverable file name | 255 characters, no control characters | Artifacts |
Image shown with share_file | PNG, JPEG, or WebP; 5 MiB, 8,192 pixels on a side, and 40 megapixels | Artifacts |
| Images per session | 500 images and 100 MiB, across every tool that returns images | Artifacts |
Tools
| Limit | Value | Details |
|---|---|---|
| MCP server request | 60-second timeout; responses up to 8 MiB | MCP servers |
Integrations
| Limit | Value | Details |
|---|---|---|
| Connections per app | 1 per organization | Integrations |
| Tools on one app’s allow-list | 1 to 200. Over the cap or empty, 400 invalid_request on resources. | Integrations |
| Tool name | 128 characters | Integrations |
| Apps granted to one agent | 25 entries in built_in_integrations. Over the cap, 400 invalid_request. | Integrations |
Catalog search | 200 characters | Integrations |
| Session access to an app | Expires within an hour, renewed while the session runs | Integrations |
| Skill slots a session with apps uses | 1 of the session’s 100 | Integrations |
| GitHub repositories in one grant | 500 | GitHub access |
| Native integration connections on one agent | 25 | Integrations |
Install link (state) | Valid for 15 minutes, once | Integrations |
| Repository and pull request pages | 100 per page | Integrations |
| Slack channel list | 1,000 channels the Slack app is a member of | Automations |
Files
| Limit | Value | Details |
|---|---|---|
| One console upload | 1 GiB | Files over 30 MiB are sent in parts. Managed-compute output capture uses the same 1 GiB per-file cap. Files |
One public REST uploadFile file part | 30 MiB | The complete multipart request has a separate 128 KiB framing and form-field allowance. Files |
| Live files per organization | 10 GiB in total. Over it, 413 file_quota_exceeded. | Files |
| Upload expiry | 1 hour to 90 days, or none | Files |
| Files attached in one request | 500 | Files |
| File list page | 200 by default, 1,000 at most; 100 ids in a file_ids lookup | Files |
| Documents named in one message | 512 KiB each and 1 MiB per message | Files |
| Library files named in one message | 100 blocks and 32 MiB | Files |
Automations
| Limit | Value | Details |
|---|---|---|
| Automation name | 256 bytes of UTF-8 text | Automations |
| Triggers per automation | 20 | Automations |
| Enabled triggers per event source | 100 across all automations, counting triggers on paused automations. Over it, 409 conflict on triggers. | Automations |
| Opening prompt | 65,536 bytes of UTF-8 text | Automations |
| Run with input | JSON input up to 64 KiB | Automations |
| Run defaults | 50 vaults, 500 credentials, 500 files | Automations |
| Run metadata | 16 pairs. Keys up to 64 bytes, values up to 512 bytes. | Automations |
| Schedule catch-up window | 10 seconds to one year, default 15 minutes | Automations |
| Schedule jitter | 0 to 540 seconds, default 10 | Automations |
| Trigger filters | 100 Slack channels, 100 Slack authors, 100 GitHub repositories, 20 webhook field conditions | Automations |
| Custom webhook body | 1 MiB. Larger bodies get 413 payload_too_large. | Automations |
Skills
| Limit | Value | Details |
|---|---|---|
| Skill name | 64 characters | Skills |
| Skill description | 1,024 characters | Skills |
| Skill instructions body | 64,000 bytes of UTF-8 after escaping | Skills |
| Compressed bundle upload | 8 MiB | Skills |
| Unpacked bundle | 32 MiB | Skills |
| One file in a bundle | 4 MiB | Skills |
| Files in a bundle | 500 | Skills |
| Folder depth in a bundle | 3 levels below the skill root | Skills |
| Skill list page | 100 by default, 500 at most | Skills |
| Skill search term | 2 to 256 characters | Skills |
Environments
| Limit | Value | Details |
|---|---|---|
| Setup script | 64 KiB | Environments |
| Setup timeout | 10 to 3,600 seconds. 0 or unset uses 600. | Environment reference |
| CPU | 250 to 8,000 millicores. Available compute or network policy can impose a lower maximum. | Environment reference |
| Memory | 1,024 to 32,768 MiB. Available compute or network policy can impose a lower maximum. | Environment reference |
| GPU sandbox | One GPU, with 8,000 millicores and 32,768 MiB set for you | Environment reference |
| Sandbox lifetime | 10 to 86,400 seconds when set | Environment reference |
| Workspace disk | 1 to 100 GiB. Unset uses the default. | Environment reference |
| Idle stop | 120 to 7,200 seconds (2 hours) when set; 0 uses the default of 30 minutes. With computer use, 0 or at least 600. | Environment reference |
| Stopped sandbox retention | 3,600 to 2,592,000 seconds when set | Environment reference |
| Network policy rules | 200 | Environment reference |
| Setup runs in flight | 1 per environment, and 4 per organization by default. Over the organization cap, 429 setup_run_limit reports the cap in details.limit. | Environments |
| Setup-run list page | 50 | Environments |
| Setup-run log kept | 4 MiB per run, plus a 2 KiB stderr_tail | Environments |
| Setup-run log page | 500 lines by default, 2,000 at most | Environments |
| Setup-run wait | wait_seconds accepts 0 to 60, but waits at most 5 seconds | Environments |
| Setup-run stderr tail | 2 KiB | Environments |
Multi-agent
| Limit | Value | Details |
|---|---|---|
| Roster entries | 20, with at most 1 advisor | Multi-agent |
max_depth | 1 by default, 3 at most | Multi-agent |
max_concurrent_threads | 8 by default, 25 at most | Multi-agent |
max_threads | 25 by default, 100 at most | Multi-agent |
max_concurrent_sessions.
Next steps
Errors
Every error code, its cause, and whether to retry.
API conventions
Retries, idempotency, and paging.
Troubleshooting
Match a symptom to its cause and fix.
Event types and states
Look up every status, event type, and result value.
Pricing
See what a session hour costs and the purchase amounts credits come in.