Soumettre une génération
tong_generation_submitSoumettez l’action configurée avec votre compte et vos crédits Tong. Suivez l’opération enregistrée jusqu’à sa fin.
/v1/tools/tong_generation_submit/operationsExemple de requête#
curl -X POST 'https://platform.tongai.io/v1/tools/tong_generation_submit/operations' \ -H "Authorization: Bearer $TONG_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03" \ -d '{ "input": { "params": { "id": "000000000000000000000001" }, "body": { "quoteId": "fixture-image-quote-token", "prompt": "A quiet street at blue hour", "operation": "TEXT_TO_IMAGE", "inputAssetIds": [], "parameters": { "textToImageModel": "tong_ea55aff4f3b5c8aba3a35569", "ratio": "16:9" } } }}'Configuration
curl --versionAutorisations#
Utilisez une clé API côté serveur pour votre compte, ou OAuth pour chaque client. N’envoyez jamais de clés dans les prompts ou arguments.
generation:writecredits:spendCorps de la requête#
Les requêtes REST placent les arguments dans input. Les appels MCP envoient ces mêmes arguments directement.
paramsobjectObligatoireAfficher les champs imbriqués
idstringObligatoireUn identifiant hexadécimal de 24 caractères.
"000000000000000000000001"bodyobjectObligatoireAfficher les champs imbriqués
quoteIdstringObligatoireUtilisez la valeur de soumission du devis renvoyée pour cette configuration exacte.
Longueur minimale : 1 caractères.
Longueur maximale : 120 caractères.
"fixture-image-quote-token"promptstringObligatoireDécrivez le résultat souhaité.
Longueur minimale : 1 caractères.
Longueur maximale : 5000 caractères.
"A quiet street at blue hour"operationstringObligatoireSélectionnez un flux pris en charge par le modèle choisi.
"TEXT_TO_IMAGE""IMAGE_EDIT""CHARACTER_RECREATE""CHARACTER_RECREATE_SPICY""TEXT_TO_VIDEO""IMAGE_TO_VIDEO""CHARACTER_TO_VIDEO""CHARACTER_TO_VIDEO_SPICY""FIRST_LAST_TO_VIDEO""TEXT_TO_IMAGE"inputAssetIdsstring[]ObligatoireNombre maximal d’éléments : 120.
[]parametersobjectObligatoireAfficher les champs imbriqués
directorRequiredReferenceCountintegerFacultatifMinimum : 1.
Maximum : 20.
referenceDirectionobjectFacultatifAfficher les champs imbriqués
versionnumberObligatoire1capabilityRevisionstringObligatoireLongueur minimale : 1 caractères.
Longueur maximale : 100 caractères.
keepVideoSoundbooleanFacultatifseedintegerFacultatifMinimum : 0.
Maximum : 2147483647.
automaticShotsbooleanFacultatifautomaticDurationbooleanFacultatifoutputResolutionstringFacultatif"720p-SR""1080p-SR""1440p-SR"bitratestringFacultatif"standard""high"returnLastFramebooleanFacultatifdocumentUrlstringFacultatifFormat : uri.
Longueur maximale : 2048 caractères.
subjectSequenceintegerFacultatifMinimum : 0.
Maximum : 999.
subjectsobject[]FacultatifNombre maximal d’éléments : 6.
Afficher les champs imbriqués
idstringObligatoireUtilisez un libellé de sujet numéroté, par exemple Subject1.
namestringObligatoireLongueur minimale : 1 caractères.
Longueur maximale : 80 caractères.
descriptionstringFacultatifLongueur maximale : 500 caractères.
assetIdsstring[]ObligatoireNombre minimal d’éléments : 1.
Nombre maximal d’éléments : 4.
shotsobject[]FacultatifNombre minimal d’éléments : 1.
Nombre maximal d’éléments : 6.
Afficher les champs imbriqués
idstringObligatoireLongueur minimale : 1 caractères.
Longueur maximale : 80 caractères.
promptstringObligatoireDécrivez le résultat souhaité.
Longueur minimale : 1 caractères.
Longueur maximale : 1800 caractères.
durationSecondsintegerObligatoireMinimum : 1.
Maximum : 15.
referencesobject[]ObligatoireUtilisez les ID de ressources de votre compte compatibles avec les références du modèle choisi.
Nombre maximal d’éléments : 120.
Afficher les champs imbriqués
idstringObligatoireLongueur minimale : 1 caractères.
Longueur maximale : 80 caractères.
assetIdstringObligatoireUtilisez l’identifiant d’une ressource du compte autorisé.
Un identifiant hexadécimal de 24 caractères.
fieldstringObligatoireLongueur minimale : 1 caractères.
Longueur maximale : 80 caractères.
labelstringObligatoireUtilisez un libellé de référence numéroté, par exemple Image1.
autoEnhancePromptbooleanFacultatifpromptEnhancementIdstringFacultatifUn identifiant hexadécimal de 24 caractères.
negativePromptModestringFacultatif"REPLACE"cameraMotionstringFacultatif"AUTO""ORBIT_RIGHT""ORBIT_LEFT""PUSH_IN""PULL_BACK""RISE"qualityPresetstringFacultatif"REALISTIC""DRAFT"casualPhoneFinishbooleanFacultatifrecreateReferenceRolesstring[]FacultatifNombre minimal d’éléments : 2.
Nombre maximal d’éléments : 20.
characterVideoReferenceRolesstring[]FacultatifNombre minimal d’éléments : 1.
Nombre maximal d’éléments : 30.
imageModelstringFacultatifLongueur minimale : 1 caractères.
Longueur maximale : 150 caractères.
textToImageModelstringFacultatifLongueur minimale : 1 caractères.
Longueur maximale : 150 caractères.
"tong_ea55aff4f3b5c8aba3a35569"videoModelstringFacultatifLongueur minimale : 1 caractères.
Longueur maximale : 150 caractères.
durationSecondsintegerFacultatifMinimum : 2.
Maximum : 30.
resolutionstringFacultatif"480p""720p""768p""1080p""2k""4k"ratiostringFacultatif"21:9""16:9""4:3""1:1""3:4""9:16""adaptive""16:9"videoStylestringFacultatif"NATURAL_PHONE""CINEMATIC""FOLLOW_PROMPT"generateAudiobooleanFacultatifseedintegerFacultatifMinimum : 0.
Maximum : 2147483647.
promptExtendbooleanFacultatifnegativePromptstringFacultatifLongueur maximale : 2000 caractères.
workspaceProjectIdstring | nullFacultatifUn identifiant hexadécimal de 24 caractères.
characterProfileIdstringFacultatifUn identifiant hexadécimal de 24 caractères.
annotationsobject[]FacultatifNombre maximal d’éléments : 8.
Afficher les champs imbriqués
xnumberObligatoireMinimum : 0.
Maximum : 1.
ynumberObligatoireMinimum : 0.
Maximum : 1.
radiusnumberObligatoireMinimum : 0.02.
Maximum : 0.5.
commentstringObligatoireLongueur minimale : 1 caractères.
Longueur maximale : 500 caractères.
filmSceneobjectFacultatifAfficher les champs imbriqués
projectIdstringObligatoireUtilisez l’identifiant d’un projet du compte autorisé.
Un identifiant hexadécimal de 24 caractères.
shotIdstringObligatoireUtilisez des lettres, chiffres, tirets bas ou traits d’union.
Longueur minimale : 1 caractères.
Longueur maximale : 120 caractères.
revisionintegerObligatoireMinimum : 0.
Maximum : 9007199254740991.
filmReferenceobjectFacultatifAfficher les champs imbriqués
projectIdstringObligatoireUtilisez l’identifiant d’un projet du compte autorisé.
Un identifiant hexadécimal de 24 caractères.
entityIdstringObligatoireUtilisez des lettres, chiffres, tirets bas ou traits d’union.
Longueur minimale : 1 caractères.
Longueur maximale : 120 caractères.
revisionintegerObligatoireMinimum : 0.
Maximum : 9007199254740991.
En-têtes de requête#
Authorization: Bearer $TONG_API_KEYContent-Type: application/jsonIdempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03Conservez un UUID par action et réutilisez-le après un délai ou une nouvelle tentative. Une entrée différente avec le même UUID est refusée.
Champs de réponse#
Une requête acceptée n’est pas une génération terminée. Suivez le travail jusqu’à ce que le résultat soit prêt.
Acceptée signifie que la requête a été enregistrée. Consultez l’opération pour suivre son exécution.
{ "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8", "tool": "tong_generation_submit", "category": "generation", "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": null, "detail_expired": false, "timing": { "dispatch_started_at": null, "acknowledged_at": null, "completed_at": null, "dispatch_acknowledgement_ms": null, "end_to_end_ms": null }, "review": null, "result": null, "error": null, "billing": { "status": "pending", "usage_credits": "0.000000", "wallet_debited_credits": "0.000000" }}idstringObligatoireL’identifiant unique de l’opération enregistrée.
Un UUID, par exemple e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
toolstringObligatoirecategorystringObligatoirechannelstringObligatoire"api""mcp"statestringObligatoireL’état d’exécution actuel du travail enregistré.
"queued""running""waiting""needs_review""paused""reconciling""succeeded""failed""cancelled"statusstringObligatoireLe statut global à utiliser pour suivre l’opération.
"accepted""running""needs_review""paused""reconciling""succeeded""failed""cancelled"stagestringObligatoireLa phase actuelle de l’opération.
"admission""dispatch""review""generation""reconciliation""complete"dispatch_statusstringObligatoireIndique si l’outil a accepté la requête. Un accusé de réception ne signifie pas que la génération est terminée.
"pending""unknown""acknowledged"created_atstringObligatoireDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
updated_atstringObligatoireDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
detail_expires_atstring | nullObligatoireDate d’expiration des détails enregistrés. La valeur null indique qu’aucune expiration n’est définie.
Date et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
detail_expiredbooleanObligatoireIndique si les détails enregistrés ont expiré.
timingobjectObligatoireHorodatages et durées pour suivre cette opération.
Afficher les champs imbriqués
dispatch_started_atstring | nullObligatoireDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
acknowledged_atstring | nullObligatoireDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
completed_atstring | nullObligatoireDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
dispatch_acknowledgement_msnumber | nullObligatoireMinimum : 0.
end_to_end_msnumber | nullObligatoireMinimum : 0.
reviewJSON | nullObligatoireInformations de validation si une intervention humaine est requise ; sinon null.
resultJSON | nullObligatoireLa sortie de cet outil, ou null si aucune sortie n’est disponible.
errorobject | nullObligatoireLe code d’erreur public si l’opération a échoué ; sinon null.
Afficher les champs imbriqués
codestringObligatoirebillingobjectObligatoireUtilisation des crédits et débits du portefeuille. La disponibilité du résultat et le règlement sont distincts.
Afficher les champs imbriqués
statusstringObligatoire"none""pending""settled""released""reconciling"usage_creditsstringObligatoireUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
wallet_debited_creditsstringObligatoireUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
released_creditsstringFacultatifUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
refunded_creditsstringFacultatifUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
unfunded_creditsstringFacultatifUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
pending_creditsstringFacultatifUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
tokensobjectFacultatifAfficher les champs imbriqués
inputnumberFacultatifMinimum : 0.
outputnumberFacultatifMinimum : 0.
cachednumberFacultatifMinimum : 0.
cache_writenumberFacultatifMinimum : 0.
componentsobject[]FacultatifAfficher les champs imbriqués
idstringFacultatifsource_idstringObligatoiretoolstringObligatoiremodelstring | nullObligatoirechannelstringObligatoire"api""mcp"credential_idstringObligatoirekindstringObligatoire"text_pool""reasoning""generation"usage_creditsstringObligatoireUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
wallet_debited_creditsstringObligatoireUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
evidence_atstringFacultatifDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
updated_atstringFacultatifDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
quoteobjectFacultatifLa configuration, le prix et les valeurs de soumission lorsqu’un devis est disponible.
Afficher les champs imbriqués
idstringObligatoireUn UUID, par exemple e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
operation_idstringObligatoireUn UUID, par exemple e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
toolstringObligatoireoperationstring | nullObligatoiremodelstring | nullObligatoireconfigurationobjectObligatoiresubmit_valuestringObligatoiresubmit_fieldstringObligatoirequoted_creditsstring | nullObligatoireUne chaîne décimale avec six chiffres après la virgule, par exemple 1.250000.
expires_atstring | nullObligatoireDate et heure ISO 8601, par exemple 2026-10-22T09:00:00Z.
Appel MCP#
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "tong_generation_submit", "arguments": { "params": { "id": "000000000000000000000001" }, "body": { "quoteId": "fixture-image-quote-token", "prompt": "A quiet street at blue hour", "operation": "TEXT_TO_IMAGE", "inputAssetIds": [], "parameters": { "textToImageModel": "tong_ea55aff4f3b5c8aba3a35569", "ratio": "16:9" } } }, "_meta": { "io.tongai/idempotency-key": "45be69f1-c266-4a09-a82c-bf3c6303eb03" } }}Les requêtes REST placent les arguments dans input. Les appels MCP envoient ces mêmes arguments directement.
Réponse
{ "jsonrpc": "2.0", "id": 1, "result": { "structuredContent": { "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8", "tool": "tong_generation_submit", "category": "generation", "channel": "mcp", "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": null, "detail_expired": false, "timing": { "dispatch_started_at": null, "acknowledged_at": null, "completed_at": null, "dispatch_acknowledgement_ms": null, "end_to_end_ms": null }, "review": null, "result": null, "error": null, "billing": { "status": "pending", "usage_credits": "0.000000", "wallet_debited_credits": "0.000000" } }, "content": [ { "type": "text", "text": "{\"id\":\"e8aa0a87-6cd9-42eb-975a-b72bf43218c8\",\"tool\":\"tong_generation_submit\",\"category\":\"generation\",\"channel\":\"mcp\",\"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\":null,\"detail_expired\":false,\"timing\":{\"dispatch_started_at\":null,\"acknowledged_at\":null,\"completed_at\":null,\"dispatch_acknowledgement_ms\":null,\"end_to_end_ms\":null},\"review\":null,\"result\":null,\"error\":null,\"billing\":{\"status\":\"pending\",\"usage_credits\":\"0.000000\",\"wallet_debited_credits\":\"0.000000\"}}" } ] }}Erreurs et limites#
| HTTP | Erreur | Reprise |
|---|---|---|
400 | Requête invalideREQUEST_INVALID | Corrigez les champs indiqués par l’erreur avant de réessayer. |
401 | Identifiant invalideCREDENTIAL_INVALID | Vérifiez l’identifiant, son expiration et son éventuelle révocation. |
402 | Crédits insuffisantsINSUFFICIENT_CREDITS | Ajoutez des crédits au compte de l’identifiant, puis poursuivez le travail enregistré. |
403 | Autorisation refuséeSCOPE_REQUIRED | Utilisez un identifiant disposant des autorisations requises et de l’accès à la ressource choisie. |
404 | Ressource indisponibleRESOURCE_UNAVAILABLE | Vérifiez l’ID de la ressource et son appartenance au compte autorisé. |
409 | Conflit d’intentionIDEMPOTENCY_CONFLICT | Réutilisez une intention uniquement avec sa requête initiale. Utilisez un nouvel UUID pour une autre action. |
429 | Limite de débit atteinteRATE_LIMITED | Attendez le délai Retry-After avant de répéter la même requête. |
503 | Temporairement indisponibleDEPENDENCY_UNAVAILABLE | Attendez Retry-After et réessayez avec la même intention. Vérifiez l’opération enregistrée après un délai dépassé. |