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 |
maxConcurrentSessions | 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. Messages, resumes and subagents don’t count, and neither do resting sessions, except a session created without message or outcome: it counts from creation until its first message, then like any session, so create it only when you intend to use it. | Sessions |
| Sandbox provisioning | Fails with sandbox_provision_timeout if compute isn’t ready within 5 minutes | Sessions |
Deliverables
| Limit | Value | Details |
|---|---|---|
| Files saved per batch | 200 | Artifacts |
| Bytes saved per batch | 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 |
|---|---|---|
| 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 builtInIntegrations. 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 |
| 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 |
| Automation outcome | Objective up to 65,536 bytes, rubric up to 256 KiB, at least 1 grading pass, 5 by default | Automations |
| Result file path | 1,024 bytes | Automations |
| Waiting for a run’s result | 20 seconds per request | Automations |
| A run’s result | 100 listed files, 64 KiB of final message, 1 MiB of result file read | 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, 20 Slack user groups per sender condition, 100 GitHub repositories, 20 webhook body conditions and 20 webhook event types of up to 256 bytes each | 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 | 512 KiB | Environments |
| Setup timeout | 10 to 3,600 seconds. 0 or unset uses 600. | Environment reference |
| CPU | 250 to 24,000 millicores. Available compute or network policy can impose a lower maximum. | Environment reference |
| Memory | 1,024 to 102,400 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 | You can ask a read to wait with wait_seconds (0 to 60). The server replies as soon as the run ends, or after 20 seconds at most. A log read replies as soon as there are new lines or the run ends, or after 5 seconds at most. If the run has not ended, read again. | 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 |
| Active tasks on a team board | 512 open, claimed, or blocked tasks. Finishing or dropping a task makes room. | Teams |
| Tasks posted to a team board | 2,000 over the board’s lifetime, including done and dropped tasks | Teams |
maxConcurrentSessions.
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.