Solicitudes y respuestas
On this page
Las solicitudes son JSON o multipart/form-data; las respuestas son JSON. Cada respuesta lleva un encabezado X-Curriculo-Request-Id . Cítelo cuando contacte con el soporte para que podamos encontrar la llamada exacta.
Rutas
- Las operaciones síncronas terminan con una barra diagonal al final:
/parse/,/evaluate/,/jobs/,/translate/,/detect-language/,/summary/,/transcribe/,/prompt/. - Las rutas de tareas en segundo plano se documentan sin una:
/{op}/asyncy/{op}/tasks/{task_id}. - Las rutas de selección se documentan sin una:
/screening-interviewy/screening-interview/{screening_id}.
Tipos de contenido
| Operación | Acepta |
|---|---|
/parse/, /evaluate/, /prompt/, /transcribe/ | multipart/form-data |
/detect-language/, /jobs/, /screening-interview | application/json |
/translate/ | application/json para texto, o multipart/form-data para enviar PDF o DOCX documentos |
/summary/ | application/json para transcripciones, o multipart/form-data para enviar grabaciones o documentos de transcripción |
/{op}/async | application/json con una lista de enlaces, o multipart/form-data con cargas (un campo de enlace se puede repetir o enviar uno por línea) |
Límites de tamaño de solicitud
| Límite | Valor | Se aplica a |
|---|---|---|
| Cuerpo de la solicitud | 12 MB | Cada llamada, excepto /summary/. Las solicitudes más grandes son rechazadas en el borde con 413 antes de la autenticación. |
| Un documento | 10 MB | files, file, resume_pdfs, resume_pdf, job_file, y los documentos enviados a /translate/ |
| Documentos por solicitud | 10 | /parse/, /evaluate/, /translate/ (archivos), /summary/ (entrevistas o media archivos) |
| Textos por solicitud | 200 | /translate/, /detect-language/ |
| Caracteres | 50,000 | /translate/ (total por texts, y por documento), /detect-language/ (por texto) |
| Texto de transcripción | 200.000 caracteres | /summary/ transcript_text |
| Documento de transcripción | 50 MB | /summary/ Transcripción de PDF o DOCX |
| Grabación, síncrona | 100 MB | /summary/ media |
| Grabación, síncrona | 12 MB | /transcribe/ media |
| Carga a una tarea en segundo plano | 12 MB por archivo | /{op}/async multiparte |
| Enlaces por tarea en segundo plano | 25 | file_urls, resume_urls |
| Grabación por enlace | 1 GB y 2 horas | /summary/async, /transcribe/async media_url |
Al superar cualquier límite, el API devuelve 413. Dividir la carga de trabajo o enviar grabaciones largas mediante enlace al carril asíncrono .
Una llamada síncrona también está limitada por el tiempo de espera de 300 segundos. Una grabación grande que tarda más en procesarse devuelve
504, por lo que se prefiere/summary/asyncpara entrevistas largas.
Formatos de respuesta
Toda operación que recibe una lista sigue una regla: enviar un elemento, obtener el objeto de ese elemento; enviar varios, obtener un resultado por elemento, en el orden de entrada.
Varios elementos devuelven una entrada por cada elemento:
{
"results": [
{ "index": 0, "status": "ok", "data": { … } },
{ "index": 1, "status": "error", "error": { "status": 400, "detail": "…" } },
{ "index": 2, "status": "ok", "data": { … } }
]
}El estado HTTP permanece 200 cuando el lote fue aceptado, por lo que se lee status por elemento. Un CV ilegible nunca le cuesta los otros nueve. Ver Batching.
Uso y gasto
Las respuestas no incluyen datos de costos. Las llamadas, errores, latencia y cargo estimado se encuentran en Consola → Uso, filtrables por clave. Ver Precios y facturación.
Higiene de entrada
- Claves duplicadas en un cuerpo JSON (
/translate/,/summary/,/detect-language/) son rechazadas con400indicando la clave. - Los PDFs protegidos con contraseña son rechazados con
400. Eliminar la contraseña y reenviar. - Los nombres de campo distinguen mayúsculas y minúsculas.
Versionado
No existe encabezado de versión API. La interfaz se versiona por ruta, y los cambios aditivos (nuevos campos opcionales, nuevas operaciones) se implementan sin romper las llamadas existentes. Desarrollar clientes que ignoren los campos de respuesta desconocidos.
Updated