HTTP 400 Bad Request (Requisição inválida)
O servidor não conseguiu ou não quis processar a requisição por um erro atribuído ao cliente.
Ficha rápida
| Código | 400 |
|---|---|
| Nome oficial (em inglês) | Bad Request |
| Nome em português | Requisição inválida |
| Grupo | Erro do cliente (4xx) |
| Definido em | RFC 9110, Section 15.5.1 |
| Quem costuma gerar | O servidor, apontando um problema na requisição enviada pelo cliente. |
O que significa
É a resposta genérica para um erro atribuído ao cliente: sintaxe inválida, corpo malformado, parâmetro com formato errado ou cabeçalho incorreto. O servidor não conseguiu ou não quis processar a requisição como foi enviada.
Quando o servidor devolve esse código
- JSON com sintaxe inválida.
- Parâmetro obrigatório ausente ou em formato errado.
- Cabeçalho malformado.
Problemas comuns
- Enviar JSON com aspas simples, vírgula sobrando ou chave sem fechar.
- Mandar número onde a API espera texto, ou o contrário.
- Cookie ou cabeçalho grande demais ou corrompido.
Como resolver
- Valide o corpo em um validador de JSON.
- Compare a requisição com a documentação da API.
- Leia o corpo da resposta: bons servidores explicam o que está errado.
- Se o problema é de regra de negócio e o formato está certo, 422 costuma ser mais adequado.
Em automações e integrações
Em um fluxo, o 400 costuma vir de um corpo montado por expressão que gerou JSON inválido, ou de um campo no formato errado. Veja o corpo exato enviado na execução e valide-o antes.
Não confunda com outros códigos
Não confunda com 422 (formato certo, conteúdo inválido) nem com 415 (tipo de mídia não aceito).
Exemplo de resposta
HTTP/1.1 400 Bad Request
Content-Type: application/json
{"erro": "JSON inválido na posição 18"}
O exemplo é ilustrativo: o corpo e os cabeçalhos reais mudam de servidor para servidor. O código e o nome seguem o padrão HTTP.
Perguntas frequentes
400 ou 422?
Use 400 para requisição malformada e 422 quando o formato está certo, mas o conteúdo não pode ser processado.
O 400 é culpa do servidor?
Em geral, não: indica que a requisição enviada tem algum problema.