Acabas de hacer clic en un botón para ejecutar un informe complejo. O tal vez has solicitado un trabajo de transcodificación de video. En lugar de que la página se congele durante minutos, recibes inmediatamente un mensaje: "Tu solicitud ha sido aceptada para su procesamiento". Unos minutos después, recibes un correo electrónico con un enlace a tu informe terminado.
Esta experiencia fluida y asíncrona es un sello distintivo del software moderno bien diseñado. Y está impulsada por un código de estado HTTP crucial, aunque a menudo incomprendido: 202 Accepted
.
A diferencia de su primo 200 OK
, que dice "He terminado ahora mismo", o 201 Created
, que dice "He creado algo nuevo", el código de estado 202 Accepted
se trata de gestionar las expectativas. Es la forma en que el servidor dice: "Mensaje recibido. Entiendo lo que quieres que haga. No puedo darte el resultado ahora mismo, pero lo he puesto en la cola y me encargaré de ello. No necesitas esperar".
Es el equivalente digital de entregar tu ticket al anfitrión de un restaurante concurrido. No te traen la comida de inmediato, pero confías en que tu lugar en la fila está asegurado y tu comida estará lista eventualmente.
Si estás construyendo o utilizando APIs que manejan tareas de larga duración, comprender el 202 Accepted
es clave para crear aplicaciones receptivas, escalables y fáciles de usar.
Entonces, ¿qué significa esto y por qué es importante que los desarrolladores, testers y consumidores de API lo entiendan?
Y antes de sumergirnos en la mecánica, si estás diseñando APIs que requieren flujos de trabajo asíncronos, necesitas una herramienta que pueda ayudarte a probar y visualizar estas interacciones complejas. Descarga Apidog gratis; es una plataforma API todo en uno que te permite simular fácilmente respuestas 202
, probar mecanismos de sondeo y asegurar que tus procesos asíncronos sean robustos y confiables.
Ahora, vamos a desglosar qué significa 202 Accepted
, cuándo usarlo y cómo implementarlo correctamente.
Preparando el Escenario: El Problema con el Pensamiento Síncrono
Para entender por qué el 202
es necesario, primero debemos reconocer las limitaciones de las solicitudes síncronas.
El ciclo típico de solicitud-respuesta HTTP es síncrono y bloqueante:
- Cliente: Envía una solicitud.
- Cliente: Espera... (esto a menudo se llama "tiempo hasta el primer byte" o TTFB).
- Servidor: Procesa la solicitud (esto podría implicar cálculos complejos, consultas a bases de datos, llamar a otros servicios).
- Servidor: Envía una respuesta (
200 OK
,201 Created
, etc.). - Cliente: Recibe la respuesta y actúa en consecuencia.
Este modelo funciona perfectamente para operaciones rápidas como obtener un perfil de usuario, recuperar una lista de productos o actualizar un solo campo. Pero, ¿qué pasa si la operación tarda 5 segundos? ¿30 segundos? ¿5 minutos?
- La conexión podría expirar, lo que provocaría errores.
- El navegador o la aplicación del usuario parecerían congelados, creando una terrible experiencia de usuario.
- Los procesos de tu servidor estarían ocupados, incapaces de manejar otras solicitudes entrantes, lo que llevaría a una baja escalabilidad.
El código de estado 202 Accepted
es la solución elegante a este problema. Rompe la naturaleza bloqueante de HTTP, permitiendo el procesamiento asíncrono.
¿Qué Significa Realmente HTTP 202 Accepted?
El código de estado HTTP 202 Accepted
se define en el RFC como una respuesta de éxito. Sin embargo, es un tipo de éxito muy específico. El código de estado 202 Accepted pertenece a la categoría 2xx, que generalmente indica éxito. Indica que:
- La solicitud ha sido recibida y comprendida.
- La solicitud ha sido aceptada para su procesamiento.
- El procesamiento aún no está completo.
- El procesamiento puede o no resultar finalmente en una acción completada (incluso podría fallar más tarde).
Sin embargo, a diferencia de 200 OK
, que significa que la solicitud fue procesada exitosamente y está completa, el 202 nos dice algo diferente:
El servidor ha aceptado la solicitud, pero el procesamiento aún no ha terminado.
Fundamentalmente, la respuesta debe dar al cliente alguna indicación de dónde puede verificar el estado de la solicitud o dónde estará disponible el resultado final en el futuro.
En otras palabras, el 202 es la forma educada del servidor de decir:
"Oye, tengo tu solicitud. Estoy trabajando en ello. Pero no esperes el resultado de inmediato."
Esto lo hace especialmente útil para procesos de operación asíncrona que toman tiempo, como enviar un correo electrónico, procesar un gran conjunto de datos o iniciar un trabajo en segundo plano.
¿Por Qué Existe el 202 Accepted?
No todas las solicitudes pueden procesarse instantáneamente. Imagina si cada vez que enviaras una llamada a la API, el servidor tuviera que esperar hasta que todo el trabajo estuviera completo antes de responder. Eso podría llevar a:
- Tiempos de espera agotados en tareas de larga duración.
- Mala experiencia de usuario porque los clientes se quedarían colgados.
- Sobrecargas del servidor, ya que los recursos estarían ocupados hasta que los trabajos terminaran.
El código de estado 202 resuelve este problema al permitir que los servidores reconozcan las solicitudes sin hacer esperar a los clientes.
El Flujo de Trabajo Asíncrono: Un Desglose Paso a Paso
Vamos a ver un ejemplo concreto. Imagina una API para generar informes de datos personalizados.
Paso 1: La Solicitud del Cliente
Una aplicación cliente envía una solicitud POST
para iniciar la generación del informe.
POST /api/reports/generate HTTP/1.1Host: api.example.comContent-Type: application/jsonAuthorization: Bearer <token>
{
"type": "annual_sales",
"year": 2023,
"format": "pdf"
}
Paso 2: La Respuesta 202 del Servidor
El servidor recibe la solicitud. Valida que la solicitud esté bien formada y que el usuario esté autorizado. Luego, coloca inmediatamente el trabajo en una cola de procesamiento (utilizando un sistema como Redis, RabbitMQ o Amazon SQS) y responde.
HTTP/1.1 202 AcceptedLocation: <https://api.example.com/api/reports/status/job-12345Content-Type:> application/json
{
"message": "Tu solicitud de generación de informe ha sido aceptada y está siendo procesada.",
"job_id": "job-12345",
"status_url": "<https://api.example.com/api/reports/status/job-12345>",
"estimated_completion_time": "2023-10-27T10:05:00Z"
}
Esta respuesta es increíblemente potente. Vamos a desglosarla:
HTTP/1.1 202 Accepted
: El mensaje principal: "Lo tengo."- Encabezado
Location
: Un encabezado HTTP estándar que apunta a una URL donde se puede monitorear el estado de la solicitud. Esta es una buena práctica para las respuestas 202. - Cuerpo de la Respuesta: Proporciona información útil, legible para humanos y máquinas, sobre lo que sucede a continuación. El
job_id
y lastatus_url
son cruciales.
Paso 3: El Procesamiento Asíncrono
El cliente ahora es libre de hacer otras cosas. Mientras tanto, en el servidor:
- Un trabajador en segundo plano (o proceso) separado toma el trabajo de la cola.
- Realiza la tarea que consume tiempo: consultar la base de datos, compilar datos, generar el PDF.
- Una vez completado, almacena el resultado (por ejemplo, en almacenamiento en la nube como S3) y actualiza el estado del trabajo a "completado".
Paso 4: El Cliente Verifica la Finalización
El cliente ahora puede sondear la status_url
proporcionada en la respuesta 202.
GET https://api.example.com/api/reports/status/job-12345
La respuesta a esta solicitud de sondeo podría cambiar con el tiempo:
- Inicialmente:
{"status": "processing", "progress": 45}
- Cuando se Completa:
{"status": "completed", "download_url": "<https://api.example.com/api/reports/download/job-12345.pdf>"}
Alternativamente, el servidor podría enviar una notificación a través de un webhook a una URL proporcionada por el cliente, lo cual es un patrón más avanzado y eficiente que el sondeo.
Características Clave del 202 Accepted
Estas son las características esenciales de una respuesta 202:
- Solicitud recibida: El servidor recibió tu solicitud.
- Procesamiento no terminado: El trabajo real aún está en curso.
- Sin garantía de finalización: A diferencia del 200, un 202 no promete que el trabajo tendrá éxito, solo que ha sido aceptado.
- Útil para flujos de trabajo asíncronos: Trabajos en segundo plano, colas o procesamiento diferido.
202 Accepted vs. Otros Códigos de Éxito: Conociendo la Diferencia
Es fácil confundir el 202
con otros códigos 2xx. Aquí tienes una hoja de trucos simple:
200 OK
: "Procesé tu solicitud con éxito y aquí está el resultado ahora mismo." (Síncrono, resultado inmediato)201 Created
: "Creé un nuevo recurso con éxito ahora mismo. Aquí está su ubicación y sus datos." (Síncrono, creación inmediata)202 Accepted
: "Procesaré tu solicitud. Vuelve a consultar más tarde para ver el resultado." (Asíncrono, procesamiento diferido)204 No Content
: "Procesé tu solicitud con éxito, pero no tengo contenido que enviarte." (Síncrono, sin cuerpo)
Usa el 202
cuando el resultado estará disponible en el futuro, no de inmediato.
¿Por Qué Usar el 202 Accepted? Los Beneficios Clave
- Mejora la Experiencia del Usuario (UX): La aplicación cliente permanece receptiva. Los usuarios reciben una retroalimentación inmediata de que su solicitud fue recibida, no una rueda giratoria de la muerte.
- Mejor Escalabilidad del Servidor: Los hilos principales de manejo de solicitudes del servidor se liberan casi instantáneamente. Delegan el trabajo pesado a los trabajadores en segundo plano, lo que permite al servidor manejar muchas más solicitudes entrantes.
- Maneja la Incertidumbre: El servidor puede aceptar una solicitud incluso si no está 100% seguro de que podrá cumplirla más tarde. Por ejemplo, podría aceptar una solicitud que depende de un servicio de terceros que está temporalmente caído.
- Realista para Operaciones Complejas: Modela con precisión procesos del mundo real que toman tiempo, como enviar correos electrónicos, procesar videos, ejecutar modelos de aprendizaje automático o manejar grandes exportaciones de datos.
Casos de Uso Reales para HTTP 202
Encontrarás el 202 Accepted
en muchas aplicaciones modernas:
- Procesamiento de Archivos: Transcodificación de imágenes/videos, conversión de documentos (por ejemplo, generación de PDF).
- Operaciones de Datos: Generación de informes grandes, exportación/importación de datos, envíos masivos de correo electrónico.
- IA/Aprendizaje Automático: Envío de una tarea para entrenamiento o inferencia de modelos.
- Procesamiento de Pagos: Algunas pasarelas de pago aceptan una solicitud de pago de forma asíncrona.
- DevOps/CI-CD: Disparar una pipeline de compilación. La API acepta la solicitud inmediatamente y devuelve un enlace a los registros de compilación.
Beneficios de Usar el 202 Accepted
¿Por qué los desarrolladores y diseñadores de API deberían usar el 202?
- Evita tiempos de espera agotados del cliente: Los usuarios no tienen que esperar.
- Mejora la escalabilidad: Los servidores no se bloquean con tareas largas.
- Mejor retroalimentación al usuario: En lugar de silencio, los clientes saben que la solicitud está siendo procesada.
- Soporta arquitecturas asíncronas: Esencial para microservicios modernos.
202 Accepted en Flujos de Trabajo Asíncronos
Así es como funciona típicamente:
- El cliente envía una solicitud.
- El servidor responde con 202 y posiblemente una "URL de estado".
- El cliente vuelve a consultar el endpoint de estado para ver si el trabajo ha terminado.
Por ejemplo:
{
"status": "processing",
"check_status": "/jobs/12345/status"
}
Este patrón mantiene contentas a ambas partes: el cliente obtiene un reconocimiento instantáneo y el servidor tiene un respiro.
Probando Flujos de Trabajo 202 con Apidog

