HasData
Back to Q&A

What is the HTTP 403 status code, and why does it happen?

HTTP 403 Forbidden means the server understood your request but refuses to authorize it. Unlike 401 (which is about missing or invalid authentication), 403 means the server identified you and explicitly denied access. For scrapers, the cause is usually anti-bot rules flagging the client by User-Agent, IP, or request fingerprint.

Common causes:

  • The user, role, or API token lacks permission for the resource.
  • A firewall, WAF, or CDN blocks the IP or geographic region.
  • Cloudflare, Akamai, or DataDome flagged the request fingerprint (User-Agent, headers, TLS).
  • The directory has no index file and the server refuses to list contents.
  • A rate limit returns 403 instead of 429.

Stop debugging blocked requests one by one

HasData handles rotation, rendering, and retries, so most blocked targets come back as data instead of error codes.