Doro API Se connecter
API Doro

Documentation de l'API

L'API Doro génère images et vidéos avec les mêmes moteurs que le site. Vous envoyez la demande, suivez l'avancement et téléchargez le résultat. Toutes les réponses sont en JSON.

Créer une clé

PTENESITFRNO

Authentification

Créez une clé dans votre compte et envoyez-la à chaque appel, dans l'en-tête Authorization: Bearer. La clé ne s'affiche qu'une fois ; gardez-la comme un mot de passe et ne la mettez jamais dans du code exécuté dans le navigateur. Révoquée, elle s'arrête immédiatement.

curl https://dorovisual.com/v1/saldo \
  -H "Authorization: Bearer doro_xxxxxxxxxxxx_..."

Facturation

Uniquement un solde prépayé, uniquement en dollars : vous rechargez en USD (minimum US$ 10) et chaque génération déduit son prix. Sans abonnement, et le solde n'expire pas.

Les crédits des forfaits du site ne paient pas l'API. Même les abonnés utilisent ici le solde en dollars.

Le montant est réservé à la création de la génération. Si elle échoue, est refusée ou annulée, le montant revient entièrement au solde. Sans solde suffisant, la réponse est 402 et rien n'est créé ni facturé.

Prix

Vous payez l'unité réelle de consommation : par seconde de vidéo et par image, selon la résolution. Utilisez /v1/estimativa pour connaître le prix exact avant de générer.

Vidéo

MoteurmotorRésolutionPrix (USD)
Seedance 2.0seedance_2_0720p US$ 0.92 par seconde
Omni Flash 1.1omni_flash_1_1720p US$ 0.36 par seconde
Omni Flash 1.1omni_flash_1_11080p US$ 0.51 par seconde
Hailuo 3hailuo_h3768P US$ 0.27 par seconde
Hailuo 3hailuo_h32K US$ 0.43 par seconde
Hailuo 3 Maxhailuo_h3_max480P US$ 0.19 par seconde
Hailuo 3 Maxhailuo_h3_max768P US$ 0.27 par seconde
Kling 2.5 Turbokling_2_5— US$ 0.23 par seconde
Kling 3.0kling_3_0— US$ 0.53 par seconde
Kling 3.0 Omnikling_3_0_omni— US$ 0.43 par seconde
Grok Imagine 1.5grok_imagine_1_5480p US$ 0.27 par seconde
Grok Imagine 1.5grok_imagine_1_5720p US$ 0.45 par seconde
Grok Imagine 1.5grok_imagine_1_51080p US$ 0.77 par seconde
FLUX 3 Videoflux_3_video720p US$ 0.53 par seconde
FLUX 3 Videoflux_3_video1080p US$ 0.89 par seconde
FLUX 3 Video Draftflux_3_video_draft— US$ 0.19 par seconde
Wan 3.0wan_3_0480p US$ 0.17 par seconde
Wan 3.0wan_3_0720p US$ 0.31 par seconde
Wan 3.0wan_3_01080p US$ 0.61 par seconde
Seedance 2.5seedance_2_5480p US$ 0.69 par seconde
Seedance 2.5seedance_2_5720p US$ 1.43 par seconde
Seedance 2.5seedance_2_51080p US$ 3.51 par seconde

Image

MoteurmotorRésolutionPrix (USD)
Nano Banana Pronano_banana_pro1K US$ 0.45 par image
Nano Banana Pronano_banana_pro2K US$ 0.45 par image
Nano Banana Pronano_banana_pro4K US$ 0.90 par image
GPT Image 2.5 Sunburstgpt_image_2_5_sunburst— US$ 0.71 par image
GPT Image 2.5 Flaregpt_image_2_5_flare— US$ 0.71 par image
Nano Banana 2nano_banana_21K US$ 0.31 par image
Nano Banana 2nano_banana_22K US$ 0.41 par image
Nano Banana 2nano_banana_24K US$ 0.51 par image
Muse Imagemuse_image— US$ 0.11 par image
Seedream 5.0 Proseedream_5_pro1.5K US$ 0.31 par image
Seedream 5.0 Proseedream_5_pro2K US$ 0.51 par image
Seedream 5.0 Liteseedream_5_lite— US$ 0.21 par image
FLUX 3flux_31K US$ 0.31 par image
FLUX 3flux_32K US$ 0.81 par image
Recraft V4recraft_v4— US$ 0.21 par image
Recraft V4 Prorecraft_v4_pro— US$ 0.81 par image

Endpoints

Base : l'adresse de ce site. Les montants sont en cents de dollar (entiers).

GET/v1/motores

Liste les moteurs, les paramètres acceptés (valeurs et défauts), les références acceptées et le prix unitaire en dollars. Filtrez avec ?tipo=imagem ou ?tipo=video.

curl https://dorovisual.com/v1/motores -H "Authorization: Bearer $DORO_KEY"

POST/v1/estimativa

Indique le coût d'une génération en dollars, sans rien créer.