Probar un flujo de API asíncrono es más complejo que probar una simple llamada síncrona. Aquí es donde Apidog se convierte en una herramienta invaluable.
Con Apidog, puedes:
- Scripting del Flujo: Crea un escenario de prueba que primero envíe la solicitud
POST
y valide que devuelve un202
con unastatus_url
. - Extraer Variables: Utiliza el scripting de Apidog para extraer automáticamente el
job_id
o lastatus_url
de la respuesta202
y guardarla como una variable de entorno. - Probar el Sondeo: Crea una solicitud
GET
subsiguiente que utilice la variable extraída para llamar a lastatus_url
. Puedes configurar Apidog para reintentar esta solicitud hasta que obtenga un estado "completado". - Validar el Resultado Final: Una vez que el trabajo esté hecho, escribe aserciones para validar la respuesta final de la URL de descarga.
Esto te permite automatizar las pruebas de todo el recorrido asíncrono, asegurando la fiabilidad y detectando regresiones.
Cómo Probar Respuestas 202 Accepted (con Apidog)

Aquí es donde Apidog brilla. A diferencia de las herramientas estáticas, Apidog te permite:
- Enviar solicitudes y simular diferentes códigos de estado (como 202).
- Simular endpoints de API para probar flujos de trabajo asíncronos.
- Documentar APIs para que los desarrolladores sepan qué esperar de una respuesta 202.
- Colaborar con los miembros del equipo para refinar el manejo asíncrono.
Con Apidog, puedes construir y probar flujos de trabajo 202 de extremo a extremo desde la aceptación hasta la finalización sin cambiar de herramientas.
Posibles Trampas y Malentendidos Comunes
Dicho esto, el 202 puede ser mal utilizado. Algunas trampas incluyen:
- Asumir la finalización: El hecho de que la solicitud haya sido aceptada no significa que haya tenido éxito.
- No proporcionar seguimientos: Las APIs deben incluir formas para que los clientes verifiquen el estado del trabajo.
- Uso excesivo del 202: No lo uses para operaciones simples e inmediatas, ya que confundirá a los clientes.
Desafíos y Mejores Prácticas
Implementar el 202
correctamente requiere una consideración cuidadosa.
- Proporcionar un Endpoint de Estado: Esto no es negociable. Debes proporcionar una URL (a través del encabezado
Location
o el cuerpo de la respuesta) donde el cliente pueda verificar el progreso y el resultado final de la solicitud. - La Idempotencia es Crucial: Si un cliente no está seguro de si su solicitud se procesó (por ejemplo, debido a un problema de red), podría reintentarlo. Tu API debe estar diseñada para manejar solicitudes duplicadas de manera elegante utilizando claves de idempotencia para evitar que el mismo trabajo se ponga en cola varias veces.
- Establecer Expectativas Claras: Utiliza el cuerpo de la respuesta para dar un tiempo estimado de finalización o un mensaje de estado simple (
en cola
,procesando
,fallido
,exitoso
). - Considerar Webhooks: Para una alternativa más eficiente al sondeo, permite a los clientes registrar una URL de webhook que tu servidor llamará cuando el trabajo esté completo.
- Planificar para Fallos: El trabajo podría fallar en segundo plano. Tu endpoint de estado necesita comunicar los fallos y, potencialmente, proporcionar códigos de razón.
Mejores Prácticas para Implementar el 202 Accepted
Si estás diseñando APIs que devuelven 202, ten en cuenta estas mejores prácticas:
- Siempre devuelve contexto: Proporciona un ID de trabajo o una URL de estado.
- Documenta claramente: Explica cómo los clientes deben verificar el progreso.
- Usa webhooks cuando sea posible: Notifica a los clientes cuando las tareas finalicen.
- No lo uses en exceso: Solo devuelve 202 para tareas genuinamente asíncronas.
202 Accepted en APIs REST vs GraphQL
- APIs REST: El 202 es común porque las solicitudes a menudo se mapean a procesos de larga duración.
- APIs GraphQL: Menos común, ya que GraphQL favorece las consultas síncronas, pero aún es posible con mutaciones asíncronas.
Conclusión: Adoptando el Diseño Asíncrono
El código de estado HTTP 202 Accepted
es una herramienta poderosa en el conjunto de herramientas del diseñador de API. Representa un cambio de pensar en las APIs como simples mecanismos de solicitud-respuesta a pensarlas como sistemas para orquestar flujos de trabajo complejos y del mundo real. El código de estado 202 Accepted puede que no sea el código HTTP más famoso, pero juega un papel crítico en los flujos de trabajo asíncronos de las API. Les dice a los clientes: "Tenemos tu solicitud, pero todavía estamos trabajando en ella."
Al usar el 202
, construyes APIs que son más escalables, más resilientes y que proporcionan una experiencia muy superior para los desarrolladores que las usan y para los usuarios finales que finalmente se benefician de ellas.
Reconoce que no todo en el software sucede instantáneamente, y proporciona una forma estandarizada y robusta de manejar esa realidad.
Así que la próxima vez que estés diseñando un endpoint para una tarea de larga duración, no la fuerces a ser síncrona. Abraza la naturaleza asíncrona de la tarea. Devuelve un 202 Accepted
, proporciona una URL de estado y libera tu aplicación de la tiranía de la solicitud en espera. Si estás construyendo o probando APIs que devuelven 202, necesitas herramientas que te permitan simular, probar y documentar estos flujos de trabajo sin problemas. Eso es exactamente lo que Apidog ofrece. Usa una herramienta como Apidog para asegurar que tu implementación sea robusta, comprobable y un placer de integrar. ¿Listo para simplificar tus pruebas y documentación de API? Descarga Apidog gratis hoy y haz que el manejo de códigos como el 202 Accepted sea sencillo.