Base URL
https://api.example.comBearer Key / x-api-key / x-goog-api-keyGET /v1/models/v1/models
success: truedata
curl "https://api.example.com/v1/models" \
-H "Authorization: Bearer <YOUR_API_KEY>"model
Anthropic
OpenAI
OpenAI Compatible
Gemini
OpenAI Chat
OpenAI Chat
OpenAI Images
Audio Speech
Anthropic
POST /v1/messagesx-api-keyanthropic-version
curl "https://api.example.com/v1/messages" \
-H "x-api-key: <YOUR_API_KEY>import requests
resp = requests.post(
"https://api.example.com/v1/messages",
headers={
"x-api-key": "<YOUR_API_KEY>OpenAI
POST /v1/responsesinputmax_output_tokens
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://api.example.com/v1",
)
OpenAI Compatible
POST /v1/chat/completionsmodel
curl "https://api.example.com/v1/chat/completions" \
-H "Authorization: Bearer <YOUR_API_KEY>from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>DeepSeek-V4-Promax_tokensDeepSeek-V4-FlashGLM-5.1Kimi-K2.6qwen3.6-plusmodelGemini
POST /v1beta/models/{model}:generateContentx-goog-api-key
curl "https://api.example.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: <YOUR_API_KEY>import requests
resp = requests.post(
"https://api.example.com/v1beta/models/gemini-3.5-flash:generateContent",
headers={
"x-goog-api-key": "<YOUR_API_KEY>OpenAI Images
POST /v1/images/generations
POST /v1/images/editsgpt-image-2data[0].b64_json
n1
POST /v1/images/generations | application/json | ||
POST /v1/images/edits | multipart/form-data | imageimage[] | |
POST /v1/images/edits | application/json | images[].image_url | |
POST /v1/images/edits | multipart/form-data | image + mask |
curl "https://api.example.com/v1/images/generations" \
-H "Authorization: Bearer <YOUR_API_KEY>curl "https://api.example.com/v1/images/edits" \
-H "Authorization: Bearer <YOUR_API_KEY>curl "https://api.example.com/v1/images/edits" \
-H "Authorization: Bearer <YOUR_API_KEY>curl "https://api.example.com/v1/images/edits" \
-H "Authorization: Bearer <YOUR_API_KEY><BASE64>"}
],
"n": 1,
"size": "1024x1536",
"quality": "high",
"output_format": "png",
"input_fidelity": "high"
}'curl "https://api.example.com/v1/images/edits" \
-H "Authorization: Bearer <YOUR_API_KEY>import base64
import requests
resp = requests.post(
"https://api.example.com/v1/images/generations",
headers={
"Authorization": "Bearer <YOUR_API_KEY>data[0].b64_jsondata:image/png;base64,...response_formatgpt-image-2
prompt | ||
n | 1 | |
size | 1024x10241536x10241024x1536autogpt-image-2WIDTHxHEIGHT1:33:1 | |
quality | lowmediumhighauto | |
output_format | pngjpegwebpjpeg / webpoutput_compression | |
image / image[] | imageimage[] | |
images | {"image_url": "https://..."} | |
input_fidelity | highlowhigh | |
mask |
multipart/form-dataimage[]images
OpenAI Chat
gemini-3.1-flash-image-preview | extra_body.google.image_config.image_size | |
gemini-3-pro-image-preview | extra_body.google.image_config.image_size |
curl "https://api.example.com/v1/chat/completions" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"messages": [
{
"role": "user",
"content": "Create a minimalist blue circular app icon, 1:1, white background, crisp edges"
}
],
"extra_body": {
"google": {
"image_config": {
"aspect_ratio": "1:1",
"image_size": "2K"
}
}
}
}'import base64
import re
import requests
resp = requests.post(
"https://api.example.com/v1/chat/completions",
headers={
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json",
},
json={
"model": "gemini-3.1-flash-image-preview",
"messages": [
{
"role": "user",
"content": "Create a minimalist blue circular app icon, 1:1, white background, crisp edges",
}
],
"extra_body": {
"google": {
"image_config": {
"aspect_ratio": "1:1",
"image_size": "2K",
}
}
},
},
timeout=300,
)
resp.raise_for_status()
content = resp.json()["choices"][0]["message"]["content"]
text = "".join(
item.get("image_url", {}).get("url", "") if item.get("type") == "image_url" else item.get("text", "")
for item in content
) if isinstance(content, list) else content
match = re.search(r"data:(image/[^;]+);base64,([A-Za-z0-9+/=]+)", text)
if not match:
raise RuntimeError("No image base64 found in response")
ext = {"image/png": "png", "image/jpeg": "jpg", "image/webp": "webp"}.get(match.group(1), "png")
with open(f"gemini-output.{ext}", "wb") as f:
f.write(base64.b64decode(match.group(2)))image_size1K, 2K, 4K
OpenAI Chat
POST /v1/chat/completionsimage_size
usage
gemini-3.1-flash-image-preview-1k | 1K | /v1/chat/completions |
gemini-3.1-flash-image-preview-2k | 2K | /v1/chat/completions |
gemini-3.1-flash-image-preview-4k | 4K | /v1/chat/completions |
gemini-3-pro-image-preview-1k | 1K | /v1/chat/completions |
gemini-3-pro-image-preview-2k | 2K | /v1/chat/completions |
gemini-3-pro-image-preview-4k | 4K | /v1/chat/completions |
curl "https://api.example.com/v1/chat/completions" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview-1k",
"messages": [
{
"role": "user",
"content": "Create a minimalist blue circular app icon, 1:1, white background, crisp edges"
}
]
}'import base64
import re
import requests
resp = requests.post(
"https://api.example.com/v1/chat/completions",
headers={
"Authorization": "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json",
},
json={
"model": "gemini-3.1-flash-image-preview-1k",
"messages": [
{
"role": "user",
"content": "Create a minimalist blue circular app icon, 1:1, white background, crisp edges",
}
],
},
timeout=300,
)
resp.raise_for_status()
data = resp.json()
content = data["choices"][0]["message"]["content"]
if isinstance(content, list):
text = ""
for item in content:
if item.get("type") == "image_url":
text = item["image_url"]["url"]
break
if item.get("type") == "text":
text += item.get("text", "")
else:
text = content
match = re.search(r"data:(image/[^;]+);base64,([A-Za-z0-9+/=]+)", text)
if not match:
raise RuntimeError("No image base64 found in response")
ext = {"image/png": "png", "image/jpeg": "jpg", "image/webp": "webp"}.get(match.group(1), "png")
with open(f"gemini-output.{ext}", "wb") as f:
f.write(base64.b64decode(match.group(2)))-1k, -2k, -4kgenerationConfig.imageConfig.imageSizeusage.completion_tokens
{
"choices": [
{
"message": {
"role": "assistant",
"content": "data:image/png;base64,<BASE64>"
}
}
]
}/v1/videos
id / task_idGET /v1/videos/{task_id}curl -X POST "https://api.example.com/v1/videos" \
-H "Authorization: Bearer <YOUR_API_KEY><YOUR_API_KEY><YOUR_API_KEY><YOUR_API_KEY>curl "https://api.example.com/v1/videos/<task_id>" \
-H "Authorization: Bearer <YOUR_API_KEY>"
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"model": "happyhorse-1.0-video-edit",
"status": "queued",
"created_at": 1779381684
}metadata.url
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"model": "happyhorse-1.0-video-edit",
"status": "completed",
"progress": 100,
"metadata": {
"url": "https://example.com/generated-video.mp4"
},
"error": null
}queuedin_progresscompletedfailedcancelled
Seedance 2.0 · /api/v3/contents/generations/tasks
/api/v3/contents/generations/tasks/v1/video/generations/{task_id}/v1/videos
modelcontentgenerate_audioratiodurationresolutionwatermarkcontenttextimage_urlimage_url.urlasset://{asset_id}task_id/v1/video/generations/{task_id}
/api/v3/contents/generations/tasks/api/v1/*curl -X POST "https://api.example.com/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-260128",curl -X POST "https://api.example.com/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-fast-260128",curl -X POST "https://api.example.com/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-mini-260615",curl "https://api.example.com/v1/video/generations/<task_id>" \
-H "Authorization: Bearer <YOUR_API_KEY>"task_id
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"model": "dreamina-seedance-2-0-260128",
"status": "queued",
"created_at": 1779381684
}metadata.url
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"model": "dreamina-seedance-2-0-260128",
"status": "completed",
"progress": 100,
"metadata": {
"url": "https://example.com/generated-video.mp4"
},
"error": null
}model | string | |
content | array | |
content[].type | string | text / image_url |
content[].text | string | |
content[].image_url.url | string | asset://{asset_id} |
content[].role | string | reference_image |
generate_audio | bool | |
ratio | string | 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 |
duration | int | |
resolution | string | 480p / 720p / 1080p |
watermark | bool |
Seedance content
type | role | ||
|---|---|---|---|
text | text | ||
image_url | image_url.url | reference_image |
asset://{asset_id}content
asset://{asset_id}
curl -X POST "https://api.example.com/api/v1/groups" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "demo",
"description": "demo group"
}'curl -X POST "https://api.example.com/api/v1/assets" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"group_id": "group-xxxxxxxx",
"asset_type": "Image",
"url": "https://example.com/reference.jpg",
"name": "reference"
}'curl "https://api.example.com/api/v1/assets/<asset_id>" \
-H "Authorization: Bearer <YOUR_API_KEY>"curl -X POST "https://api.example.com/api/v1/assets/<asset_id>/recreate" \
-H "Authorization: Bearer <YOUR_API_KEY>"
{
"id": "asset-xxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "processing",
"group_id": "group-xxxxxxxx"
}POST /api/v1/groupsGET /api/v1/groups | |
GET /api/v1/groups/{id}PUT /api/v1/groups/{id}DELETE /api/v1/groups/{id} | |
POST /api/v1/assetsGET /api/v1/assets | |
GET /api/v1/assets/{id}PUT /api/v1/assets/{id}DELETE /api/v1/assets/{id}POST /api/v1/assets/{id}/recreate |
h5_linkgroup_id
curl -X POST "https://api.example.com/api/v1/avatars/sessions" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"is_qrcode": false
}'curl "https://api.example.com/api/v1/avatars/sessions/<byted_token>/status" \
-H "Authorization: Bearer <YOUR_API_KEY>"curl "https://api.example.com/api/v1/avatars/sessions/<byted_token>/result" \
-H "Authorization: Bearer <YOUR_API_KEY>"
{
"byted_token": "20260618104757A15E890123397EA84E85",
"status": "completed",
"group_id": "group-xxxxxxxx"
}/v1/audio/speech
qwen3-tts-flashMiniMax/speech-2.8-turboMiniMax/speech-2.8-hd
curl "https://api.example.com/v1/audio/speech" \
-H "Authorization: Bearer <YOUR_API_KEY>import requests
resp = requests.post(
"https://api.example.com/v1/audio/speech",
headers={
"Authorization": "Bearer <YOUR_API_KEY>qwen3-tts-flash
CherryMiniMax/speech-2.8-turbo
male-qn-qingseMiniMax/speech-2.8-hd
male-qn-qingseresponse_formatmp3speed
thinking
claude-opus-4-7/claude-opus-4-8claude-opus-4-6/claude-sonnet-4-6thinking
| Claude | Anthropic /v1/messages |
OpenAI Responses API POST /v1/responses | |
POST /v1/chat/completions | |
POST /v1beta/models/{model}:generateContent | |
OpenAI Chat POST /v1/chat/completionsextra_body.google.image_config.image_size | |
OpenAI Chat POST /v1/chat/completions-1k / -2k / -4k | |
/v1/images/generations / /v1/images/edits | |
/v1/videos / /api/v3/contents/generations/tasks / /v1/video/generations/{task_id} | |
/api/v1/groups / /api/v1/assets / /api/v1/avatars/sessions | |
| TTS | /v1/audio/speech |
GET /v1/models/v1/chat/completions-1k/-2k/-4kextra_body.google.image_config.image_sizeimage_sizeasset://{asset_id}