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 GPT / DeepSeek / GLM / Kimi / Qwen
Gemini
Gemini
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/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
Gemini
POST /v1beta/models/{model}:generateContent
curl "https://api.example.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
-H "x-goog-api-key: <YOUR_API_KEY>candidates[0].content.parts[*].textinlineData.datatext
{
"candidates": [
{
"content": {
"parts": [
{
"text": "<image_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 · /v1/video/generations
/v1/video/generations/v1/videos
content
modelpromptresolutionratiodurationgenerate_audiometadataimagesAsset://...rolemetadata.contentprompt
metadata.durationprompt--dur 15 --rs 720p --rt 16:9 --wm false--dur 15curl "https://api.example.com/v1/video/generations" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0dreamina-seedance-2-0-260128curl "https://api.example.com/v1/video/generations" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0dreamina-seedance-2-0-260128curl "https://api.example.com/v1/video/generations" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0-fastdreamina-seedance-2-0-fast-260128curl "https://api.example.com/v1/video/generations/<task_id>" \
-H "Authorization: Bearer <YOUR_API_KEY>"task_idqueued
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"status": "queued"
}IN_PROGRESSSUCCESSdata.result_url
{
"data": {
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://.../task.mp4?sign=..."
}
}model | string | |
prompt | string | --dur N |
images | array | Asset://... |
metadata | object | resolutionratiodurationgenerate_audio |
metadata.content | array | role |
metadata.resolution | string | 480p / 720p / 1080p720p |
metadata.ratio | string | 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 / adaptive |
metadata.duration | int | prompt--dur N |
metadata.generate_audio | bool | true |
metadata.watermark | bool | |
metadata.return_last_frame | bool |
Seedance metadata.content
type | role | ||
|---|---|---|---|
text | text | ||
image_url | image_url.url | first_frame | |
image_url | image_url.url | last_frame | |
image_url | image_url.url | reference_image | |
video_url | video_url.url | reference_video | |
audio_url | audio_url.url | reference_audio |
imagesrolemetadata.contentmetadata.contentdoubao-seedance-2.0dreamina-seedance-2-0-260128metadata.duration--dur N--dur 15
Asset://...asset_urls[0]
curl "https://api.example.com/v1/seedance/assets/sync" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"images": ["https://example.com/person-reference.jpg"],
"asset_type": "Image"
}'curl "https://api.example.com/v1/seedance/assets/async" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"images": ["https://example.com/person-reference.jpg"],
"asset_type": "Image"
}'curl "https://api.example.com/v1/seedance/assets/tasks/<task_id>" \
-H "Authorization: Bearer <YOUR_API_KEY>"curl "https://api.example.com/v1/video/generations" \
-H "Authorization: Bearer <YOUR_API_KEY>
{
"track_id": "track_xxxxxxxxxxxxxxxx",
"mode": "sync",
"code": 200,
"status": "completed",
"task_id": "task_xxxxxxxxxxxxxxxx",
"asset_urls": ["Asset://asset-xxxxxxxxxxxxxxxx"]
}task_idasset_urls
{
"track_id": "track_xxxxxxxxxxxxxxxx",
"mode": "async",
"code": 202,
"task_id": "task_xxxxxxxxxxxxxxxx"
}imagesAsset://...
/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-sonnet-4-6claude-opus-4-7thinking
| Claude | Anthropic /v1/messages |
OpenAI /v1/chat/completions | |
POST /v1beta/models/{model}:generateContent | |
POST /v1beta/models/{model}:generateContent | |
/v1/images/generations / /v1/images/edits | |
/v1/videos / /v1/video/generations | |
/v1/seedance/assets/sync / /v1/seedance/assets/async / /v1/seedance/assets/tasks/{task_id} | |
| TTS | /v1/audio/speech |
GET /v1/modelsAsset://...