Expand AI logo
DocsDocs
Glow Active
API Reference
Login

Documentation

Get started

IntroductionWhy ExpandQuickstartAuthenticationConnect your agent (MCP)

Products

OverviewFetching a URLBatched Fetch
API reference

SDKs & tools

TypeScript SDK
MCP tools & resourcesDocs for agents

Reference

API referenceErrors & retriesPricing & UsageLimitsConcurrency tiersFAQ
Browse docs

Get started

IntroductionWhy ExpandQuickstartAuthenticationConnect your agent (MCP)

Products

OverviewFetching a URLBatched Fetch
API reference

SDKs & tools

TypeScript SDK
MCP tools & resourcesDocs for agents

Reference

API referenceErrors & retriesPricing & UsageLimitsConcurrency tiersFAQ

Limits

How many captures you can run at once, how long a request can take, and how large a page, file, batch, or crawl can be.

Every limit in one place. When you hit one, the error names it and usually says when to try again. What to do next is on Errors & retries.

Concurrency and rate

Browser concurrency is how many browser captures your organization can run at the same time. Your tier includes 2 browsers at Tier 0 and up to 100 at Tier 5. Tiers rise on their own as you spend credits and time passes, and you can add provisioned browsers on top. The table is on Concurrency tiers.

Note
Converting a PDF or other file does not use a browser, so document conversions do not count against your browser concurrency.

When you are at your limit, a single Fetch is refused before it starts with . The response carries , your own limit, and a of 20 seconds. queues under the same limit instead of refusing.

429 FetchConcurrencyLimitExceeded
maxConcurrency
Retry-After
Batched Fetch
Recommendation
Send many URLs as one Batched Fetch rather than many single Fetches at once. Cache responses instead of fetching the same URL twice.

Throttling is separate from concurrency. A throttled request gets 429 TooManyRequests with a Retry-After header, and the same request succeeds once the wait is over. The TypeScript SDK waits and retries for you. Without an SDK, back off as described on Errors & retries.

If these limits are too low for you, email support@expand.ai.

Time

WhatLimit
A Fetch of a web pageOne 150-second budget per request, from acceptance to delivery. A 504 FetchCaptureTimeout or 529 FetchCapacityTimeout arrives by 155 seconds.
A PDF, other file, or videoUp to 55 minutes once a worker starts. The wait for a worker uses the 150-second budget.
Each item in a Batched FetchIts own 150-second budget once it is scheduled.
The TypeScript SDK
Recommendation
Set your HTTP client timeout to 180 seconds for a page, and long enough for a document to finish. In the TypeScript SDK, raise timeoutMs. See Choosing timeoutMs.

How the budget works, and what a 504 or 529 means, is on Readiness and timing.

Size

WhatLimit
A web pageA page too large to capture returns 413 FetchPageTooLarge with limitKind (transfer_bytes, domsnapshot_bytes, or document_frame_bytes), the limit, and what was measured. It is not charged.
A PDF or other fileNo default page limit. Set documentConfig.maxPages to cap how many pages a Fetch converts. A file over the limit returns 413 FetchPageTooLarge with limitKind set to document_pages.

Batches, Highlights, and crawls

WhatLimit
Batched Fetch results pagelimit defaults to 10 and accepts 1 to 100.
Idempotency keysUp to 255 characters.
HighlightsmaxResults defaults to 5 and accepts 1 to . defaults to and accepts to .

Credits

Your first organization starts with 10,000 welcome credits, which expire 365 days after they are granted. Purchased credits do not expire. A request made with no credits left is refused before any work starts and is never charged. See Pricing & Usage.

Next steps

  • Errors & retries: what to do when you hit a limit.
  • Concurrency tiers: how tiers and provisioned browsers work.
  • Pricing & Usage: what each operation costs.
PreviousPricing & Usage
NextConcurrency tiers

On This Page

Concurrency and rateTimeSizeBatches, Highlights, and crawlsCreditsNext steps
timeoutMs defaults to 60000 for the whole call, retries included.
Audio and videodocumentConfig.maxAudioSeconds defaults to 3600 and accepts 1 to 14400. Four hours is the ceiling. A YouTube video with captions ignores it. Over the limit returns 413 FetchPageTooLarge with limitKind set to audio_seconds.
A Snapshot previewmaxBytes accepts 0 to 65536. A preview of an archive over the server's read budget returns 413. The full content link still works.
50
minScore
0.6
0
1
Crawl sources1 to 1,000 per request. Up to 32 may set their own maxPages.
Crawl sizemaxPages defaults to 25,000 and accepts up to 1,000,000. maxDepth defaults to 50 and accepts 0 to 100.
Crawl event content64 KiB per event. The full capture is always readable by its captureId.
WebSync renderssync.budget.rendersPerDay caps the pages a synced crawl renders in a day. You set it.
Provisioned browsersUp to 1,000 per organization.