Documentation
Une surface unique compatible OpenAI pour les modèles ByteDance Doubao, Seedance et Seedream.
Démarrage rapide
N'importe quel SDK OpenAI fonctionne sans modification — seuls la base URL et l'id du modèle changent. Les clés sont limitées par projet et peuvent être renouvelées sans interruption de service.
- 1Créez un compte et générez une clé dans le tableau de bord.
- 2Définissez la base URL sur https://byteplus.cc/v1.
- 3Utilisez un id de modèle ByteDance tel que doubao-seed-1-6.
# any OpenAI-compatible client works
pip install openai
export BYTEPLUS_KEY="bp_live_xxxxxxxxxxxxxxxx"Authentification
Envoyez la clé comme bearer token. Les requêtes sans clé renvoient 401 ; les requêtes au-delà du quota renvoient 429 avec un en-tête retry-after.
curl https://byteplus.cc/v1/chat/completions \
-H "Authorization: Bearer $BYTEPLUS_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"doubao-pro-32k","messages":[{"role":"user","content":"hi"}]}'
# 401 invalid_api_key
# 429 rate_limit_exceeded (see retry-after header)Chat completions
POST /v1/chat/completions accepte la charge utile OpenAI standard : model, messages, temperature, max_tokens, stream et tools.
from openai import OpenAI
client = OpenAI(
base_url="https://byteplus.cc/v1",
api_key=os.environ["BYTEPLUS_KEY"],
)
stream = client.chat.completions.create(
model="doubao-seed-1-6",
messages=[{"role": "user", "content": "Summarise this deck."}],
temperature=0.7,
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Tâches vidéo
La vidéo est asynchrone. Créez une tâche, puis interrogez-la ou attendez le webhook. Les ids de tâche sont stables et les résultats restent récupérables pendant 24 heures.
# 1. create the task
curl https://byteplus.cc/v1/video/tasks \
-H "Authorization: Bearer $BYTEPLUS_KEY" \
-d '{
"model": "seedance-1-0-pro",
"prompt": "neon koi in a datacenter, dolly-in",
"resolution": "1080p",
"duration": 5
}'
# => {"id": "task_9f2c", "status": "queued"}
# 2. poll for the artifact
curl https://byteplus.cc/v1/video/tasks/task_9f2c \
-H "Authorization: Bearer $BYTEPLUS_KEY"
# => {"status": "succeeded", "video_url": "https://..."}Génération d'images
POST /v1/images/generations génère un lot à partir d'un prompt texte ; POST /v1/images/edits applique une instruction à une image existante.
curl https://byteplus.cc/v1/images/generations \
-H "Authorization: Bearer $BYTEPLUS_KEY" \
-d '{
"model": "seedream-4-0",
"prompt": "isometric mint server garden, 4K",
"size": "4096x4096",
"n": 4
}'Lister les modèles
GET /v1/models renvoie chaque id de modèle avec sa modalité, sa fenêtre de contexte et son prix à l'unité.
curl https://byteplus.cc/v1/models \
-H "Authorization: Bearer $BYTEPLUS_KEY"
# => {"data": [
# {"id": "doubao-seed-1-6", "modality": "language", "context": 262144},
# {"id": "seedance-1-0-pro", "modality": "video", "max_duration": 10},
# {"id": "seedream-4-0", "modality": "image", "max_size": "4096x4096"}
# ]}Codes d'erreur
Les erreurs utilisent l'enveloppe OpenAI : un objet error avec type, code, message et param. Réessayez les 429 et les 5xx avec un backoff exponentiel.
| 401 | invalid_api_key | Vérifiez le bearer token et que la clé est active. |
| 402 | insufficient_balance | Rechargez le solde du compte. |
| 404 | model_not_found | Vérifiez l'id du modèle avec GET /v1/models. |
| 422 | invalid_request | Inspectez le paramètre d'erreur et corrigez la charge utile. |
| 429 | rate_limit_exceeded | Attendez et réessayez, ou réservez de la concurrence. |
| 503 | capacity_unavailable | Réessayez après la fenêtre retry-after ; la position dans la file figure dans l'en-tête. |
Limites de débit
Les limites sont appliquées par clé et par modèle, exprimées en requêtes par minute et en tokens par minute. Les clients réservés disposent d'un pool de concurrence dédié.