HTTP 405 Method Not Allowed
Endereço certo, verbo errado: o recurso existe mas não aceita este método HTTP.
O que significa o HTTP 405
HTTP 405 Method Not Allowed significa que o servidor reconhece a URL mas o método HTTP — GET, POST, PUT, DELETE — não é suportado para ela. A resposta deve incluir um cabeçalho Allow listando os métodos suportados.
Quase sempre é uma incompatibilidade entre cliente e API: um formulário fazendo POST para uma rota de página, um script enviando PUT onde a API espera PATCH, ou um webhook configurado com o método errado.
Causas comuns de erros 405
- POST enviado para um endpoint que só trata GET (ou vice-versa) — típico depois de copiar e colar exemplos de API.
- Um redirecionamento (301/302) converteu um POST em GET antes de a requisição chegar ao endpoint.
- O servidor web bloqueia métodos como PUT/DELETE globalmente enquanto a aplicação os espera.
- Uma rota errada: o endpoint pretendido é /api/items (POST), mas a requisição atingiu /items.
Como corrigir como desenvolvedor
- Leia o cabeçalho de resposta Allow — ele lista exatamente quais métodos a URL aceita.
- Verifique a documentação da API para o par correto de método e caminho.
- Se houver um redirecionamento no caminho, use 307/308 para que o método sobreviva ao salto.
- No servidor, garanta que a rota do framework declare o método e que nenhum proxy o remova.
Exemplo de resposta
HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD
Content-Type: application/json
{"error":"method_not_allowed"}Perguntas frequentes
Como vejo quais métodos uma URL suporta?
Verifique o cabeçalho Allow na resposta 405, ou envie uma requisição OPTIONS para a URL.
Por que meu POST virou GET?
Um redirecionamento 301 ou 302 no meio do caminho fez o cliente mudar de método. Use redirecionamentos 307/308 para endpoints que aceitam POST.
O 405 é um problema de cliente ou de servidor?
Formalmente um erro de cliente, mas frequentemente expõe uma configuração incorreta do servidor — uma rota sem um método ou um proxy bloqueando verbos.