403 Forbidden

The server understood the request and refuses to authorize it. Authenticating again will not help.

Status

HTTP/1.1 403 Forbidden

Details

403 means the server knows what you are asking for and will not do it. Unlike 401 it is not about missing credentials: either the caller is authenticated and lacks permission, or the server refuses everyone regardless of identity.

It is also the standard face of bot detection. Anti-bot systems answer suspicious traffic with 403 rather than explaining why, which is why a 403 in an automation context usually points at the IP address, the TLS fingerprint, or the header profile rather than at the URL.

Common causes

How to fix it

As the client

As the server

Examples

GET /admin/users HTTP/1.1
Host: app.example.com
Authorization: Bearer sk_live_example

HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8

{"error":"insufficient_scope","required":"admin:read"}

Notes for proxy users

403 is the code you meet most often when a target site dislikes your IP. Datacenter ranges are widely categorized and blocked outright, while static residential ISP addresses carry consumer reputation and are treated like ordinary visitors. If a request succeeds from a home connection and returns 403 from a server, the address type is the variable to change first.

Specifications

RFC 9110 §15.5.4

See also