Passer au contenu
Pour commencer

Démarrage rapide

Afficher en Markdown Mis à jour

Lancez votre première génération en quelques minutes. Les 1 496 modèles utilisent tous le même type de requête et renvoient le même objet de requête, pour les images, les vidéos et l’audio : apprenez-le une fois ici.

1. Obtenir une clé API

Créez une clé à l’adresse https://doitong.com/developers/dashboard#keys et conservez-la dans une variable d’environnement : elle n’est affichée qu’une seule fois. Chaque clé peut avoir son propre budget, ce qui vous permet d’en attribuer une à un agent sans risquer le compte entier. GET /account renvoie votre solde API.

export DOITONG_API_KEY="doitong_..."

curl "https://api.doitong.ru/v1/account" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Les exécutions sont payées à partir du solde API de votre compte en crédits API : 1 000 crédits API = 1 $, et chaque modèle coûte exactement le prix fixé par son créateur. Effectuez une recharge à l’adresse https://doitong.ru/developers/dashboard#balance.

2. Obtenir un devis, puis exécuter

POST /quote/{model_id} prend le JSON d’entrée et renvoie le prix exact. Il ne nécessite aucune clé et ne coûte rien. L’exécution de la même entrée coûte exactement ce montant : le devis correspond au montant facturé. (Un modèle facturé selon l’utilisation fait exception : son devis correspond au montant maximal de l’exécution, et la partie inutilisée est remboursée après l’exécution.)

curl -X POST "https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": true}'
200 OK · quote
{
  "object": "quote",
  "model": "kling-video/v3/pro/image-to-video",
  "credits": 840,
  "usd": "0.84",
  "unit": "second",
  "quantity": 5,
  "unit_credits": 168,
  "mode": "exact",
  "breakdown": "5 s × 168 API credits"
}

Envoyez ensuite le même corps à POST /run/{model_id}. Ajoutez ?wait=20 pour maintenir la connexion pendant 20 secondes au maximum : un modèle rapide renvoie le résultat terminé en un seul aller-retour. Envoyez un en-tête Idempotency-Key afin qu’une nouvelle tentative n’exécute ni ne facture jamais deux fois la même requête.

curl -X POST "https://api.doitong.ru/v1/run/flux/schnell?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: lighthouse-001" \
  -d '{"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"}'

La réponse est un objet de requête :

200 OK · request
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux/schnell",
  "status": "succeeded",
  "cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
  "outputs": [
    { "type": "image", "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg", "width": 1024, "height": 768, "stored": true }
  ],
  "error": null
}

3. Suivre l’état

Si le modèle fonctionne toujours à la fin de l’attente, vous recevez 202 Accepted avec l’id de la requête et son status actuel. Chaque requête suit le même cycle de vie :

Cycle de vie de la requête
  1. queued Acceptée et débitée, en attente d’un processus
  2. running Le modèle génère le résultat
  3. États finaux:
    • succeededLe montant indiqué a été débité; outputs[] contient les URL dans notre stockage
    • failedRemboursement automatique; l’erreur en indique la raison
    • canceledArrêtée avant l’obtention d’un résultat; remboursée

Relisez la requête avec son identifiant. ?wait=20 fonctionne également ici, donc une simple boucle suffit :

curl "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Lorsque status vaut succeeded, outputs[].url contient les liens vers les fichiers sur notre stockage. Si la requête a failed ou canceled, ses crédits API sont automatiquement remboursés et error en indique la raison. Annulez tout ce qui est encore queued ou running :

terminal
curl -X POST "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Pour les tâches vidéo longues, vous pouvez éviter l’interrogation périodique et transmettre plutôt un webhook_url (voir Webhooks).

4. Fichiers

Transmettez n’importe quelle URL publique comme entrée, ou demandez une URL d’envoi à POST /files, envoyez le fichier à cette adresse avec PUT et utilisez le file_url renvoyé (voir Fichiers). Une requête réussie répertorie ses résultats dans outputs[], avec le type, le type de contenu et, lorsqu’elles sont connues, les dimensions et la durée.

terminal
curl -X POST "https://api.doitong.ru/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'

Erreurs

Chaque modèle échoue de la même façon : une enveloppe contenant un type, un code exact, le param en cause et chaque problème dans details, afin qu’un agent puisse corriger la requête sans lire de texte explicatif. Rien n’est facturé pour une requête non valide.

422 Unprocessable Entity
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}

Tous les types et codes sont répertoriés dans Erreurs.

Tarification

Les prix sont indiqués en USD et en crédits API, et affichés sur chaque page de modèle avant l’exécution. Chaque requête contient cost avec credits, usd, charged et refunded. Une exécution est facturée lorsqu’elle est acceptée; les requêtes failed et canceled sont automatiquement remboursées. Certains modèles sont tarifés exactement selon l’entrée, certains selon la longueur ou la taille des fichiers envoyés, et d’autres facturent un prix estimé par exécution : dans tous les cas, vous payez le montant du devis. Quelques modèles (modèles de langage et de vision, outils de voix et de temps de traitement) sont facturés selon l’utilisation : le devis correspond au montant maximal de l’exécution, et la partie non utilisée est automatiquement remboursée. Voir Tarification.

MCP et agents IA

Connectez n’importe quel client MCP à https://api.doitong.ru/v1/mcp avec la même clé Bearer. Votre agent peut rechercher dans le catalogue, obtenir des devis et exécuter des modèles, et lire chaque page de documentation au format Markdown.

Claude Code
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Étapes suivantes