HTTP 400 Bad Request
Server rejected the request because client payload, JSON syntax, or request headers were invalid.
curl -i -X GET https://httpbin.org/status/400 - • Malformed JSON syntax in request body
- • Invalid characters in URL or oversized HTTP cookie headers
- ✓ Validate payload using a JSON formatter / linter
- ✓ Clear browser cookies and cache for the affected domain
Open the full tool: Convert cURL to Fetch, Python, or Go →
Status Reference & Causes
4xx Client Errors Status Codes Table
| Код | Название | RFC |
|---|---|---|
| 400 | Bad Request | RFC 9110 Section 15.5.1 |
| 401 | Unauthorized | RFC 9110 Section 15.5.2 |
| 403 | Forbidden | RFC 9110 Section 15.5.4 |
| 404 | Not Found | RFC 9110 Section 15.5.5 |
| 405 | Method Not Allowed | RFC 9110 Section 15.5.6 |
| 408 | Request Timeout | RFC 9110 Section 15.5.9 |
| 409 | Conflict | RFC 9110 Section 15.5.10 |
| 410 | Gone | RFC 9110 Section 15.5.11 |
| 418 | I'm a teapot | RFC 2324 / RFC 9110 Section 15.5.19 |
| 422 | Unprocessable Content | RFC 9110 Section 15.5.21 |
| 429 | Too Many Requests | RFC 6585 Section 4 |
FAQ
What does HTTP 400 Bad Request mean?
Server rejected the request because client payload, JSON syntax, or request headers were invalid. It is defined in RFC 9110 Section 15.5.1 as a 4xx Client Errors status code.
Is HTTP 400 an error on client or server side?
HTTP 400 is a client-side error (4xx), meaning the request itself was invalid, unauthorized, or malformed.
How can I test an HTTP 400 response in terminal?
You can use cURL with the -I flag to fetch headers only: curl -I https://httpbin.org/status/400