Skip to main content
Browser work is limited by normalized target host so one origin cannot consume all browser capacity. The limiter applies to synchronous requests, queue consumers, batches, and monitor captures. A saturated host returns 429 with Retry-After. Successful requests that waited may include X-Scrinly-RateLimit-Bucket and X-Scrinly-RateLimit-Waited; the bucket is a safe normalized identifier, not a copy of the submitted URL. Spread unrelated work across the queue and use exponential backoff with jitter. Retrying immediately at high concurrency increases contention and can extend the delay. Status polling is read-only and does not consume a browser slot. Provider rate limits for Visual Style Guide generation are normalized into typed style_guide_* errors. Scrinly does not silently fall back to another provider or model.