415 Unsupported Media Type: el formato del cuerpo de la solicitud es incorrecto
415 Unsupported Media Type significa que el servidor rechaza el cuerpo de la solicitud por su formato, normalmente por un Content-Type ausente o erróneo.
415 Unsupported Media Type significa que el servidor no acepta el cuerpo de la solicitud por su formato. Enviaste datos de formulario a un endpoint que espera JSON, olvidaste la cabecera Content-Type o usaste una compresión que el servidor no sabe descodificar.
Definición
La RFC 9110, sección 15.5.16 dice que el problema puede venir del Content-Type de la solicitud, de su Content-Encoding o de que el servidor inspeccione los datos directamente. Cuando la causa es una codificación de contenido no admitida, la respuesta debería incluir una cabecera Accept-Encoding con las codificaciones que sí acepta. Para PATCH, la RFC 5789 define Accept-Patch para enumerar los formatos de parche admitidos.
No lo confundas con 406 Not Acceptable: el 415 trata de lo que el cliente envía; el 406, de lo que está dispuesto a recibir.
Causas habituales
- Un
Content-Typeausente o erróneo, comoapplication/x-www-form-urlencodedotext/plainenviado a una API de JSON. Frameworks como Spring y ASP.NET Core los rechazan con 415. - Una subida con un tipo de archivo que el endpoint no acepta.
- Un cuerpo de solicitud comprimido con gzip enviado a un servidor que no descomprime las solicitudes.
- Llamadas
fetch()de JavaScript que envíanJSON.stringify(data)sin establecer la cabecera, de modo que el cuerpo sale comotext/plain.
Cómo solucionarlo
# curl: declara el cuerpo JSON
curl -X POST https://api.example.com/v1/contacts \
-H 'Content-Type: application/json' \
-d '{"email":"sara@example.com"}'
// fetch()
fetch('/api/v1/contacts', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'sara@example.com' })
});
En el servidor, devuelve un mensaje que nombre los tipos aceptados para que quienes integran tu API puedan corregir su llamada enseguida.
Impacto en el SEO
Los rastreadores no envían cuerpos de solicitud, así que el 415 no tiene efecto directo en la indexación. Sí aparece en el trabajo de SEO a través de las API: enviar URL a IndexNow por POST, por ejemplo, requiere un cuerpo JSON con la cabecera correcta, algo que el enviador de IndexNow gestiona por ti. Si una página normal devuelve 415 a un GET, es un fallo del servidor; Google lo trataría como un 4xx y descartaría la página. Comprueba las páginas con el comprobador de códigos de estado HTTP.
Ejemplo
POST /api/v1/contacts HTTP/1.1
Host: api.example.com
Content-Type: text/plain
email=sara@example.com
HTTP/1.1 415 Unsupported Media Type
Content-Type: application/json
{"error":"Expected Content-Type: application/json"} Preguntas frecuentes
¿Cuál es la diferencia entre 415 y 400?
El 400 es un “esta solicitud está mal formada” general. El 415 es específico: el servidor no puede gestionar el formato del cuerpo que enviaste, normalmente por la cabecera Content-Type.
¿Cómo arreglo un error 415 en fetch o Postman?
Establece la cabecera Content-Type para que coincida con el cuerpo, normalmente application/json para JSON, y asegúrate de que el cuerpo realmente tiene ese formato.
¿Un error 415 afecta al SEO?
No directamente, ya que los rastreadores no envían cuerpo de solicitud. Importa en el trabajo con API, como las herramientas de envío de URL, y una página que devuelva 415 a un GET se descartaría como cualquier página 4xx.