Skip to content
byteplus.cc
docs

Documentation

Une surface unique compatible OpenAI pour les modèles ByteDance Doubao, Seedance et Seedream.

base_url: https://byteplus.cc/v1
01

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.

  1. 1Créez un compte et générez une clé dans le tableau de bord.
  2. 2Définissez la base URL sur https://byteplus.cc/v1.
  3. 3Utilisez un id de modèle ByteDance tel que doubao-seed-1-6.
quickstart
# any OpenAI-compatible client works
pip install openai
export BYTEPLUS_KEY="bp_live_xxxxxxxxxxxxxxxx"
02

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.

authentication
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)
03

Chat completions

POST /v1/chat/completions accepte la charge utile OpenAI standard : model, messages, temperature, max_tokens, stream et tools.

chat
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="")
04

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.

video
# 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://..."}
05

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.

image
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
  }'
06

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é.

models
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"}
#    ]}
07

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.

401invalid_api_keyVérifiez le bearer token et que la clé est active.
402insufficient_balanceRechargez le solde du compte.
404model_not_foundVérifiez l'id du modèle avec GET /v1/models.
422invalid_requestInspectez le paramètre d'erreur et corrigez la charge utile.
429rate_limit_exceededAttendez et réessayez, ou réservez de la concurrence.
503capacity_unavailableRéessayez après la fenêtre retry-after ; la position dans la file figure dans l'en-tête.
08

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é.