Skip to content
byteplus.cc
docs

Documentación

Una única superficie compatible con OpenAI para los modelos Doubao, Seedance y Seedream de ByteDance.

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

Inicio rápido

Cualquier SDK de OpenAI funciona sin cambios — solo cambian la base URL y el id del modelo. Las claves tienen alcance por proyecto y se pueden rotar sin tiempo de inactividad.

  1. 1Crea una cuenta y genera una clave en el Panel.
  2. 2Configura la base URL en https://byteplus.cc/v1.
  3. 3Usa un id de modelo de ByteDance, como doubao-seed-1-6.
quickstart
# any OpenAI-compatible client works
pip install openai
export BYTEPLUS_KEY="bp_live_xxxxxxxxxxxxxxxx"
02

Autenticación

Envía la clave como bearer token. Las solicitudes sin clave devuelven 401; las solicitudes por encima de la cuota devuelven 429 con un header 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 acepta el payload estándar de OpenAI: model, messages, temperature, max_tokens, stream y 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

Tareas de video

El video es asíncrono. Crea una tarea y luego sondea su estado o espera al webhook. Los ids de tarea son estables y los resultados siguen siendo recuperables durante 24 horas.

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

Generación de imágenes

POST /v1/images/generations genera un lote a partir de un prompt de texto; POST /v1/images/edits aplica una instrucción a una imagen existente.

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

Listar modelos

GET /v1/models devuelve todos los ids de modelo con su modalidad, ventana de contexto y precio unitario.

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

Códigos de error

Los errores usan el envelope de OpenAI: un objeto error con type, code, message y param. Reintenta los 429 y los 5xx con retroceso exponencial.

401invalid_api_keyVerifica el bearer token y que la clave esté activa.
402insufficient_balanceRecarga el saldo de la cuenta.
404model_not_foundComprueba el id del modelo con GET /v1/models.
422invalid_requestRevisa el param del error y corrige el payload.
429rate_limit_exceededAplica retroceso y reintenta, o reserva concurrencia.
503capacity_unavailableReintenta tras la ventana retry-after; la posición en la cola está en el header.
08

Límites de tasa

Los límites se aplican por clave y por modelo, expresados en solicitudes por minuto y tokens por minuto. Los clientes con reserva reciben un pool de concurrencia dedicado.