Skip to main content
Understanding API limitations and specifications helps you optimize performance, plan capacity, and avoid throttling. This guide covers rate limits, driver capabilities, request constraints, and best practices.

Overview

Nimble’s API implements tiered specifications based on:
  • Driver selection: Different drivers have different rate limits
  • Request complexity: Complex operations may have additional constraints
  • Resource usage: Fair usage policies ensure platform stability

Drivers

Nimble offers different drivers optimized for various use cases:
DriverDescriptionBest For
vx6HTTP requests without renderingStatic pages, simple HTML
vx8JavaScript renderingDynamic content, AJAX
vx10Stealth browser modeProtected sites, complex sites
vx12Full browser automationSocial media, interactive platforms
Each driver has different pricing and rate limits. Higher-tier drivers cost more per request.

Rate Limits

Default rate limits by driver

All accounts have the following default rate limits:
DriverRate Limit
vx6, vx8, vx1083 QPS (5,000 QPM)
vx1220 QPS (1,200 QPM)
Need higher limits? Reach out to your CS or open a via a Support Ticket to discuss custom rate limits based on your requirements.

Response headers

Every response includes metadata headers:
ratelimit-limit: 20
ratelimit-remaining: 15
x-task-id: 8e8cfde8-345b-42b8-b3e2-0c61eb11e00f
Use these headers to:
  • Monitor rate limit usage
  • Track request IDs for debugging
  • Optimize driver selection
  • Measure performance

Handling rate limits

When you exceed rate limits, the API returns a 429 status code:
{
  "status": "failed",
  "msg": "Rate limit exceeded"
}
Best practices:
  • Implement exponential backoff on 429 responses
  • Use the retry_after value to schedule next request
  • Monitor rate limit headers in responses
  • Batch requests when possible
  • Use lower-tier drivers when sufficient

HTTP status codes

Success codes

CodeStatusDescription
200OKRequest succeeded and data was returned successfully

Client error codes

CodeStatusDescription
400Bad RequestInvalid URL, malformed parameters, or missing required fields
401UnauthorizedAccount doesn’t exist, invalid API key, or missing credentials
402Payment RequiredNo budget, limit reached, trial expired, or trial quota finished
403ForbiddenAccount blocked or not activated
429Too Many RequestsRate limit exceeded for your plan

Server error codes

CodeStatusDescription
500Internal Server ErrorUnexpected server-side error occurred
501Not ImplementedProxy service encountered an error
555Request TimeoutRequest exceeded maximum execution time
Nimble automatically retries failed requests before returning a final failure status (500)