No, requests that end in an error are not charged. IPRoyal Web Scraper API charges one credit per successful request. If a request fails, the credit returns to your balance, so you can retry it at no extra cost.
Requests rejected before scraping starts, such as validation, authentication, balance, and concurrency limit errors, never reach the target website. As a result, they never use credits.
The following errors don’t use credits:
Error | What it means |
400 invalid_request | The request is not valid |
401 invalid_token | The API token is missing or not recognized |
402 insufficient_credit | Your credit balance is zero |
403 account_suspended / account_disabled | Your account is suspended or disabled |
404 not_found | No image was found at the URL, or the endpoint doesn’t exist |
413 payload_too_large | The request body is larger than 100 KB. |
422 blocked | The target website’s anti-bot protection stopped the request |
422 no_data_extracted | Parse was on, but the page had no structured data to extract |
429 concurrency_limit_exceeded | Too many of your requests are running at the same time |
500 / 503 internal_error | A temporary problem on IPRoyal’s side |
502 upstream_unavailable | The scrape couldn’t be completed |
503 capacity_exceeded | The service is at full capacity |
Validation error | The request is missing a required field or contains an invalid value |
Authentication error | Your API token is missing or invalid |
You can always check which request was charged in your Web Scraper API dashboard. The ‘Recent Requests’ section shows the status of each request and the credits it used.
Learn more about error codes in our Web Scraper API documentation.

