Limits
What v1 does not do, stated plainly, so you find out here rather than in production.
Read this before you design an integration.
There is no bulk data download
GET /v1/builds/{id}/sample returns the field schema and sample rows. It is not an export, and there is no other
endpoint that is one.
The finished dataset is delivered through the subscription that approving the publish_review gate registers. If
your integration needs the full rows, that delivery is the route — not this API.
Last-Event-ID suppresses, it does not replay
The SSE stream cannot resend frames you missed. A resubscribe gets a fresh full-state snapshot, and the header is used only to drop frames you demonstrably already have. Progress ticks that elapsed during the gap are gone; gate raises and activity items survive only because the snapshot re-carries them. See Streaming.
approve is never inferred
A body that omits approve on a schema_review or publish_review answer is a 400 approve_required — never a
decline. See Gates. This is the limit most
likely to bite a generated client, because many of them serialize an unset boolean as false.
Builds are charged, but not reported here
From the date we gave your organization, each build is paid from the same prepaid balance as your Web Access requests. Builds already running on that date are free.
- A build is priced by the work that build itself did, plus the web requests it made at your organization's own Web Access rates.
- Time a build spends waiting for you, at a gate or a question, costs nothing.
- A typical build costs about $2, and nine in ten cost less than $4.20. There is no estimate before a build starts.
- A build stops and asks you before it goes past $15.
- A build that fails because of a problem on our side is not charged. If a charge looks wrong, flag it from the build.
Balance, spend, build charges and in-flight counts are not available on this API. Take them from your billing records.
There are no webhooks
Nothing calls you back, and no endpoint accepts a callback URL. See Noticing a gate for what to do instead.
Revocation is not instant
Revoking a key takes effect within 60 seconds rather than immediately, fleet-wide. Treat those 60 seconds as the exposure window for a leaked key.
Request ceilings
| Limit | Value |
|---|---|
query length | 4000 runes |
| Message text length | 2000 runes |
| Cancel reason length | 1000 runes |
| Request body size | 1 MiB (413 above it) |
page_size on /v1/builds | at most 100, refused above it |