Crear una traducción
Send the file one of three ways: JSON with content (the file itself as UTF-8 text — text formats only, the simplest path for agents), JSON with file_url (HTTPS, fetched server-side, no redirects), or multipart/form-data with a file field (required for XLSX and ZIP). filename is optional: if omitted, a clean default name is generated and the format is inferred automatically from the content. Include instruction to get the full trust-gated plan back in the same response (takes some seconds); omit it to receive four grounded suggested_instructions and continue with the plan endpoint. Quality is chosen at approval, not here — the plan quotes both tiers. Per-format size limits are on /v1/account as entitlements.max_upload_bytes_by_format. The upload also appears in the web app.
POST/v1/batches
Requiere batches:create. Crear una traducción no cuesta nada: los créditos solo se reservan al aprobar un plan.
Elegir cómo enviar el archivo
Hay tres métodos de transferencia y la elección correcta depende del formato, no de las preferencias.
| Método de transferencia | Cuándo usarlo | Notas |
|---|---|---|
JSON con content | Cualquier formato de texto | El propio archivo como texto UTF-8. Es la vía más sencilla si tu agente ya tiene el contenido en memoria. |
JSON con file_url | Un archivo ya alojado | Solo HTTPS, obtenido en el servidor. No se siguen redirecciones, por lo que debes proporcionar la URL final. |
multipart/form-data | XLSX y ZIP | Obligatorio para formatos binarios: no se pueden enviar como texto JSON. |
filename es opcional, pero se recomienda enviarlo. La extensión determina el formato, por lo que nombres como strings.xml o export.csv aplicarán analizadores distintos aunque los bytes sean idénticos.
Qué ocurre a continuación
La respuesta devuelve un batch_id. A partir de ahí, la secuencia es siempre la misma:
POST /v1/batches/{batch_id}/plan: describe qué traducir con tus propias palabras.POST /v1/batches/{batch_id}/approve: consume créditos e inicia el proceso.GET /v1/batches/{batch_id}: sondea el estado hasta que termine.GET /v1/batches/{batch_id}/result: obtén el resultado. Devuelve un enlace firmado, no el archivo en sí.