POST /v1/assets
Usa los campos de solicitud y permisos documentados para este endpoint HTTP.
Ejemplo de solicitud#
curl -X POST 'https://platform.tongai.io/v1/assets?purpose=image' \ -H "Authorization: Bearer $TONG_API_KEY" \ -H "Idempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03" \ -F '[email protected]'Configuración
curl --versionAutenticación#
Usa una clave API en tu servidor para tu cuenta, u OAuth para la cuenta de cada cliente. Nunca envíes claves en instrucciones ni argumentos.
assets:writeParámetros#
purposestringObligatorio"image""reference""video""audio_reference""director_document""director_reference""lora_media""motion_video""motion_image""video_edit"project_idstringOpcionalUn ID hexadecimal de 24 caracteres.
Idempotency-KeystringObligatorioUn UUID, por ejemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
Cuerpo de solicitud#
multipart/form-datafilestringObligatorioFormato: binary.
Esquema de respuesta#
{ "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8", "tool": "example", "category": "example", "channel": "api", "state": "queued", "status": "accepted", "stage": "admission", "dispatch_status": "pending", "created_at": "2026-10-22T09:00:00.000Z", "updated_at": "2026-10-22T09:00:00.000Z", "detail_expires_at": "2026-10-22T09:00:00.000Z", "detail_expired": false, "timing": { "dispatch_started_at": "2026-10-22T09:00:00.000Z", "acknowledged_at": "2026-10-22T09:00:00.000Z", "completed_at": "2026-10-22T09:00:00.000Z", "dispatch_acknowledgement_ms": 0, "end_to_end_ms": 0 }, "review": null, "result": null, "error": { "code": "example" }, "billing": { "status": "none", "usage_credits": "0.000000", "wallet_debited_credits": "0.000000" }}HTTP 202
application/jsonidstringObligatorioEl ID único de la operación guardada.
Un UUID, por ejemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
toolstringObligatoriocategorystringObligatoriochannelstringObligatorio"api""mcp"statestringObligatorioEl estado de ejecución actual del trabajo guardado.
"queued""running""waiting""needs_review""paused""reconciling""succeeded""failed""cancelled"statusstringObligatorioEl estado general para seguir la operación.
"accepted""running""needs_review""paused""reconciling""succeeded""failed""cancelled"stagestringObligatorioLa fase actual de la operación.
"admission""dispatch""review""generation""reconciliation""complete"dispatch_statusstringObligatorioIndica si la herramienta aceptó la solicitud. La confirmación no significa que la generación haya terminado.
"pending""unknown""acknowledged"created_atstringObligatorioFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
updated_atstringObligatorioFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
detail_expires_atstring | nullObligatorioCuándo caducan los detalles guardados. Un valor null indica que no hay caducidad establecida.
Fecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
detail_expiredbooleanObligatorioIndica si los detalles guardados han caducado.
timingobjectObligatorioMarcas de tiempo y tiempos transcurridos para seguir esta operación.
Mostrar campos anidados
dispatch_started_atstring | nullObligatorioFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
acknowledged_atstring | nullObligatorioFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
completed_atstring | nullObligatorioFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
dispatch_acknowledgement_msnumber | nullObligatorioMínimo: 0.
end_to_end_msnumber | nullObligatorioMínimo: 0.
reviewJSON | nullObligatorioInformación de revisión cuando se requiere intervención humana; en otro caso, null.
resultJSON | nullObligatorioEl resultado de esta herramienta, o null si aún no está disponible.
errorobject | nullObligatorioEl código de error público si la operación falló; en otro caso, null.
Mostrar campos anidados
codestringObligatoriobillingobjectObligatorioUso de créditos y cargos de la cartera. La disponibilidad del resultado y la liquidación son independientes.
Mostrar campos anidados
statusstringObligatorio"none""pending""settled""released""reconciling"usage_creditsstringObligatorioUna cadena decimal con seis decimales, por ejemplo 1.250000.
wallet_debited_creditsstringObligatorioUna cadena decimal con seis decimales, por ejemplo 1.250000.
released_creditsstringOpcionalUna cadena decimal con seis decimales, por ejemplo 1.250000.
refunded_creditsstringOpcionalUna cadena decimal con seis decimales, por ejemplo 1.250000.
unfunded_creditsstringOpcionalUna cadena decimal con seis decimales, por ejemplo 1.250000.
pending_creditsstringOpcionalUna cadena decimal con seis decimales, por ejemplo 1.250000.
tokensobjectOpcionalMostrar campos anidados
inputnumberOpcionalMínimo: 0.
outputnumberOpcionalMínimo: 0.
cachednumberOpcionalMínimo: 0.
cache_writenumberOpcionalMínimo: 0.
componentsobject[]OpcionalMostrar campos anidados
idstringOpcionalsource_idstringObligatoriotoolstringObligatoriomodelstring | nullObligatoriochannelstringObligatorio"api""mcp"credential_idstringObligatoriokindstringObligatorio"text_pool""reasoning""generation"usage_creditsstringObligatorioUna cadena decimal con seis decimales, por ejemplo 1.250000.
wallet_debited_creditsstringObligatorioUna cadena decimal con seis decimales, por ejemplo 1.250000.
evidence_atstringOpcionalFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
updated_atstringOpcionalFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
quoteobjectOpcionalLa configuración, el precio y los valores de envío cuando hay una cotización.
Mostrar campos anidados
idstringObligatorioUn UUID, por ejemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
operation_idstringObligatorioUn UUID, por ejemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
toolstringObligatoriooperationstring | nullObligatoriomodelstring | nullObligatorioconfigurationobjectObligatoriosubmit_valuestringObligatoriosubmit_fieldstringObligatorioquoted_creditsstring | nullObligatorioUna cadena decimal con seis decimales, por ejemplo 1.250000.
expires_atstring | nullObligatorioFecha y hora ISO 8601, por ejemplo 2026-10-22T09:00:00Z.
Errores y límites#
| HTTP | Error | Recuperación |
|---|---|---|
400 | Solicitud no válidaREQUEST_INVALID | Corrige los campos indicados por el error antes de reintentar. |
401 | Credencial no válidaCREDENTIAL_INVALID | Comprueba la credencial, su vencimiento y si fue revocada. |
402 | Créditos insuficientesINSUFFICIENT_CREDITS | Añade créditos a la cuenta de la credencial y continúa el trabajo guardado. |
403 | Permiso denegadoSCOPE_REQUIRED | Usa una credencial con los permisos necesarios y acceso al recurso seleccionado. |
404 | Recurso no disponibleRESOURCE_UNAVAILABLE | Comprueba el ID del recurso y que pertenezca a la cuenta autorizada. |
409 | Conflicto de intenciónIDEMPOTENCY_CONFLICT | Reutiliza una intención solo con su solicitud original. Usa un nuevo UUID para otra acción. |
429 | Límite de solicitudes alcanzadoRATE_LIMITED | Espera el intervalo de Retry-After antes de reintentar la misma solicitud. |
503 | No disponible temporalmenteDEPENDENCY_UNAVAILABLE | Espera Retry-After y reintenta con la misma intención. Consulta la operación guardada tras un tiempo de espera. |