Skip to main content

Rate limits

API requests are rate limited to ensure fair usage and platform stability. Limits are applied per user.

Request rate limits

Pentest Robots have no rate limit when stopping scans via the API.

Rate limit headers

You can inspect your current rate limit status by checking the response headers on any request:

When rate limited

When you exceed the rate limit, you’ll receive a 429 Too Many Requests response with additional headers: Best Practice: Implement exponential backoff:

Error response format

Error responses include a status code and message, with optional details:
With additional details:

Error codes

Common errors

Cause: Invalid or missing API keySolution: Verify your API key is correct and included in the Authorization header as Bearer YOUR_API_KEY
Cause: Your API key lacks permission for this actionSolutions:
  • Check your subscription plan includes the requested feature
  • Verify you have access to the workspace or resource
  • For target deletion: ensure your plan allows API target deletion
Cause: Resource doesn’t exist or you don’t have accessSolutions:
  • Verify the resource ID is correct
  • Check the resource belongs to your account or a workspace you have access to
  • For scans/targets: ensure they haven’t been deleted
Cause: Requested output format not supportedExample: Requesting JSON output for a tool that only provides raw outputSolution: Use a different output format or download the PDF report instead
Cause: Operation conflicts with current resource stateExamples:
  • Deleting a scan that is still running
  • Creating a workspace with a name that already exists
  • Deleting your current active workspace
Solution: Resolve the conflict (e.g., stop the scan first) before retrying
Cause: Rate limit exceededSolution: Wait for the duration specified in the Retry-After header before making more requests

Best practices

Always check the status field in error responses to determine the appropriate action.
  • Handle errors gracefully: Implement proper error handling for all API calls
  • Respect rate limits: Monitor X-RateLimit-Remaining and slow down before hitting limits
  • Use exponential backoff: When retrying failed requests, increase wait time between attempts
  • Log errors: Keep records of errors for debugging and monitoring