Skip to main content
Read the Notte skill and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.
The API uses HTTP 429 both for rate-window exhaustion and for maximum-active-resource limits. See the API rate-limit reference for the X-Error-Class values that distinguish them.

Identify the limit

A Python NotteAPIError exposes status_code and the parsed response body in error. It does not expose the response headers. If your integration needs X-Error-Class, use an HTTP client that preserves the response headers instead of parsing message text. For NotteApiMaxActiveResourcesError, stop resources you no longer need or reduce concurrency. Retrying without releasing resources does not address the limit. For NotteApiRateLimitExceededError, use a bounded number of retries with exponential backoff and jitter. These 429 responses do not include Retry-After; the API uses that header for 529 capacity responses.

Retry only the rejected operation

Do not wrap an entire automation in a retry loop. Repeating navigation, form submission, or a Function invocation can duplicate work that already succeeded. Retry only when you know the rejected operation is safe to repeat, and let the final exception reach your caller after the retry budget is exhausted. The SDK already retries selected transient transport and capacity failures. See NotteClient configuration for max_retries; avoid stacking another unrestricted retry loop around it.

Reduce request volume

Limit concurrent sessions and agents, avoid polling unchanged state, and reuse results when your application can safely do so. Contact us to discuss higher limits.