Back to More
Behind the Error

HTTP Status Codes Decoded

Every status code tells a story. Here is what each one is really saying.

2xx — Success

200
OK

Everything worked. The request succeeded.

201
Created

A new resource was successfully created (usually after a POST).

204
No Content

The request succeeded but there is nothing to send back.

3xx — Redirection

301
Moved Permanently

The resource has a new permanent URL. Browsers auto-redirect.

302
Found (Temporary Redirect)

The resource is temporarily at another URL.

4xx — Client Error

400
Bad Request

The server couldn't understand the request. Usually malformed syntax.

401
Unauthorized

You need to authenticate first. No token or invalid credentials.

403
Forbidden

You are authenticated but don't have permission to access this.

404
Not Found

The requested resource doesn't exist on the server.

405
Method Not Allowed

The HTTP method used (e.g. DELETE) isn't supported for this endpoint.

408
Request Timeout

The server timed out waiting for the client to send a request.

429
Too Many Requests

You hit the rate limit. Slow down.

5xx — Server Error

500
Internal Server Error

Something went wrong on the server. The generic catch-all.

502
Bad Gateway

A server acting as a gateway got an invalid response from the upstream server.

503
Service Unavailable

The server is temporarily overloaded or down for maintenance.

504
Gateway Timeout

The upstream server didn't respond in time.

Quick Rule of Thumb

  • 2xx — Everything is fine. Move along.
  • 3xx — You are being redirected somewhere.
  • 4xx — You messed up. Check your request.
  • 5xx — The server messed up. Not your fault.