Passer au contenu principal

URL de base

https://api.yourouter.ai

Authentification

Incluez l’un des en-têtes suivants dans chaque requête :
  • Authorization: Bearer <YOUR_YOUROUTER_API_KEY>
  • x-api-key: <YOUR_YOUROUTER_API_KEY>
Toutes les requêtes doivent préciser Content-Type: application/json. Chaque réponse renvoie un en-tête x-request-id pour le traçage.

Fonctionnement

  1. Le client appelle la passerelle pour créer une tâche Ark avec le même corps de requête que l’API Ark officielle.
  2. La passerelle renvoie immédiatement l’ID de tâche généré par Ark et enregistre les informations de tâche (organisation, modèle, clé Ark, canal, statut, etc.).
  3. La passerelle interroge Ark toutes les 10 secondes pour les tâches non terminées, avec la clé API Ark enregistrée.
  4. La facturation lit usage.completion_tokens sur les résultats réussis.
Le champ video_url dans la réponse est une URL signée temporaire fournie par Ark. Elle est valable 86 400 secondes (24 heures) : téléchargez la vidéo avant expiration.

Créer une tâche

Point de terminaison : POST /api/v3/contents/generations/tasks Le corps de la requête correspond à l’API officielle d’Ark. Exemple :
curl -X POST https://api.yourouter.ai/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $YOUROUTER_API_KEY" \
  -d '{
    "model": "doubao-seedance-1-0-pro-250528",
    "content": [
      {
        "type": "text",
        "text": "Drone races through obstacles at high speed for an immersive flight experience  --resolution 1080p  --duration 5 --camerafixed false --watermark true"
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_i2v.png" }
      }
    ]
  }'
Réponse réussie (à la création, ne renvoie en général que l’ID de tâche Ark) :
{ "id": "cgt-20250906194036-2k4r4" }
La passerelle stocke cet ID avec le modèle, l’organisation, la clé Ark, le canal, le statut, et lance l’interrogation en arrière-plan.

Interroger une tâche

Point de terminaison : GET /api/v3/contents/generations/tasks/{id} Renvoie le résultat de la tâche depuis la base de la passerelle. Si la tâche est encore en cours de génération, la réponse contient le statut courant. Une fois terminée, elle renvoie le résultat complet d’Ark (avec id et vendor injectés).
curl -X GET https://api.yourouter.ai/api/v3/contents/generations/tasks/cgt-20250906194036-2k4r4 \
  -H "Authorization: Bearer $YOUROUTER_API_KEY"
Exemple en cours d’exécution :
{ "id": "cgt-20250906194036-2k4r4", "status": "RUNNING" }
Exemple terminé :
{
  "id": "your-00000000000000000000000000000000",
  "model": "doubao-seedance-1-0-pro-250528",
  "status": "succeeded",
  "content": {
    "video_url": "https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-pro/....mp4?...&X-Tos-Expires=86400&..."
  },
  "usage": {
    "completion_tokens": 246840,
    "total_tokens": 246840
  },
  "created_at": 1757158837,
  "updated_at": 1757158914,
  "seed": 95409,
  "resolution": "1080p",
  "duration": 5,
  "ratio": "16:9",
  "framespersecond": 24,
  "vendor": "Ark"
}

Facturation

  • L’usage n’est enregistré que lorsque status vaut succeeded.
  • usage.completion_tokens du résultat réussi est comptabilisé comme usage de complétion texte. Les valeurs reflètent celles renvoyées par Ark.

Valeurs de statut

  • RUNNING – La passerelle interroge Ark.
  • SUCCEEDED – Le résultat final a été récupéré et stocké ; les requêtes renvoient le résultat complet.
  • NOT_FOUND – La passerelle ne connaît pas cet ID de tâche (inexistant ou nettoyé).

Erreurs et codes d’état

  • 401/403 – Clé API manquante ou invalide, organisation désactivée ou solde insuffisant.
  • 200 + corps – Le point d’interrogation renvoie toujours HTTP 200 ; le statut de la tâche est dans le JSON.
  • 5xx – Erreur serveur interne ou Ark indisponible. Réessayez la requête.

Recommandations d’usage

  • Interrogez la tâche toutes les 5 à 10 secondes. La passerelle interroge Ark toutes les 10 secondes.
  • Conservez l’en-tête x-request-id des réponses pour le diagnostic.
  • Si video_url expire, créez une nouvelle tâche pour obtenir un nouveau lien (Ark ne propose pas actuellement de rafraîchissement).
  • Évitez de recréer le même contenu en boucle : il n’y a pas encore de clé d’idempotence.