HTTP 201 Created (Criado)
A requisição deu certo e um novo recurso foi criado.
Ficha rápida
| Código | 201 |
|---|---|
| Nome oficial (em inglês) | Created |
| Nome em português | Criado |
| Grupo | Sucesso (2xx) |
| Definido em | RFC 9110, Section 15.3.2 |
| Quem costuma gerar | O servidor, quando a requisição dá certo. |
O que significa
Indica que a requisição deu certo e que um novo recurso foi criado. O padrão HTTP recomenda que a resposta traga o cabeçalho Location com o endereço do recurso novo.
Quando o servidor devolve esse código
- POST que cria um registro.
- PUT que cria um recurso no endereço indicado.
Problemas comuns
- Usar 200 para criação funciona, mas perde a informação de que algo foi criado.
- Esquecer o cabeçalho Location obriga o cliente a adivinhar o endereço.
Como resolver
- Devolva 201 com Location apontando para o recurso criado.
- Inclua no corpo uma representação do recurso, se fizer sentido.
- No cliente, leia o Location para o próximo passo.
Em automações e integrações
Quando um fluxo cria um registro por uma API, leia o cabeçalho Location ou o identificador no corpo para usar o recurso novo nos passos seguintes, em vez de montar o endereço à mão.
Não confunda com outros códigos
Não confunda com 202: no 201 o recurso já existe; no 202 o pedido foi aceito, mas o processamento ainda não terminou.
Exemplo de resposta
HTTP/1.1 201 Created
Location: /clientes/42
Content-Type: application/json
{"id": 42}
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
201 ou 200 para um POST que cria?
201 é o mais preciso, porque diz que um recurso foi criado.
O corpo é obrigatório no 201?
Não. O importante é que o recurso exista e que o Location o identifique.
O que vai no cabeçalho Location?
O endereço do recurso recém-criado, que pode ser absoluto ou relativo. Com ele, o cliente sabe onde consultar ou atualizar o recurso sem precisar adivinhar o identificador.