Doro API Entrar
API Doro

Documentação da API

A API do Doro gera imagem e vídeo com os mesmos motores do site. Você manda o pedido, acompanha o andamento e baixa o resultado. Todas as respostas são JSON.

Criar uma chave

PTENESITFRNO

Autenticação

Crie uma chave na sua conta e mande em toda chamada, no cabeçalho Authorization: Bearer. A chave aparece uma vez só; guarde como uma senha e nunca a coloque em código que roda no navegador. Revogada, ela para na hora.

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

Cobrança

Só saldo pré-pago, só em dólar: você recarrega em US$ (mínimo de US$ 10) e cada geração desconta o valor dela. Sem mensalidade, e o saldo não vence.

Os créditos dos planos do site não pagam a API. Mesmo quem assina um plano usa o saldo em dólar aqui.

O valor é reservado quando a geração é criada. Se ela falhar, for recusada ou cancelada, o valor volta inteiro ao saldo. Sem saldo suficiente, a resposta é 402 e nada é criado nem cobrado.

Preços

Você paga pela unidade real de consumo: por segundo de vídeo e por imagem, conforme a resolução. Use /v1/estimativa para saber o valor exato antes de gerar.

Vídeo

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

Imagem

MotormotorResoluçãoPreço (USD)
Nano Banana Pronano_banana_pro1K US$ 0.45 por imagem
Nano Banana Pronano_banana_pro2K US$ 0.45 por imagem
Nano Banana Pronano_banana_pro4K US$ 0.90 por imagem
GPT Image 2.5 Sunburstgpt_image_2_5_sunburst— US$ 0.71 por imagem
GPT Image 2.5 Flaregpt_image_2_5_flare— US$ 0.71 por imagem
Nano Banana 2nano_banana_21K US$ 0.31 por imagem
Nano Banana 2nano_banana_22K US$ 0.41 por imagem
Nano Banana 2nano_banana_24K US$ 0.51 por imagem
Muse Imagemuse_image— US$ 0.11 por imagem
Seedream 5.0 Proseedream_5_pro1.5K US$ 0.31 por imagem
Seedream 5.0 Proseedream_5_pro2K US$ 0.51 por imagem
Seedream 5.0 Liteseedream_5_lite— US$ 0.21 por imagem
FLUX 3flux_31K US$ 0.31 por imagem
FLUX 3flux_32K US$ 0.81 por imagem
Recraft V4recraft_v4— US$ 0.21 por imagem
Recraft V4 Prorecraft_v4_pro— US$ 0.81 por imagem

Endpoints

Base: o endereço deste site. Valores em dinheiro vêm em centavos de dólar (inteiros).

GET/v1/motores

Lista os motores, os parâmetros aceitos (valores e padrões), as referências aceitas e o preço por unidade em dólar. Filtre com ?tipo=imagem ou ?tipo=video.

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

POST/v1/estimativa

Diz quanto uma geração custa em dólar, sem criar nada.

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

Cria uma geração e devolve 201 com ela em "criando". Campos: motor, prompt, params (opcional; o que faltar usa o padrão) e webhook_url (opcional). A cobrança é sempre no saldo em dólar.

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"}'

Com imagens de referência, mande multipart/form-data: os mesmos campos como texto (params em JSON) e cada imagem no campo referencias (PNG, JPEG ou WebP, até 10 MB cada).

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>

O estado da geração: criando, pronta, falhou ou cancelada. Quando fica pronta, "arquivos" traz o endereço de cada arquivo. "estornado": true quando o valor já voltou.

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

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

Redireciona (302) para um link de download temporário do arquivo. Use -L no curl para seguir.

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

POST/v1/geracoes/<id>/cancelar

Cancela enquanto a geração ainda não começou e devolve o valor. Depois disso, 409 nao_cancelavel.

GET/v1/geracoes?pagina=1

As gerações da sua conta pela API, mais novas primeiro, 50 por página.

GET/v1/saldo

O saldo em dólar, em centavos.

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

Repetir sem pagar duas vezes

Mande o cabeçalho Idempotency-Key (letras, números, . _ : -, até 128) em POST /v1/geracoes. Repetir a mesma chave devolve a mesma geração, sem cobrar de novo: seguro para tentar de novo depois de um erro de rede.

Aviso ao terminar (webhook)

Com webhook_url (https, porta 443, endereço público), o Doro faz um POST JSON quando a geração termina: {"evento": "geracao.terminada", "geracao": {...}}, o mesmo corpo da consulta. Respostas 2xx contam como entregue; até 3 tentativas. Redirecionamentos não são seguidos.

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)

Confira a assinatura do cabeçalho Doro-Signature: HMAC-SHA256 do segredo da sua conta (na área de chaves) sobre "<t>.<corpo>". Recuse aviso com t muito antigo.

Limites

Por chave: 3 gerações em andamento ao mesmo tempo e 60 por hora; por conta: 6 em andamento e 120 por hora; e 120 chamadas por minuto por chave. Acima disso, 429 com o cabeçalho Retry-After.

Erros

Todo erro é JSON: {"erro": "<código>"}, com "campo" no 400. O texto do código não muda; use ele no seu tratamento.

HTTPerro
400parametroAlgum campo está fora do aceito (o nome vem em "campo").
401chave_invalidaChave ausente, errada ou revogada.
402sem_saldoO saldo em dólar não cobre a geração. Nada foi criado.
404nao_encontradaNão existe, ou não é da sua conta.
409nao_cancelavelA geração já começou e não pode mais ser cancelada.
429limiteLimite atingido ("motivo" diz qual). Espere o Retry-After.
503indisponivelO motor está indisponível agora. Nada foi cobrado; tente de novo.
500internoErro nosso. O "codigo" ajuda o suporte a achar o caso.