curl https://dorovisual.com/v1/estimativa -H "Authorization: Bearer $DORO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"motor": "seedance_2_0", "params": {"duracao": 5, "resolucao": "720p"}}'

POST/v1/geracoes

Crée une génération et renvoie 201 avec elle en "criando". Champs : motor, prompt, params (facultatif ; le reste prend la valeur par défaut) et webhook_url (facultatif). Toujours débité du solde en dollars.

curl https://dorovisual.com/v1/geracoes -H "Authorization: Bearer $DORO_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-123" \
  -d '{"motor": "nano_banana_pro", "prompt": "a red fox in the snow, golden hour",
       "params": {"resolucao": "2K", "proporcao": "16:9", "quantidade": 1},
       "webhook_url": "https://example.com/doro/aviso"}'

Avec des images de référence, envoyez du multipart/form-data : les mêmes champs en texte (params en JSON) et chaque image dans le champ referencias (PNG, JPEG ou WebP, jusqu'à 10 Mo chacune).

curl https://dorovisual.com/v1/geracoes -H "Authorization: Bearer $DORO_KEY" \
  -F motor=seedance_2_0 -F prompt="the fox starts to run" \
  -F 'params={"duracao": 5}' -F [email protected]
{"geracao": {"id": "3f1c…", "motor": "Seedance 2.0", "tipo": "video", "estado": "criando",
  "cobranca": "saldo", "valor": {"moeda": "USD", "centavos": 460}, "arquivos": [],
  "estornado": false, "criado_em": "2026-10-06T12:00:00+00:00", "pronto_em": null}}

GET/v1/geracoes/<id>

Le statut de la génération : criando, pronta, falhou ou cancelada. Quand elle est prête, "arquivos" donne l'adresse de chaque fichier. "estornado": true quand le montant a été remboursé.

curl https://dorovisual.com/v1/geracoes/3f1c… -H "Authorization: Bearer $DORO_KEY"

GET/v1/geracoes/<id>/arquivos/<n>

Redirige (302) vers un lien de téléchargement temporaire du fichier. Utilisez -L avec curl pour le suivre.

curl -L -o resultado.mp4 https://dorovisual.com/v1/geracoes/3f1c…/arquivos/0 \
  -H "Authorization: Bearer $DORO_KEY"

POST/v1/geracoes/<id>/cancelar

Annule tant que la génération n'a pas commencé et rembourse le montant. Ensuite, 409 nao_cancelavel.

GET/v1/geracoes?pagina=1

Les générations de votre compte via l'API, les plus récentes d'abord, 50 par page.

GET/v1/saldo

Votre solde en dollars, en cents.

{"saldo": {"USD": 2000}}

Réessayer sans payer deux fois

Envoyez l'en-tête Idempotency-Key (lettres, chiffres, . _ : -, jusqu'à 128) sur POST /v1/geracoes. Répéter la même clé renvoie la même génération, sans nouveau débit : sûr pour réessayer après une erreur réseau.

Avis de fin (webhook)

Avec webhook_url (https, port 443, adresse publique), Doro envoie un POST JSON quand la génération se termine : {"evento": "geracao.terminada", "geracao": {...}}, le même corps que la consultation. Les réponses 2xx comptent comme livrées ; jusqu'à 3 tentatives. Les redirections ne sont pas suivies.

Doro-Signature: t=1760000000,v1=5f2b…

# Python
import hmac, hashlib
t, v1 = (p.split("=", 1)[1] for p in header.split(","))
esperado = hmac.new(segredo.encode(), f"{t}.".encode() + corpo, hashlib.sha256).hexdigest()
assert hmac.compare_digest(esperado, v1)

Vérifiez l'en-tête Doro-Signature : HMAC-SHA256 du secret de votre compte (dans l'espace des clés) sur "<t>.<corps>". Refusez les avis dont t est trop ancien.

Limites

Par clé : 3 générations en cours à la fois et 60 par heure ; par compte : 6 en cours et 120 par heure ; et 120 appels par minute par clé. Au-delà, 429 avec l'en-tête Retry-After.

Erreurs

Toute erreur est en JSON : {"erro": "<code>"}, avec "campo" en 400. Le texte du code ne change pas ; utilisez-le dans votre traitement.

HTTPerro
400parametroUn champ est hors de ce qui est accepté (son nom est dans "campo").
401chave_invalidaClé absente, erronée ou révoquée.
402sem_saldoLe solde en dollars ne couvre pas la génération. Rien n'a été créé.
404nao_encontradaN'existe pas, ou n'appartient pas à votre compte.
409nao_cancelavelLa génération a déjà commencé et ne peut plus être annulée.
429limiteLimite atteinte ("motivo" indique laquelle). Attendez le Retry-After.
503indisponivelLe moteur est indisponible pour l'instant. Rien n'a été débité ; réessayez.
500internoErreur de notre côté. Le "codigo" aide le support à retrouver le cas.