La migración
Qué está implementado
Admitido
POST /v1/async/taskPOST /v1/async/task/batchGET /v1/async/task/{id}Callbacks de webhookNo implementado
Endpoints síncronos
/v1/monitor/*/v1/async/status/v1/monitor/* falta a propósito. Todos los motores funcionan de forma asíncrona; una solicitud
que se bloquea durante lo que puede tardar una consulta no es algo que ofrezca este servicio.
Dónde difiere el comportamiento
1. Sin limitador de tasa: usa lotes
1. Sin limitador de tasa: usa lotes
No hay límite de tasa por clave. Para grandes volúmenes, usa el envío en lote y reduce los viajes de ida y vuelta.Consulta Regiones y buenas prácticas.
2. Los créditos son por motor
2. Los créditos son por motor
credits aparece en cada respuesta como parte del sobre. Las respuestas de envío y sondeo informan
{ "creditsToCharge": 0, "creditsCharged": 0 }; los webhooks informan el coste en créditos del motor (1–3 créditos
según el motor).Las tareas fallidas no se cobran. Los saldos de créditos se ven en el panel.3. Algunas combinaciones motor × región se rechazan de entrada
3. Algunas combinaciones motor × región se rechazan de entrada
Una combinación no se puede servir en absoluto:
CHATGPT/PERPLEXITY/GEMINI hacia CN, donde no hay suministro
de salida y la solicitud nunca llega al destino. Falla de inmediato con 422 REGION_UNSUPPORTED en lugar de
aceptarse. 422 REGION_UNAVAILABLE cubre la versión transitoria de lo mismo.Un cliente que asume que todo envío bien formado se acepta necesita una rama aquí. Consulta Regiones.4. Los flags include casi no tienen efecto
4. Los flags include casi no tienen efecto
Los flags
payload.include se aceptan, pero la mayoría de los motores devuelven una respuesta de forma fija y los
ignoran. Solo ChatGPT respeta el conjunto completo; GEMINI respeta solo markdown y rawResponse.Pedir html a Gemini, por ejemplo, se ignora en silencio: sin error y sin campo. Consulta la
tabla de flags admitidos.5. Un código de estado adicional: 422
5. Un código de estado adicional: 422
Por lo demás, el manejo de errores es convencional: los fallos de validación devuelven
400, 401 informa
MISSING_API_KEY, 404 informa RESOURCE_NOT_FOUND y details nombra el campo problemático.La única novedad es el par 422 (REGION_UNSUPPORTED, REGION_UNAVAILABLE) descrito arriba. Te avisamos de
antemano cuando una región no se puede servir, así que un cliente que nunca ha manejado un 422 empezará a verlos.6. Una tarea fallida añade una cadena error de nivel superior
6. Una tarea fallida añade una cadena error de nivel superior
GET /v1/async/task/{id} sobre una tarea FAILED devuelve un campo error de nivel superior que el esquema de
estado de tarea no define, y es una cadena simple, no el objeto {code, message, timestamp} de los errores de solicitud.body.error verdadero como una solicitud fallida malinterpretará una tarea fallida
que se recuperó correctamente. Ramifica por task.status.Estos comportamientos se establecieron llamando a esta API, no leyendo un esquema. Si alguna vez una especificación
publicada y una respuesta real no coinciden, estas páginas documentan la respuesta real.
Elegir el taskType correcto
Si tu integración actual usa un endpoint por motor, el nombre del motor se corresponde con un taskType:
Que
GOOGLE signifique «AI Overview» es una convención de nombres, no un nombre de producto de Google. La
respuesta es un sobre SERP con aioverview como miembro anulable; consulta la forma de GOOGLE.Verificar el cambio
Ejecuta en paralelo tu integración actual y esta durante un tiempo, y compara los campos que realmente consumes, en la prácticaresponse.text, response.sources[] y response.markdown. Una comparación en sombra detecta
diferencias de forma que un chequeo de esquema no ve, como una lista de fuentes rellenada pero ordenada de otra manera.