Chiffrer une génération
tong_generation_quoteObtenez un devis pour le modèle, les entrées et la configuration exacts avant de soumettre l’action.
/v1/tools/tong_generation_quote/operationsExemple de requête#
curl -X POST 'https://platform.tongai.io/v1/tools/tong_generation_quote/operations' \ -H "Authorization: Bearer $TONG_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03" \ -d '{ "input": { "body": { "operation": "TEXT_TO_IMAGE", "model": "tong_ea55aff4f3b5c8aba3a35569", "routingParameters": { "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:writequotes:writeCorps de la requête#
Les requêtes REST placent les arguments dans input. Les appels MCP envoient ces mêmes arguments directement.
bodyobjectObligatoireAfficher les champs imbriqués
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"modelstringObligatoireChoisissez un ID de modèle public Tong dans la découverte actuelle.
Longueur minimale : 1 caractères.
Longueur maximale : 100 caractères.
"tong_ea55aff4f3b5c8aba3a35569"resolutionstring | nullFacultatif"480p""720p""768p""1080p""2k""4k"quantityintegerFacultatifMinimum : 1.
Maximum : 60.
durationSecondsintegerFacultatifMinimum : 1.
Maximum : 60.
inputAssetIdsstring[]FacultatifNombre maximal d’éléments : 20.
characterProfileIdstringFacultatifUn identifiant hexadécimal de 24 caractères.
annotationGuidebooleanFacultatifroutingParametersobjectFacultatifUtilisez les réglages renvoyés pour ce modèle et ce flux. Conservez-les pour le devis et la soumission.
Afficher les champs imbriqués
directorRequiredReferenceCountintegerFacultatifMinimum : 1.
Maximum : 20.
recreateReferenceRolesstring[]FacultatifNombre maximal d’éléments : 20.
ratiostringFacultatif"21:9""16:9""4:3""1:1""3:4""9:16""adaptive""16:9"generateAudiobooleanFacultatifpromptExtendbooleanFacultatifseedintegerFacultatifMinimum : -1.
Maximum : 2147483647.
negativePromptstringFacultatifLongueur maximale : 3000 caractères.
negativePromptModestringFacultatif"REPLACE"referenceRequestobjectFacultatifAfficher les champs imbriqués
ratiostringFacultatifLongueur minimale : 1 caractères.
Longueur maximale : 20 caractères.
generateAudiobooleanFacultatifpromptstringObligatoireDécrivez le résultat souhaité.
Longueur minimale : 1 caractères.
Longueur maximale : 20000 caractères.
directionobjectObligatoireAfficher 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.
assetIdsstring[]ObligatoireNombre maximal d’éléments : 120.
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_quote", "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_quote", "arguments": { "body": { "operation": "TEXT_TO_IMAGE", "model": "tong_ea55aff4f3b5c8aba3a35569", "routingParameters": { "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_quote", "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_quote\",\"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é. |