403 Forbidden
Client Error - Access denied
403 Forbidden
What It Means
HTTP 403 Forbidden means the server understood the request and knows who you are, but refuses to authorize it. You simply don't have permission to access this resource. Unlike a 401 Unauthorized, sending valid credentials for the same account won't fix a 403 — the problem is permissions or policy, not identity.
HTTP/1.1 403 Forbidden
Content-Type: application/json
{"error": "forbidden", "message": "You do not have access to this resource"}
Common Causes
- Insufficient permissions: Your account or API key lacks the required role or scope
- IP restrictions: An allowlist or blocklist is rejecting your address
- WAF / bot protection: Cloudflare or similar blocked the request as suspicious
- File permissions: Server-side
chmoddenies read access - Directory listing disabled: No index file and listing turned off
- Expired signed URL: A pre-signed S3/CDN link is past its expiry
- Hotlink / geo restrictions: Referrer or region blocked by policy
How to Fix It
Server file permissions
# Files should be readable (644), directories traversable (755)
chmod 644 /var/www/html/index.html
chmod 755 /var/www/html
# Check ownership matches the web server user
chown -R www-data:www-data /var/www/html
# Nginx: confirm an index file is configured
index index.html index.htm;
Permissions, WAF, and access rules
- Confirm the account/API key has the required role or scope
- Check IP allowlists and WAF/bot rules for false positives
- Verify signed URLs haven't expired and signatures match
- Review referrer (hotlink) and geographic restrictions
- For static hosting, ensure an index file exists or enable directory listing
403 vs 401
- 401 Unauthorized: Not authenticated — the server doesn't know who you are. Valid credentials may fix it.
- 403 Forbidden: Authenticated (or identity isn't the issue) but not allowed. Different credentials for the same account won't help.
Shorthand: 401 = who are you? 403 = you can't do that.
How to Monitor for 403 Errors
A sudden 403 often means a permissions change, a new WAF rule, an expired signed URL, or an IP allowlist mistake locked out legitimate traffic. UptimeSignal checks your endpoints on a schedule and flags non-2xx responses including 403, so you catch the misconfiguration before users report being denied. Combine it with 401 and 429 checks for full coverage of access-related failures.
Frequently Asked Questions
What does HTTP 403 mean?
What causes a 403 error?
chmod), an expired signed URL, hotlink protection, or geographic restrictions.