API documentation
One key, one base URL. Chat is OpenAI-compatible; image, video and audio use a submit-then-poll task API. Prices are in credits and come from the same catalog the API serves, so this page is always current.
Getting started
| Item | Value |
|---|---|
| Base URL | https://api2.glbgpt.com/ai-api/open/v1 |
| Authentication | Authorization: Bearer sk-glb-… — create keys under API Keys. X-API-Key is accepted too. |
| Limits | 60 requests/min, 5 concurrent chat streams, 10 media tasks in flight, 5 active keys — per account. |
from openai import OpenAI
client = OpenAI(
api_key="sk-glb-...",
base_url="https://api2.glbgpt.com/ai-api/open/v1",
)
r = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Hello"}],
stream=True,
)
for chunk in r:
print(chunk.choices[0].delta.content or "", end="")Chat completions
POST /v1/chat/completions takes the OpenAI request body and returns the OpenAI response, streamed or not. Use any official OpenAI SDK with base_url and the key changed. The model is one of the ids below.
| Field | Type | Description |
|---|---|---|
| modelrequired | string | A chat model id from GET /v1/models (type=chat), e.g. gpt-6-astra. |
| messagesrequired | array | OpenAI message objects: system / user / assistant / tool. Text and image_url content parts are forwarded as-is. |
| stream | boolean | true = Server-Sent Events chat.completion.chunk frames. The last frame before [DONE] carries usage. |
| max_tokens | integer | Output cap. Reasoning models spend it on thinking first — a very low value can return an empty message with finish_reason=length. |
| temperature, top_p, stop, presence_penalty, frequency_penalty | — | Forwarded unchanged to the model when it supports them. |
| tools, tool_choice | array / string | OpenAI function calling. tool_calls come back in the same shape, streamed or not. |
| response_format | object | json_object / json_schema where the model supports it. |
| reasoning_effort | string | none | low | medium | high for reasoning models. If you omit it, we apply the model's known-good default. |
| n | integer | Only 1 is supported. |
Not supported (ignored or rejected): logprobs, logit_bias, seed (chat), user, store, metadata (chat). Streaming always ends with a chunk that carries usage followed by data: [DONE]; the non-stream response carries usage as usual. You are billed on usage.prompt_tokens and usage.completion_tokens at the model's per-1K price. Reasoning tokens count as completion tokens.
Tool calling
{
"model": "gpt-6-astra",
"messages": [{"role": "user", "content": "What's the weather in Tokyo?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}
}
}],
"tool_choice": "auto"
}The reply contains message.tool_calls (or streamed delta.tool_calls); answer with a role: "tool" message carrying tool_call_id, exactly like OpenAI.
Chat models & prices
| Model | Provider | Input / 1K tokens | Output / 1K tokens | |
|---|---|---|---|---|
| glm-5.3 | Zhipu | 5 cr | 15 cr | |
| glm-5.3-flash | Zhipu | 1 cr | 1 cr | |
| glm-5.2 | Zhipu | 5 cr | 15 cr | |
| claude-sonnet-5 | Anthropic | 7 cr | 33 cr | |
| claude-opus-5 | Anthropic | 17 cr | 83 cr | |
| gpt-6-astra | OpenAI | 23 cr | 117 cr | |
| gpt-5.6-sol | OpenAI | 17 cr | 100 cr | |
| gpt-5.6-luna | OpenAI | 1 cr | 4 cr | |
| gpt-5.6-terra | OpenAI | 7 cr | 40 cr | |
| deepseek-v4.1-flash | DeepSeek | 1 cr | 4 cr | |
| gpt-5.5 | OpenAI | 9 cr | 78 cr | |
| gpt-4o | OpenAI | 10 cr | 30 cr | |
| deepseek-v4-pro | DeepSeek | 4 cr | 13 cr | |
| gpt-5.4-nano | OpenAI | 1 cr | 4 cr | |
| gpt-5.4-mini | OpenAI | 3 cr | 15 cr | |
| kimi-k3 | Moonshot | 10 cr | 50 cr | |
| qwen3.8-max | Qwen | 7 cr | 20 cr | |
| qwen3.8-flash | Qwen | 1 cr | 2 cr | |
| gemini-3.5-flash-lite | 1 cr | 8 cr | ||
| gemini-3.8-flash | 5 cr | 25 cr | ||
| claude-opus-4.8 | Anthropic | 17 cr | 83 cr | |
| claude-fable-5 | Anthropic | 33 cr | 167 cr | |
| claude-fable-5.1 | Anthropic | 33 cr | 167 cr | |
| claude-opus-4.7 | Anthropic | 17 cr | 83 cr | |
| claude-opus-4.5 | Anthropic | 17 cr | 83 cr | |
| claude-opus-4.6 | Anthropic | 17 cr | 83 cr | |
| claude-haiku-4.5 | Anthropic | 3 cr | 17 cr | |
| gemini-3.1-pro | 10 cr | 50 cr | ||
| gemini-3.6-flash | 5 cr | 25 cr | ||
| gemini-3-pro | 13 cr | 60 cr | ||
| gemini-omni-flash-preview | 5 cr | 30 cr | ||
| gemini-3-flash | 2 cr | 10 cr | ||
| gemini-3.1-flash-lite | 1 cr | 5 cr | ||
| gemini-2.5-flash | 1 cr | 8 cr | ||
| gemini-2.5-pro | 8 cr | 50 cr | ||
| grok-4.3 | xAI | 4 cr | 8 cr | |
| grok-4.6 | xAI | 7 cr | 20 cr | |
| kimi-k2.6 | Moonshot | 3 cr | 13 cr | |
| muse-spark-1.2 | Meta | 4 cr | 14 cr | |
| muse-spark-1.3 | Meta | 4 cr | 14 cr |
Media tasks (image, video, audio)
Media generation is asynchronous. Submit a task, poll it until it is succeeded or failed, then download output.url. Credits are reserved when you submit and released if the task fails. Outputs stay available for 30 days.
| Method | Path | Purpose |
|---|---|---|
| POST /v1/tasks | Submit an image / video / audio task. Credits are reserved now, settled when the task finishes. | |
| GET /v1/tasks/{id} | Task status and, once succeeded, the output URL. | |
| GET /v1/tasks?limit=&after=&status= | Your recent tasks, newest first, cursor paging via after=<id>. | |
| POST /v1/tasks/estimate | Same body as submit; returns the billing tier and credits without creating a task. | |
| GET /v1/models?type=image|video|audio | Every media model with price, tiers (video) and accepted parameters. |
Request body — common fields
Every model accepts model and prompt; the rest depends on the model — each model's section below lists exactly what it takes, and GET /v1/models/{id} returns the same in parameters. Fields a model doesn't accept are dropped, not rejected, and echoed back in ignored_parameters so you can spot typos.
| Field | Type | Description |
|---|---|---|
| modelrequired | string | Media model id, e.g. kling-v3, gpt-image-2.5, eleven-v3. |
| prompt | string | Text prompt. Required for most models; optional for the image tools (remove-bg, face-swap…). Max 20,000 characters, some models cap lower. |
| images | string[] | Public https URLs or data: URIs. Order matters where two are needed (face-swap: [face, target]; virtual-tryon: [person, garment]). A single image may also be sent as image. |
| video_url | string | Public https URL of a source / reference video, for models that accept one. |
| aspect_ratio | string | e.g. 1:1, 16:9, 9:16, 4:3, 3:4, 21:9 — the set a model accepts follows the provider; unsupported values are rejected by the provider. |
| resolution | string | One of the model's listed values (case-insensitive aliases accepted). Changes the price tier. |
| duration | integer | Seconds, within the model's range or set. Changes the price tier. Ignored for fixed-length models. |
| seed | integer | Deterministic sampling where the provider supports it. |
| negative_prompt | string | What to avoid, for models that support it. |
| watermark | boolean | Provider watermark on/off where offered. |
| audio | boolean | Generate audio with the video (kling-v3, kling-v2-6, wan…). Selects the audio price tier. |
| draft | boolean | flux-3-video: cheaper draft render (hd only). |
| metadata | object | Model-specific extras (see each model's metadata keys). Unknown keys are dropped and reported in ignored_parameters. |
| Idempotency-Key (header) | string | Retry the same submit safely: same key + same body returns the original task (Idempotent-Replayed: true); same key + different body → 422. |
# submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{"model": "gpt-image-2.5", "prompt": "a red bicycle by a white wall", "aspect_ratio": "1:1"}'
# poll until status is "succeeded" — output.url is the image
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Lifecycle & polling
| status | Meaning |
|---|---|
| queued | Accepted, credits reserved, waiting for a worker. |
| processing | Sent to the provider (or being retried after a transient provider error). |
| succeeded | output.url is ready. Charged the reserved amount (audio models: settled on real length). |
| failed | error.code says why. Reserved credits are released. |
Poll GET /v1/tasks/{id} every 5–10 seconds. Typical times: images 10–60 s, audio 20–90 s, video 1–5 minutes. A task object looks like this:
{
"id": "1169054296717658112",
"object": "task",
"model": "kling-v3",
"type": "video",
"status": "succeeded",
"created_at": 1789473066,
"finished_at": 1789473241,
"credits_reserved": 500,
"parameters": {"resolution": "720p", "duration": 3},
"output": {"url": "https://static.futureshareai.com/open/video/…/….mp4", "type": "video"}
}
// failed
{ "id": "…", "status": "failed",
"error": {"code": "invalid_input", "message": "The provider rejected the input …", "retryable": false} }| error.code | retryable | Meaning |
|---|---|---|
| invalid_input | no | Provider rejected the input — unreachable media URL, unsupported combination, or an input without the expected content (e.g. no face detected). |
| content_policy_violation | no | Blocked by the provider's safety policy or a real-person likeness rule. |
| rate_limited | yes | Provider busy. Retry in a moment. |
| provider_unavailable | yes | Provider outage after our retries (4 attempts over ~15 minutes). Resubmit later. |
| generation_failed | no | Anything else. Not charged. |
Estimate before you submit
POST /v1/tasks/estimate with the same body returns the billing tier and credits ({"credits": 500, "billing_model": "kling-v3-720p-3"}) without creating a task or reserving anything.
Image models
Text-to-image models take a prompt and usually an aspect_ratio. Image-editing tools take one or two input images and an optional prompt. Output is a single image URL.
OpenAI · 2
OpenAI image generation and editing. Send images for edit / reference; the output is one image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| images | string[] | — | Up to 4 input image URL(s) for editing or reference. |
| metadata.background | string | transparent | opaque | auto | Background handling (invalid values are dropped). |
| metadata.output_format | string | png | jpeg | webp | Output file format. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1",
"metadata": {
"background": "auto",
"output_format": "png"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."OpenAI image generation and editing. Send images for edit / reference; the output is one image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| images | string[] | — | Up to 4 input image URL(s) for editing or reference. |
- Runs on a different line than gpt-image-2: metadata.background / output_format are ignored here.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."ByteDance · 3
ByteDance Seedream text-to-image / image-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | With aspect_ratio set the image is rendered at that ratio at the chosen tier's total pixels; without it the provider picks the ratio. |
| resolution | string | 2K | 4K (anything lower resolves to 2K) | Output resolution tier. Changes the price. |
| images | string[] | — | Up to 10 reference images. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| metadata.output_format | string | png | jpeg | Output file format. |
| metadata.prompt_optimize_mode | string | standard | fast | How the provider rewrites the prompt. |
- seed and negative_prompt are not supported by this model (silently ignored).
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-lite",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1",
"watermark": false,
"metadata": {
"output_format": "png",
"prompt_optimize_mode": "standard"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."ByteDance Seedream text-to-image / image-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | With aspect_ratio set the image is rendered at that ratio at the chosen tier's total pixels; without it the provider picks the ratio. |
| resolution | string | 1K | 2K (no 4K) | Output resolution tier. Changes the price. |
| images | string[] | — | Up to 10 reference images. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| metadata.output_format | string | png | jpeg | Output file format. |
| metadata.prompt_optimize_mode | string | standard | fast | How the provider rewrites the prompt. |
- seed and negative_prompt are not supported by this model (silently ignored).
- Interactive edit: put <bbox> / <point> coordinate tags in the prompt alongside images to target a region.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-pro",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1",
"watermark": false,
"metadata": {
"output_format": "png",
"prompt_optimize_mode": "standard"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."ByteDance Seedream text-to-image / image-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | With aspect_ratio set the image is rendered at that ratio at the chosen tier's total pixels; without it the provider picks the ratio. |
| resolution | string | 2K | 4K (anything lower resolves to 2K) | Output resolution tier. Changes the price. |
| images | string[] | — | Up to 10 reference images. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| metadata.output_format | string | png | jpeg | Output file format. |
| metadata.prompt_optimize_mode | string | standard | fast | How the provider rewrites the prompt. |
- seed and negative_prompt are not supported by this model (silently ignored).
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4.5",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1",
"watermark": false,
"metadata": {
"output_format": "png",
"prompt_optimize_mode": "standard"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Google · 3
Google Nano Banana (Gemini image). Text-to-image, or editing / multi-reference with images.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus 4:5 and 5:4 | Output aspect ratio. |
| images | string[] | — | Up to 10 reference images (provider cap 14). |
| seed | integer | — | Random seed for reproducible output. |
- Flat price; no resolution control (output size follows the model default).
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1",
"seed": 42
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Google Nano Banana (Gemini image). Text-to-image, or editing / multi-reference with images.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus 4:5 and 5:4 | Output aspect ratio. |
| resolution | string | 1K | 0.5K | 2K | 4K (default 1K) | Output resolution tier. Changes the price. |
| images | string[] | — | Up to 10 reference images (provider cap 14). |
| seed | integer | — | Random seed for reproducible output. |
- Priced by resolution tier. 9:21 is clamped to 9:16.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "1K",
"aspect_ratio": "1:1",
"seed": 42
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (4)
| tier | credits |
|---|---|
| resolution=1K | 300 |
| resolution=0.5K | 200 |
| resolution=2K | 400 |
| resolution=4K | 600 |
Google Nano Banana (Gemini image). Text-to-image, or editing / multi-reference with images.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus 4:5 and 5:4 | Output aspect ratio. |
| resolution | string | 1K | 2K | 4K (default 1K) | Output resolution tier. Changes the price. |
| images | string[] | — | Up to 10 reference images (provider cap 14). |
| seed | integer | — | Random seed for reproducible output. |
- Priced by resolution tier (4K is the highest).
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "1K",
"aspect_ratio": "1:1",
"seed": 42
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (2)
| tier | credits |
|---|---|
| resolution=1K | 500 |
| resolution=4K | 1000 |
Black Forest Labs · 5
Black Forest Labs FLUX text-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 0.5K, 1K, 2K, 4K (video-style 480p/720p/1080p are converted) | Image tier, mapped to pixel width × height. Does not change the price. |
| seed | integer | — | Random seed for reproducible output. |
| metadata.prompt_upsampling | boolean | — | Let the provider enrich the prompt. |
| metadata.output_format | string | jpeg | png | webp (default jpeg) | Output file format; invalid values are dropped. |
| metadata.steps | integer | 1–50 (clamped) | Diffusion steps. |
| metadata.guidance | number | 1.5–5 (clamped) | Guidance scale. |
- Flat price per image regardless of parameters.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "flux-dev",
"prompt": "A red bicycle leaning on a white wall, photo",
"aspect_ratio": "1:1",
"seed": 42,
"metadata": {
"prompt_upsampling": false,
"output_format": "png",
"steps": 28,
"guidance": 3
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Black Forest Labs FLUX text-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 0.5K, 1K, 2K, 4K (video-style 480p/720p/1080p are converted) | Image tier, mapped to pixel width × height. Does not change the price. |
| seed | integer | — | Random seed for reproducible output. |
| metadata.prompt_upsampling | boolean | — | Let the provider enrich the prompt. |
| metadata.output_format | string | jpeg | png | webp (default jpeg) | Output file format; invalid values are dropped. |
- Flat price per image regardless of parameters.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "flux-pro-1.1",
"prompt": "A red bicycle leaning on a white wall, photo",
"aspect_ratio": "1:1",
"seed": 42,
"metadata": {
"prompt_upsampling": false,
"output_format": "png"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Black Forest Labs FLUX 1.1 Ultra — highest quality, aspect passed straight through, no resolution tier.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| seed | integer | — | Random seed for reproducible output. |
| metadata.prompt_upsampling | boolean | — | Let the provider enrich the prompt. |
| metadata.output_format | string | jpeg | png | webp (default jpeg) | Output file format; invalid values are dropped. |
| metadata.raw | boolean | — | Less-processed, more photographic look (Ultra's signature option). |
- Flat price per image regardless of parameters.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "flux-pro-1.1-ultra",
"prompt": "A red bicycle leaning on a white wall, photo",
"aspect_ratio": "1:1",
"seed": 42,
"metadata": {
"prompt_upsampling": false,
"output_format": "png",
"raw": false
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Black Forest Labs FLUX text-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 0.5K, 1K, 2K, 4K (video-style 480p/720p/1080p are converted) | Image tier, mapped to pixel width × height. Does not change the price. |
| images | string[] | — | Up to 8 reference images (multi-reference). |
| seed | integer | — | Random seed for reproducible output. |
| metadata.prompt_upsampling | boolean | — | Let the provider enrich the prompt. |
| metadata.output_format | string | jpeg | png | webp (default jpeg) | Output file format; invalid values are dropped. |
- Flat price per image regardless of parameters.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-pro",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1",
"seed": 42,
"metadata": {
"prompt_upsampling": false,
"output_format": "png"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Black Forest Labs FLUX Kontext — image editing driven by a prompt.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| images | string[] | — | 1 to 4 input images (required; multi-reference is experimental upstream). |
| seed | integer | — | Random seed for reproducible output. |
| metadata.prompt_upsampling | boolean | — | Let the provider enrich the prompt. |
| metadata.output_format | string | jpeg | png | webp (default png) | Output file format; invalid values are dropped. |
- Flat price per image regardless of parameters.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "flux-kontext-pro",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg"
],
"aspect_ratio": "1:1",
"seed": 42,
"metadata": {
"prompt_upsampling": false,
"output_format": "png"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Ideogram · 3
Ideogram 4.0. Text-to-image, styled text-to-image (metadata style keys), or remix with exactly one input image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | Ideogram's 15 ratios (see Ideogram 3.0) | Output aspect ratio. |
| resolution | string | 1K | 2K (default 2K); an exact WxH from Ideogram's official list is also accepted | Output tier. Does not change the price. |
| images | string[] | — | Exactly one image (≤ 10 MB) switches to remix / image-to-image. |
| metadata.aesthetics | string | — | Style description — free text. Any style key switches the request to Ideogram's structured prompt and disables magic prompt. |
| metadata.art_style | string | — | Style description — free text. |
| metadata.lighting | string | — | Style description — free text. |
| metadata.medium | string | — | Style description — free text. |
| metadata.photo | string | — | Style description — free text. |
| metadata.color_palette | string[] | ["#RRGGBB", ...] | Palette as hex strings (malformed entries dropped). |
| metadata.image_weight | integer | 1–100 (clamped) | Remix only: how strongly the input image steers the result. |
- seed and negative_prompt are ignored (no upstream fields on 4.0).
- Style keys are ignored on remix.
- Flat price per image.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "ideogram-v4",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg"
],
"aspect_ratio": "1:1",
"metadata": {
"aesthetics": "clean, minimal",
"art_style": "editorial illustration",
"lighting": "soft morning light",
"medium": "digital painting",
"photo": "35mm film look",
"image_weight": 50
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Ideogram 4.0. Text-to-image, styled text-to-image (metadata style keys), or remix with exactly one input image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | Ideogram's 15 ratios (see Ideogram 3.0) | Output aspect ratio. |
| resolution | string | 1K | 2K (default 2K); an exact WxH from Ideogram's official list is also accepted | Output tier. Does not change the price. |
| images | string[] | — | Exactly one image (≤ 10 MB) switches to remix / image-to-image. |
| metadata.aesthetics | string | — | Style description — free text. Any style key switches the request to Ideogram's structured prompt and disables magic prompt. |
| metadata.art_style | string | — | Style description — free text. |
| metadata.lighting | string | — | Style description — free text. |
| metadata.medium | string | — | Style description — free text. |
| metadata.photo | string | — | Style description — free text. |
| metadata.color_palette | string[] | ["#RRGGBB", ...] | Palette as hex strings (malformed entries dropped). |
| metadata.image_weight | integer | 1–100 (clamped) | Remix only: how strongly the input image steers the result. |
- seed and negative_prompt are ignored (no upstream fields on 4.0).
- Style keys are ignored on remix.
- Flat price per image.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "ideogram-v4-turbo",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg"
],
"aspect_ratio": "1:1",
"metadata": {
"aesthetics": "clean, minimal",
"art_style": "editorial illustration",
"lighting": "soft morning light",
"medium": "digital painting",
"photo": "35mm film look",
"image_weight": 50
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Ideogram 4.0. Text-to-image, styled text-to-image (metadata style keys), or remix with exactly one input image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | Ideogram's 15 ratios (see Ideogram 3.0) | Output aspect ratio. |
| resolution | string | 1K | 2K (default 2K); an exact WxH from Ideogram's official list is also accepted | Output tier. Does not change the price. |
| images | string[] | — | Exactly one image (≤ 10 MB) switches to remix / image-to-image. |
| metadata.aesthetics | string | — | Style description — free text. Any style key switches the request to Ideogram's structured prompt and disables magic prompt. |
| metadata.art_style | string | — | Style description — free text. |
| metadata.lighting | string | — | Style description — free text. |
| metadata.medium | string | — | Style description — free text. |
| metadata.photo | string | — | Style description — free text. |
| metadata.color_palette | string[] | ["#RRGGBB", ...] | Palette as hex strings (malformed entries dropped). |
| metadata.image_weight | integer | 1–100 (clamped) | Remix only: how strongly the input image steers the result. |
- seed and negative_prompt are ignored (no upstream fields on 4.0).
- Style keys are ignored on remix.
- Flat price per image.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "ideogram-v4-quality",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg"
],
"aspect_ratio": "1:1",
"metadata": {
"aesthetics": "clean, minimal",
"art_style": "editorial illustration",
"lighting": "soft morning light",
"medium": "digital painting",
"photo": "35mm film look",
"image_weight": 50
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Agnes · 1
Agnes Image 2.1 Flash — text-to-image or image-to-image.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 0.5K, 1K, 2K, 4K (video-style 480p/720p/1080p are converted) | Size is derived from aspect_ratio + resolution (16-aligned); 0.5K is treated as 1K. |
| images | string[] | — | Reference images for image-to-image. |
- The provider renders synchronously — the task can take up to ~6 minutes to leave queued.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "1:1"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Image tools · 8
Remove the background from images[0].
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "remove-bg",
"images": [
"https://example.com/input-1.jpg"
]
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Remove a watermark from images[0].
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "remove-watermark",
"images": [
"https://example.com/input-1.jpg"
]
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Outpaint images[0] beyond its borders; the prompt guides the new areas.
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
| metadata.aspect_ratio | string | — | Output crop / canvas ratio (this tool reads it from metadata, not the top level). |
| seed | integer | — | Random seed for reproducible output. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "ai-expand",
"images": [
"https://example.com/input-1.jpg"
],
"seed": 42,
"metadata": {
"aspect_ratio": "16:9"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Turn images[0] into an ID / passport photo.
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
| metadata.gender | string | — | Subject gender hint. |
| metadata.aspect_ratio | string | — | Output crop / canvas ratio (this tool reads it from metadata, not the top level). |
| metadata.background | string | — | Background colour / style. |
| metadata.output_format | string | jpg | png (webp becomes png) | Output file format. |
| seed | integer | — | Random seed for reproducible output. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "id-photo",
"images": [
"https://example.com/input-1.jpg"
],
"seed": 42,
"metadata": {
"gender": "female",
"aspect_ratio": "16:9",
"background": "auto",
"output_format": "png"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Swap the face from images[0] onto images[1].
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 2 images: [face source, target photo]. Both must contain a detectable face. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "face-swap",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
]
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Change the haircut / hair colour in images[0].
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
| metadata.haircut | string | — | Target haircut name. |
| metadata.hair_color | string | — | Target hair colour. |
| metadata.gender | string | — | Subject gender hint. |
| metadata.aspect_ratio | string | — | Output crop / canvas ratio (this tool reads it from metadata, not the top level). |
| metadata.output_format | string | jpg | png (webp becomes png) | Output file format. |
| seed | integer | — | Random seed for reproducible output. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "change-haircut",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg"
],
"seed": 42,
"metadata": {
"haircut": "bob",
"hair_color": "auburn",
"gender": "female",
"aspect_ratio": "16:9",
"output_format": "png"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Put the garment from images[1] on the person in images[0].
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 2 images: [person, garment]. |
| metadata.category | string | upper_body | lower_body | dresses (default upper_body) | Garment category. |
| metadata.garment_des | string | defaults to the prompt | Garment description. |
| seed | integer | — | Random seed for reproducible output. |
- prompt doubles as the garment description.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "virtual-tryon",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"seed": 42,
"metadata": {
"category": "upper_body",
"garment_des": "red cotton t-shirt"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Replace the background of images[0] from a prompt or a reference image.
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
| metadata.ref_image_url | string | — | Reference background image (instead of a prompt). |
| negative_prompt | string | — | What to avoid. |
| seed | integer | — | Random seed for reproducible output. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "change-background",
"prompt": "A red bicycle leaning on a white wall, photo",
"images": [
"https://example.com/input-1.jpg"
],
"negative_prompt": "blurry, low quality, text",
"seed": 42,
"metadata": {
"ref_image_url": "https://example.com/background.jpg"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Topaz · 1
Upscale images[0] (Topaz Labs, 4× by default).
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Exactly 1 image (required). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "hd-upscale",
"images": [
"https://example.com/input-1.jpg"
]
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Video models
The price is a tier of resolution × duration (plus audio, reference-video or draft variants where offered). Send an image in images for image-to-video; models that accept video_url or reference_videos do video-to-video. Expand a model's price tiers to see every combination.
Kling · 2
Kling V3 text-to-video / image-to-video (1 image = start frame, 2 = start + end).
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 720p | 1080p (default 720p) | Output resolution tier. Changes the price. |
| duration | integer | 3–15 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Up to 2 images: start frame, or start + end frame. |
| negative_prompt | string | — | What to avoid. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| audio | boolean | — | Generate an audio track. Selects the audio price tier. |
- Price = resolution tier × duration, plus the audio variant.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"negative_prompt": "blurry, low quality, text",
"watermark": false,
"audio": true
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (52)
| tier | credits |
|---|---|
| resolution=720p · duration=3 | 500 |
| resolution=720p · duration=3 · audio | 700 |
| resolution=720p · duration=4 | 600 |
| resolution=720p · duration=4 · audio | 900 |
| resolution=720p · duration=5 | 700 |
| resolution=720p · duration=5 · audio | 1100 |
| resolution=720p · duration=6 | 900 |
| resolution=720p · duration=6 · audio | 1300 |
| resolution=720p · duration=7 | 1000 |
| resolution=720p · duration=7 · audio | 1500 |
| resolution=720p · duration=8 | 1200 |
| resolution=720p · duration=8 · audio | 1700 |
| resolution=720p · duration=9 | 1300 |
| resolution=720p · duration=9 · audio | 1900 |
| resolution=720p · duration=10 | 1400 |
| resolution=720p · duration=10 · audio | 2100 |
| resolution=720p · duration=11 | 1600 |
| resolution=720p · duration=11 · audio | 2400 |
| resolution=720p · duration=12 | 1700 |
| resolution=720p · duration=12 · audio | 2600 |
| resolution=720p · duration=13 | 1900 |
| resolution=720p · duration=13 · audio | 2800 |
| resolution=720p · duration=14 | 2000 |
| resolution=720p · duration=14 · audio | 3000 |
| resolution=720p · duration=15 | 2100 |
| resolution=720p · duration=15 · audio | 3200 |
| resolution=1080p · duration=3 | 600 |
| resolution=1080p · duration=3 · audio | 900 |
| resolution=1080p · duration=4 | 800 |
| resolution=1080p · duration=4 · audio | 1200 |
| resolution=1080p · duration=5 | 1000 |
| resolution=1080p · duration=5 · audio | 1400 |
| resolution=1080p · duration=6 | 1200 |
| resolution=1080p · duration=6 · audio | 1700 |
| resolution=1080p · duration=7 | 1400 |
| resolution=1080p · duration=7 · audio | 2000 |
| resolution=1080p · duration=8 | 1500 |
| resolution=1080p · duration=8 · audio | 2300 |
| resolution=1080p · duration=9 | 1700 |
| resolution=1080p · duration=9 · audio | 2600 |
| resolution=1080p · duration=10 | 1900 |
| resolution=1080p · duration=10 · audio | 2800 |
| resolution=1080p · duration=11 | 2100 |
| resolution=1080p · duration=11 · audio | 3100 |
| resolution=1080p · duration=12 | 2300 |
| resolution=1080p · duration=12 · audio | 3400 |
| resolution=1080p · duration=13 | 2500 |
| resolution=1080p · duration=13 · audio | 3700 |
| resolution=1080p · duration=14 | 2700 |
| resolution=1080p · duration=14 · audio | 4000 |
| resolution=1080p · duration=15 | 2800 |
| resolution=1080p · duration=15 · audio | 4200 |
Kling V2.6 text-to-video / image-to-video.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| duration | integer | 5 | 10 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Up to 2 images: start frame, or start + end frame. |
| negative_prompt | string | — | What to avoid. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| audio | boolean | — | Generate an audio track. Selects the audio price tier. |
- Price = resolution tier × duration, plus the audio variant.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v2-6",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"duration": 5,
"aspect_ratio": "16:9",
"negative_prompt": "blurry, low quality, text",
"watermark": false,
"audio": true
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (8)
| tier | credits |
|---|---|
| duration=5 | 600 |
| duration=5 · audio | 1200 |
| duration=5 · image_to_video | 600 |
| duration=5 · audio · image_to_video | 1200 |
| duration=10 | 1200 |
| duration=10 · audio | 2400 |
| duration=10 · image_to_video | 1200 |
| duration=10 · audio · image_to_video | 2400 |
Alibaba · 1
Alibaba Wan 3.0 — one model for text-to-video, first/last-frame, and reference generation (from images, videos, audio, a document or a web page). The mode follows the media you send.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 480P | 720P | 1080P (default 720P) — (1080P costs 4× 480P) | Output resolution tier. Changes the price. |
| duration | integer | 2–30 s (default 5) | Length in seconds. Changes the price. |
| aspect_ratio | string | 16:9, 4:3, 1:1, 3:4, 9:16, or adaptive | Output aspect ratio. |
| images | string[] | — | Frames: [0] first frame, [1] last frame. Cannot be mixed with metadata.reference_*. |
| metadata.reference_images | string[] | ≤ 10 | Reference images, addressed in the prompt as 图1, 图2… |
| metadata.reference_videos | string[] | ≤ 5, ≤ 15 s total | Reference videos (视频1…). |
| metadata.reference_audios | string[] | ≤ 5, ≤ 15 s total | Reference audio (音频1…). |
| metadata.reference_files | string[] | exactly 1; exclusive with reference_links | Generate from a document. |
| metadata.reference_links | string[] | exactly 1; exclusive with reference_files | Generate from a web page. |
| metadata.generate_audio | boolean | — | Audio track on/off (same price either way). |
| metadata.prompt_extend | boolean | — | Provider prompt rewrite. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
- resolution has no default — omitting it is a 400.
- Only output seconds are billed.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "720P",
"duration": 5,
"aspect_ratio": "16:9",
"seed": 42,
"watermark": false,
"metadata": {
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_videos": [
"https://example.com/reference.mp4"
],
"reference_audios": [
"https://example.com/reference.mp3"
],
"reference_files": [
"https://example.com/brief.pdf"
],
"reference_links": [
"https://example.com/article"
],
"generate_audio": true,
"prompt_extend": true
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (87)
| tier | credits |
|---|---|
| resolution=480P · duration=2 | 200 |
| resolution=480P · duration=3 | 300 |
| resolution=480P · duration=4 | 400 |
| resolution=480P · duration=5 | 500 |
| resolution=480P · duration=6 | 600 |
| resolution=480P · duration=7 | 700 |
| resolution=480P · duration=8 | 800 |
| resolution=480P · duration=9 | 900 |
| resolution=480P · duration=10 | 1000 |
| resolution=480P · duration=11 | 1100 |
| resolution=480P · duration=12 | 1200 |
| resolution=480P · duration=13 | 1300 |
| resolution=480P · duration=14 | 1400 |
| resolution=480P · duration=15 | 1500 |
| resolution=480P · duration=16 | 1600 |
| resolution=480P · duration=17 | 1700 |
| resolution=480P · duration=18 | 1800 |
| resolution=480P · duration=19 | 1900 |
| resolution=480P · duration=20 | 2000 |
| resolution=480P · duration=21 | 2100 |
| resolution=480P · duration=22 | 2200 |
| resolution=480P · duration=23 | 2300 |
| resolution=480P · duration=24 | 2400 |
| resolution=480P · duration=25 | 2500 |
| resolution=480P · duration=26 | 2600 |
| resolution=480P · duration=27 | 2700 |
| resolution=480P · duration=28 | 2800 |
| resolution=480P · duration=29 | 2900 |
| resolution=480P · duration=30 | 3000 |
| resolution=720P · duration=2 | 400 |
| resolution=720P · duration=3 | 600 |
| resolution=720P · duration=4 | 800 |
| resolution=720P · duration=5 | 1000 |
| resolution=720P · duration=6 | 1200 |
| resolution=720P · duration=7 | 1400 |
| resolution=720P · duration=8 | 1600 |
| resolution=720P · duration=9 | 1800 |
| resolution=720P · duration=10 | 2000 |
| resolution=720P · duration=11 | 2200 |
| resolution=720P · duration=12 | 2400 |
| resolution=720P · duration=13 | 2600 |
| resolution=720P · duration=14 | 2800 |
| resolution=720P · duration=15 | 3000 |
| resolution=720P · duration=16 | 3200 |
| resolution=720P · duration=17 | 3400 |
| resolution=720P · duration=18 | 3600 |
| resolution=720P · duration=19 | 3800 |
| resolution=720P · duration=20 | 4000 |
| resolution=720P · duration=21 | 4200 |
| resolution=720P · duration=22 | 4400 |
| resolution=720P · duration=23 | 4600 |
| resolution=720P · duration=24 | 4800 |
| resolution=720P · duration=25 | 5000 |
| resolution=720P · duration=26 | 5200 |
| resolution=720P · duration=27 | 5400 |
| resolution=720P · duration=28 | 5600 |
| resolution=720P · duration=29 | 5800 |
| resolution=720P · duration=30 | 6000 |
| resolution=1080P · duration=2 | 800 |
| resolution=1080P · duration=3 | 1200 |
| resolution=1080P · duration=4 | 1600 |
| resolution=1080P · duration=5 | 2000 |
| resolution=1080P · duration=6 | 2400 |
| resolution=1080P · duration=7 | 2800 |
| resolution=1080P · duration=8 | 3200 |
| resolution=1080P · duration=9 | 3600 |
| resolution=1080P · duration=10 | 4000 |
| resolution=1080P · duration=11 | 4400 |
| resolution=1080P · duration=12 | 4800 |
| resolution=1080P · duration=13 | 5200 |
| resolution=1080P · duration=14 | 5600 |
| resolution=1080P · duration=15 | 6000 |
| resolution=1080P · duration=16 | 6400 |
| resolution=1080P · duration=17 | 6800 |
| resolution=1080P · duration=18 | 7200 |
| resolution=1080P · duration=19 | 7600 |
| resolution=1080P · duration=20 | 8000 |
| resolution=1080P · duration=21 | 8400 |
| resolution=1080P · duration=22 | 8800 |
| resolution=1080P · duration=23 | 9200 |
| resolution=1080P · duration=24 | 9600 |
| resolution=1080P · duration=25 | 10000 |
| resolution=1080P · duration=26 | 10400 |
| resolution=1080P · duration=27 | 10800 |
| resolution=1080P · duration=28 | 11200 |
| resolution=1080P · duration=29 | 11600 |
| resolution=1080P · duration=30 | 12000 |
HappyHorse · 4
HappyHorse 1.0 text-to-video.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus 4:5 and 5:4 (default 16:9; 3:2 / 2:3 snap to 4:3 / 3:4) | Output aspect ratio. |
| resolution | string | 720p | 1080p (default 720p) | Output resolution tier. Changes the price. |
| duration | integer | 3–15 s (default 5) | Length in seconds. Changes the price. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | default false | Provider watermark (always sent; default false). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.0-t2v",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"seed": 42,
"watermark": false
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (26)
| tier | credits |
|---|---|
| resolution=720p · duration=3 | 1300 |
| resolution=720p · duration=4 | 1700 |
| resolution=720p · duration=5 | 2100 |
| resolution=720p · duration=6 | 2500 |
| resolution=720p · duration=7 | 2900 |
| resolution=720p · duration=8 | 3300 |
| resolution=720p · duration=9 | 3700 |
| resolution=720p · duration=10 | 4100 |
| resolution=720p · duration=11 | 4500 |
| resolution=720p · duration=12 | 4900 |
| resolution=720p · duration=13 | 5300 |
| resolution=720p · duration=14 | 5700 |
| resolution=720p · duration=15 | 6100 |
| resolution=1080p · duration=3 | 2000 |
| resolution=1080p · duration=4 | 2600 |
| resolution=1080p · duration=5 | 3200 |
| resolution=1080p · duration=6 | 3900 |
| resolution=1080p · duration=7 | 4500 |
| resolution=1080p · duration=8 | 5200 |
| resolution=1080p · duration=9 | 5800 |
| resolution=1080p · duration=10 | 6400 |
| resolution=1080p · duration=11 | 7100 |
| resolution=1080p · duration=12 | 7700 |
| resolution=1080p · duration=13 | 8400 |
| resolution=1080p · duration=14 | 9000 |
| resolution=1080p · duration=15 | 9600 |
HappyHorse 1.0 image-to-video (aspect follows the input image).
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 720p | 1080p (default 720p) | Output resolution tier. Changes the price. |
| duration | integer | 3–15 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Required: 1 first-frame image. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | default false | Provider watermark (always sent; default false). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.0-i2v",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg"
],
"resolution": "720p",
"duration": 5,
"seed": 42,
"watermark": false
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (26)
| tier | credits |
|---|---|
| resolution=720p · duration=3 | 1300 |
| resolution=720p · duration=4 | 1700 |
| resolution=720p · duration=5 | 2100 |
| resolution=720p · duration=6 | 2500 |
| resolution=720p · duration=7 | 2900 |
| resolution=720p · duration=8 | 3300 |
| resolution=720p · duration=9 | 3700 |
| resolution=720p · duration=10 | 4100 |
| resolution=720p · duration=11 | 4500 |
| resolution=720p · duration=12 | 4900 |
| resolution=720p · duration=13 | 5300 |
| resolution=720p · duration=14 | 5700 |
| resolution=720p · duration=15 | 6100 |
| resolution=1080p · duration=3 | 2000 |
| resolution=1080p · duration=4 | 2600 |
| resolution=1080p · duration=5 | 3200 |
| resolution=1080p · duration=6 | 3900 |
| resolution=1080p · duration=7 | 4500 |
| resolution=1080p · duration=8 | 5200 |
| resolution=1080p · duration=9 | 5800 |
| resolution=1080p · duration=10 | 6400 |
| resolution=1080p · duration=11 | 7100 |
| resolution=1080p · duration=12 | 7700 |
| resolution=1080p · duration=13 | 8400 |
| resolution=1080p · duration=14 | 9000 |
| resolution=1080p · duration=15 | 9600 |
HappyHorse 1.0 reference-to-video (1–9 reference images).
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus 4:5 and 5:4 (default 16:9; 3:2 / 2:3 snap to 4:3 / 3:4) | Output aspect ratio. |
| resolution | string | 720p | 1080p (default 720p) | Output resolution tier. Changes the price. |
| duration | integer | 3–15 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Required: 1–9 reference images. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | default false | Provider watermark (always sent; default false). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.0-r2v",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg"
],
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"seed": 42,
"watermark": false
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (26)
| tier | credits |
|---|---|
| resolution=720p · duration=3 | 1300 |
| resolution=720p · duration=4 | 1700 |
| resolution=720p · duration=5 | 2100 |
| resolution=720p · duration=6 | 2500 |
| resolution=720p · duration=7 | 2900 |
| resolution=720p · duration=8 | 3300 |
| resolution=720p · duration=9 | 3700 |
| resolution=720p · duration=10 | 4100 |
| resolution=720p · duration=11 | 4500 |
| resolution=720p · duration=12 | 4900 |
| resolution=720p · duration=13 | 5300 |
| resolution=720p · duration=14 | 5700 |
| resolution=720p · duration=15 | 6100 |
| resolution=1080p · duration=3 | 2000 |
| resolution=1080p · duration=4 | 2600 |
| resolution=1080p · duration=5 | 3200 |
| resolution=1080p · duration=6 | 3900 |
| resolution=1080p · duration=7 | 4500 |
| resolution=1080p · duration=8 | 5200 |
| resolution=1080p · duration=9 | 5800 |
| resolution=1080p · duration=10 | 6400 |
| resolution=1080p · duration=11 | 7100 |
| resolution=1080p · duration=12 | 7700 |
| resolution=1080p · duration=13 | 8400 |
| resolution=1080p · duration=14 | 9000 |
| resolution=1080p · duration=15 | 9600 |
HappyHorse 1.0 video edit: rewrites a source video; length follows the source.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 720p | 1080p (default 720p) | Output resolution tier. Changes the price. |
| duration | integer | 3–15 s (default 5) | Billing tier only — the output keeps the source length. |
| video_url | string | — | Source video URL (required). |
| images | string[] | — | Up to 5 reference images. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | default false | Provider watermark (always sent; default false). |
| metadata.audio_setting | string | auto | origin | Regenerate audio or keep the original track. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.0-video-edit",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"video_url": "https://example.com/source.mp4",
"resolution": "720p",
"duration": 5,
"seed": 42,
"watermark": false,
"metadata": {
"audio_setting": "auto"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (26)
| tier | credits |
|---|---|
| resolution=720p · duration=3 · reference_video | 1300 |
| resolution=720p · duration=4 · reference_video | 1700 |
| resolution=720p · duration=5 · reference_video | 2100 |
| resolution=720p · duration=6 · reference_video | 2500 |
| resolution=720p · duration=7 · reference_video | 2900 |
| resolution=720p · duration=8 · reference_video | 3300 |
| resolution=720p · duration=9 · reference_video | 3700 |
| resolution=720p · duration=10 · reference_video | 4100 |
| resolution=720p · duration=11 · reference_video | 4500 |
| resolution=720p · duration=12 · reference_video | 4900 |
| resolution=720p · duration=13 · reference_video | 5300 |
| resolution=720p · duration=14 · reference_video | 5700 |
| resolution=720p · duration=15 · reference_video | 6100 |
| resolution=1080p · duration=3 · reference_video | 2000 |
| resolution=1080p · duration=4 · reference_video | 2600 |
| resolution=1080p · duration=5 · reference_video | 3200 |
| resolution=1080p · duration=6 · reference_video | 3900 |
| resolution=1080p · duration=7 · reference_video | 4500 |
| resolution=1080p · duration=8 · reference_video | 5200 |
| resolution=1080p · duration=9 · reference_video | 5800 |
| resolution=1080p · duration=10 · reference_video | 6400 |
| resolution=1080p · duration=11 · reference_video | 7100 |
| resolution=1080p · duration=12 · reference_video | 7700 |
| resolution=1080p · duration=13 · reference_video | 8400 |
| resolution=1080p · duration=14 · reference_video | 9000 |
| resolution=1080p · duration=15 · reference_video | 9600 |
ByteDance · 3
ByteDance Seedance. Mode follows the media: no media = text-to-video; 1 image = first frame; 2 images = first + last frame; a video URL in images or metadata.reference_videos = reference / continuation (with-video price tier).
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus adaptive (ratio decided by the input media) | Output aspect ratio. |
| resolution | string | 480p | 720p (default 480p) | Output resolution tier. Changes the price. |
| duration | integer | 4–15 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Frame images, or video URLs (.mp4/.mov) for reference. Frames and reference media cannot be mixed. |
| audio | string | — | Reference audio URL; must be paired with a reference video (r2v). Max 15.2 s. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| metadata.reference_images | string[] | ≤ 9 | Reference images (role reference_image). |
| metadata.reference_videos | string[] | ≤ 3 | Reference videos. Selects the with-video price tier. |
| metadata.reference_audios | string[] | ≤ 3 | Reference audio URLs. |
| metadata.generate_audio | boolean | — | Attach an audio track to the output. |
| metadata.return_last_frame | boolean | — | Also return the last frame image. |
| metadata.camera_fixed | boolean | — | Keep the camera fixed (stripped on seedance-2.0-fast text-to-video). |
| metadata.priority | integer | 0–9 (default 0) | Scheduling priority; no billing effect. |
- seed is ignored after a provider failover.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "480p",
"duration": 5,
"aspect_ratio": "16:9",
"audio": "https://example.com/reference.mp3",
"seed": 42,
"watermark": false,
"metadata": {
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_videos": [
"https://example.com/reference.mp4"
],
"reference_audios": [
"https://example.com/reference.mp3"
],
"generate_audio": true,
"return_last_frame": false,
"camera_fixed": false,
"priority": 0
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (48)
| tier | credits |
|---|---|
| resolution=480p · duration=4 | 900 |
| resolution=480p · duration=4 · reference_video | 2600 |
| resolution=480p · duration=5 | 1200 |
| resolution=480p · duration=5 · reference_video | 2800 |
| resolution=480p · duration=6 | 1400 |
| resolution=480p · duration=6 · reference_video | 2900 |
| resolution=480p · duration=7 | 1600 |
| resolution=480p · duration=7 · reference_video | 3100 |
| resolution=480p · duration=8 | 1800 |
| resolution=480p · duration=8 · reference_video | 3200 |
| resolution=480p · duration=9 | 2100 |
| resolution=480p · duration=9 · reference_video | 3300 |
| resolution=480p · duration=10 | 2300 |
| resolution=480p · duration=10 · reference_video | 3500 |
| resolution=480p · duration=11 | 2500 |
| resolution=480p · duration=11 · reference_video | 3600 |
| resolution=480p · duration=12 | 2700 |
| resolution=480p · duration=12 · reference_video | 3700 |
| resolution=480p · duration=13 | 3000 |
| resolution=480p · duration=13 · reference_video | 3900 |
| resolution=480p · duration=14 | 3200 |
| resolution=480p · duration=14 · reference_video | 4000 |
| resolution=480p · duration=15 | 3400 |
| resolution=480p · duration=15 · reference_video | 4100 |
| resolution=720p · duration=4 | 2000 |
| resolution=720p · duration=4 · reference_video | 5600 |
| resolution=720p · duration=5 | 2500 |
| resolution=720p · duration=5 · reference_video | 5900 |
| resolution=720p · duration=6 | 2900 |
| resolution=720p · duration=6 · reference_video | 6200 |
| resolution=720p · duration=7 | 3400 |
| resolution=720p · duration=7 · reference_video | 6500 |
| resolution=720p · duration=8 | 3900 |
| resolution=720p · duration=8 · reference_video | 6800 |
| resolution=720p · duration=9 | 4400 |
| resolution=720p · duration=9 · reference_video | 7100 |
| resolution=720p · duration=10 | 4900 |
| resolution=720p · duration=10 · reference_video | 7400 |
| resolution=720p · duration=11 | 5400 |
| resolution=720p · duration=11 · reference_video | 7700 |
| resolution=720p · duration=12 | 5800 |
| resolution=720p · duration=12 · reference_video | 8000 |
| resolution=720p · duration=13 | 6300 |
| resolution=720p · duration=13 · reference_video | 8300 |
| resolution=720p · duration=14 | 6800 |
| resolution=720p · duration=14 · reference_video | 8600 |
| resolution=720p · duration=15 | 7300 |
| resolution=720p · duration=15 · reference_video | 8900 |
ByteDance Seedance. Mode follows the media: no media = text-to-video; 1 image = first frame; 2 images = first + last frame; a video URL in images or metadata.reference_videos = reference / continuation (with-video price tier).
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus adaptive (ratio decided by the input media) | Output aspect ratio. |
| resolution | string | 480p | 720p (default 480p) | Output resolution tier. Changes the price. |
| duration | integer | 4–15 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Frame images, or video URLs (.mp4/.mov) for reference. Frames and reference media cannot be mixed. |
| audio | string | — | Reference audio URL; must be paired with a reference video (r2v). Max 15.2 s. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| metadata.reference_images | string[] | ≤ 9 | Reference images (role reference_image). |
| metadata.reference_videos | string[] | ≤ 3 | Reference videos. Selects the with-video price tier. |
| metadata.reference_audios | string[] | ≤ 3 | Reference audio URLs. |
| metadata.generate_audio | boolean | — | Attach an audio track to the output. |
| metadata.return_last_frame | boolean | — | Also return the last frame image. |
| metadata.camera_fixed | boolean | — | Keep the camera fixed (stripped on seedance-2.0-fast text-to-video). |
| metadata.priority | integer | 0–9 (default 0) | Scheduling priority; no billing effect. |
- seed is ignored after a provider failover.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-fast",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "480p",
"duration": 5,
"aspect_ratio": "16:9",
"audio": "https://example.com/reference.mp3",
"seed": 42,
"watermark": false,
"metadata": {
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_videos": [
"https://example.com/reference.mp4"
],
"reference_audios": [
"https://example.com/reference.mp3"
],
"generate_audio": true,
"return_last_frame": false,
"camera_fixed": false,
"priority": 0
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (48)
| tier | credits |
|---|---|
| resolution=480p · duration=4 | 800 |
| resolution=480p · duration=4 · reference_video | 2100 |
| resolution=480p · duration=5 | 1000 |
| resolution=480p · duration=5 · reference_video | 2200 |
| resolution=480p · duration=6 | 1100 |
| resolution=480p · duration=6 · reference_video | 2300 |
| resolution=480p · duration=7 | 1300 |
| resolution=480p · duration=7 · reference_video | 2400 |
| resolution=480p · duration=8 | 1500 |
| resolution=480p · duration=8 · reference_video | 2500 |
| resolution=480p · duration=9 | 1700 |
| resolution=480p · duration=9 · reference_video | 2600 |
| resolution=480p · duration=10 | 1900 |
| resolution=480p · duration=10 · reference_video | 2700 |
| resolution=480p · duration=11 | 2000 |
| resolution=480p · duration=11 · reference_video | 2800 |
| resolution=480p · duration=12 | 2200 |
| resolution=480p · duration=12 · reference_video | 2900 |
| resolution=480p · duration=13 | 2400 |
| resolution=480p · duration=13 · reference_video | 3100 |
| resolution=480p · duration=14 | 2600 |
| resolution=480p · duration=14 · reference_video | 3200 |
| resolution=480p · duration=15 | 2800 |
| resolution=480p · duration=15 · reference_video | 3300 |
| resolution=720p · duration=4 | 1600 |
| resolution=720p · duration=4 · reference_video | 4400 |
| resolution=720p · duration=5 | 2000 |
| resolution=720p · duration=5 · reference_video | 4700 |
| resolution=720p · duration=6 | 2400 |
| resolution=720p · duration=6 · reference_video | 4900 |
| resolution=720p · duration=7 | 2800 |
| resolution=720p · duration=7 · reference_video | 5100 |
| resolution=720p · duration=8 | 3200 |
| resolution=720p · duration=8 · reference_video | 5400 |
| resolution=720p · duration=9 | 3500 |
| resolution=720p · duration=9 · reference_video | 5600 |
| resolution=720p · duration=10 | 3900 |
| resolution=720p · duration=10 · reference_video | 5800 |
| resolution=720p · duration=11 | 4300 |
| resolution=720p · duration=11 · reference_video | 6000 |
| resolution=720p · duration=12 | 4700 |
| resolution=720p · duration=12 · reference_video | 6300 |
| resolution=720p · duration=13 | 5100 |
| resolution=720p · duration=13 · reference_video | 6500 |
| resolution=720p · duration=14 | 5500 |
| resolution=720p · duration=14 · reference_video | 6700 |
| resolution=720p · duration=15 | 5900 |
| resolution=720p · duration=15 · reference_video | 7000 |
ByteDance Seedance. Mode follows the media: no media = text-to-video; 1 image = first frame; 2 images = first + last frame; a video URL in images or metadata.reference_videos = reference / continuation (with-video price tier).
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | standard set plus adaptive (ratio decided by the input media); rejected on first/last-frame tasks | Output aspect ratio. |
| resolution | string | 480p | 720p (default 480p) — (1080p costs 2.25× 720p) | Output resolution tier. Changes the price. |
| duration | integer | 4–30 s (default 5) | Length in seconds. Changes the price. |
| images | string[] | — | Frame images, or video URLs (.mp4/.mov) for reference. Frames and reference media cannot be mixed. |
| audio | string | — | Reference audio URL. |
| seed | integer | — | Random seed for reproducible output. |
| watermark | boolean | — | Provider watermark. Only forwarded when you send it; omitted follows the provider default. |
| metadata.reference_images | string[] | ≤ 30 | Reference images (role reference_image). |
| metadata.reference_videos | string[] | ≤ 10 | Reference videos. Selects the with-video price tier. |
| metadata.reference_audios | string[] | ≤ 10 | Reference audio URLs. |
| metadata.generate_audio | boolean | — | Attach an audio track to the output. |
| metadata.return_last_frame | boolean | — | Also return the last frame image. |
- Send aspect_ratio "adaptive" whenever the request carries a reference video.
- Edit-style prompts ("replace / delete…" over a reference video) are not served on this line; use reference semantics.
- seed is ignored after a provider failover.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "480p",
"duration": 5,
"aspect_ratio": "16:9",
"audio": "https://example.com/reference.mp3",
"seed": 42,
"watermark": false,
"metadata": {
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_videos": [
"https://example.com/reference.mp4"
],
"reference_audios": [
"https://example.com/reference.mp3"
],
"generate_audio": true,
"return_last_frame": false
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (108)
| tier | credits |
|---|---|
| resolution=480p · duration=4 | 1300 |
| resolution=480p · duration=4 · reference_video | 6400 |
| resolution=480p · duration=5 | 1600 |
| resolution=480p · duration=5 · reference_video | 6600 |
| resolution=480p · duration=6 | 1900 |
| resolution=480p · duration=6 · reference_video | 6800 |
| resolution=480p · duration=7 | 2200 |
| resolution=480p · duration=7 · reference_video | 7000 |
| resolution=480p · duration=8 | 2500 |
| resolution=480p · duration=8 · reference_video | 7100 |
| resolution=480p · duration=9 | 2800 |
| resolution=480p · duration=9 · reference_video | 7300 |
| resolution=480p · duration=10 | 3100 |
| resolution=480p · duration=10 · reference_video | 7500 |
| resolution=480p · duration=11 | 3400 |
| resolution=480p · duration=11 · reference_video | 7700 |
| resolution=480p · duration=12 | 3800 |
| resolution=480p · duration=12 · reference_video | 7900 |
| resolution=480p · duration=13 | 4100 |
| resolution=480p · duration=13 · reference_video | 8100 |
| resolution=480p · duration=14 | 4400 |
| resolution=480p · duration=14 · reference_video | 8300 |
| resolution=480p · duration=15 | 4700 |
| resolution=480p · duration=15 · reference_video | 8500 |
| resolution=480p · duration=16 | 5000 |
| resolution=480p · duration=16 · reference_video | 8600 |
| resolution=480p · duration=17 | 5300 |
| resolution=480p · duration=17 · reference_video | 8800 |
| resolution=480p · duration=18 | 5600 |
| resolution=480p · duration=18 · reference_video | 9000 |
| resolution=480p · duration=19 | 6000 |
| resolution=480p · duration=19 · reference_video | 9200 |
| resolution=480p · duration=20 | 6300 |
| resolution=480p · duration=20 · reference_video | 9400 |
| resolution=480p · duration=21 | 6600 |
| resolution=480p · duration=21 · reference_video | 9600 |
| resolution=480p · duration=22 | 6900 |
| resolution=480p · duration=22 · reference_video | 9800 |
| resolution=480p · duration=23 | 7200 |
| resolution=480p · duration=23 · reference_video | 10000 |
| resolution=480p · duration=24 | 7500 |
| resolution=480p · duration=24 · reference_video | 10100 |
| resolution=480p · duration=25 | 7800 |
| resolution=480p · duration=25 · reference_video | 10300 |
| resolution=480p · duration=26 | 8100 |
| resolution=480p · duration=26 · reference_video | 10500 |
| resolution=480p · duration=27 | 8500 |
| resolution=480p · duration=27 · reference_video | 10700 |
| resolution=480p · duration=28 | 8800 |
| resolution=480p · duration=28 · reference_video | 10900 |
| resolution=480p · duration=29 | 9100 |
| resolution=480p · duration=29 · reference_video | 11100 |
| resolution=480p · duration=30 | 9400 |
| resolution=480p · duration=30 · reference_video | 11300 |
| resolution=720p · duration=4 | 2800 |
| resolution=720p · duration=4 · reference_video | 14400 |
| resolution=720p · duration=5 | 3500 |
| resolution=720p · duration=5 · reference_video | 14800 |
| resolution=720p · duration=6 | 4200 |
| resolution=720p · duration=6 · reference_video | 15200 |
| resolution=720p · duration=7 | 4900 |
| resolution=720p · duration=7 · reference_video | 15600 |
| resolution=720p · duration=8 | 5600 |
| resolution=720p · duration=8 · reference_video | 16100 |
| resolution=720p · duration=9 | 6300 |
| resolution=720p · duration=9 · reference_video | 16500 |
| resolution=720p · duration=10 | 7000 |
| resolution=720p · duration=10 · reference_video | 16900 |
| resolution=720p · duration=11 | 7700 |
| resolution=720p · duration=11 · reference_video | 17300 |
| resolution=720p · duration=12 | 8500 |
| resolution=720p · duration=12 · reference_video | 17700 |
| resolution=720p · duration=13 | 9200 |
| resolution=720p · duration=13 · reference_video | 18200 |
| resolution=720p · duration=14 | 9900 |
| resolution=720p · duration=14 · reference_video | 18600 |
| resolution=720p · duration=15 | 10600 |
| resolution=720p · duration=15 · reference_video | 19000 |
| resolution=720p · duration=16 | 11300 |
| resolution=720p · duration=16 · reference_video | 19400 |
| resolution=720p · duration=17 | 12000 |
| resolution=720p · duration=17 · reference_video | 19900 |
| resolution=720p · duration=18 | 12700 |
| resolution=720p · duration=18 · reference_video | 20300 |
| resolution=720p · duration=19 | 13400 |
| resolution=720p · duration=19 · reference_video | 20700 |
| resolution=720p · duration=20 | 14100 |
| resolution=720p · duration=20 · reference_video | 21100 |
| resolution=720p · duration=21 | 14800 |
| resolution=720p · duration=21 · reference_video | 21500 |
| resolution=720p · duration=22 | 15500 |
| resolution=720p · duration=22 · reference_video | 22000 |
| resolution=720p · duration=23 | 16200 |
| resolution=720p · duration=23 · reference_video | 22400 |
| resolution=720p · duration=24 | 16900 |
| resolution=720p · duration=24 · reference_video | 22800 |
| resolution=720p · duration=25 | 17600 |
| resolution=720p · duration=25 · reference_video | 23200 |
| resolution=720p · duration=26 | 18300 |
| resolution=720p · duration=26 · reference_video | 23700 |
| resolution=720p · duration=27 | 19000 |
| resolution=720p · duration=27 · reference_video | 24100 |
| resolution=720p · duration=28 | 19700 |
| resolution=720p · duration=28 · reference_video | 24500 |
| resolution=720p · duration=29 | 20400 |
| resolution=720p · duration=29 · reference_video | 24900 |
| resolution=720p · duration=30 | 21100 |
| resolution=720p · duration=30 · reference_video | 25400 |
MiniMax · 1
MiniMax Hailuo H3. Text-to-video (aspect_ratio required, not adaptive), image-to-video (1 image = first frame, 2 = first + last), or reference-to-video (metadata.reference_*). Frames and reference media cannot be mixed.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 768P | 2K (default 768P) | Output resolution tier. Changes the price. |
| duration | integer | 4–15 s (default 5) | Length in seconds. Changes the price. |
| aspect_ratio | string | standard set plus adaptive (not for text-to-video); default 16:9 when you send nothing | Output aspect ratio. |
| images | string[] | — | Up to 2 frame images. |
| metadata.reference_images | string[] | ≤ 9 (the first 5 are free; more add a small per-image charge) | Reference images. |
| metadata.reference_videos | string[] | ≤ 3, ≤ 15 s total | Reference videos — with-video price tier, settled to the real input length on completion. |
| metadata.reference_audios | string[] | ≤ 3 | Reference audio (must be paired with an image or video on the primary line). |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-h3",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "768P",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_videos": [
"https://example.com/reference.mp4"
],
"reference_audios": [
"https://example.com/reference.mp3"
]
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (48)
| tier | credits |
|---|---|
| resolution=768P · duration=4 | 1100 |
| resolution=768P · duration=4 · reference_video | 5100 |
| resolution=768P · duration=5 | 1300 |
| resolution=768P · duration=5 · reference_video | 5300 |
| resolution=768P · duration=6 | 1600 |
| resolution=768P · duration=6 · reference_video | 5600 |
| resolution=768P · duration=7 | 1900 |
| resolution=768P · duration=7 · reference_video | 5900 |
| resolution=768P · duration=8 | 2100 |
| resolution=768P · duration=8 · reference_video | 6100 |
| resolution=768P · duration=9 | 2400 |
| resolution=768P · duration=9 · reference_video | 6400 |
| resolution=768P · duration=10 | 2700 |
| resolution=768P · duration=10 · reference_video | 6700 |
| resolution=768P · duration=11 | 2900 |
| resolution=768P · duration=11 · reference_video | 6900 |
| resolution=768P · duration=12 | 3200 |
| resolution=768P · duration=12 · reference_video | 7200 |
| resolution=768P · duration=13 | 3500 |
| resolution=768P · duration=13 · reference_video | 7500 |
| resolution=768P · duration=14 | 3700 |
| resolution=768P · duration=14 · reference_video | 7700 |
| resolution=768P · duration=15 | 4000 |
| resolution=768P · duration=15 · reference_video | 8000 |
| resolution=2K · duration=4 | 1700 |
| resolution=2K · duration=4 · reference_video | 8200 |
| resolution=2K · duration=5 | 2200 |
| resolution=2K · duration=5 · reference_video | 8700 |
| resolution=2K · duration=6 | 2600 |
| resolution=2K · duration=6 · reference_video | 9100 |
| resolution=2K · duration=7 | 3000 |
| resolution=2K · duration=7 · reference_video | 9500 |
| resolution=2K · duration=8 | 3500 |
| resolution=2K · duration=8 · reference_video | 10000 |
| resolution=2K · duration=9 | 3900 |
| resolution=2K · duration=9 · reference_video | 10400 |
| resolution=2K · duration=10 | 4300 |
| resolution=2K · duration=10 · reference_video | 10800 |
| resolution=2K · duration=11 | 4800 |
| resolution=2K · duration=11 · reference_video | 11300 |
| resolution=2K · duration=12 | 5200 |
| resolution=2K · duration=12 · reference_video | 11700 |
| resolution=2K · duration=13 | 5600 |
| resolution=2K · duration=13 · reference_video | 12100 |
| resolution=2K · duration=14 | 6100 |
| resolution=2K · duration=14 · reference_video | 12600 |
| resolution=2K · duration=15 | 6500 |
| resolution=2K · duration=15 · reference_video | 13000 |
Black Forest Labs · 1
Black Forest Labs FLUX 3 Video. Mode follows the assets: no media = text-to-video; images = keyframes (1 start, 2 start + end, 3–10 spaced evenly, order is semantic); a video URL = continuation (~2.4× the price). Keyframes and a continuation video cannot be combined.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | hd | fhd (default hd) | Output resolution tier. Changes the price. |
| duration | integer | 5–20 s (default 5) | Length in seconds. Changes the price. |
| aspect_ratio | string | 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16 (omit for auto) | Output aspect ratio. |
| images | string[] | — | 1–4 keyframe images. |
| reference_videos | string[] | exactly 1 | Continuation source video. |
| draft | boolean | — | Low-quality preview at ~1/3 price; hd only (draft + fhd is a 400). |
| metadata.generate_audio | boolean | default true | Audio track on/off (same price). |
- Continuation is billed for the requested seconds even if the provider returns a shorter clip.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "flux-3-video",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "hd",
"duration": 5,
"aspect_ratio": "16:9",
"reference_videos": [
"https://example.com/reference.mp4"
],
"draft": false,
"metadata": {
"generate_audio": true
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (96)
| tier | credits |
|---|---|
| resolution=hd · duration=5 | 2300 |
| resolution=hd · duration=5 · draft | 800 |
| resolution=hd · duration=5 · reference_video | 5500 |
| resolution=hd · duration=5 · reference_video · draft | 1600 |
| resolution=hd · duration=6 | 2700 |
| resolution=hd · duration=6 · draft | 1000 |
| resolution=hd · duration=6 · reference_video | 6600 |
| resolution=hd · duration=6 · reference_video · draft | 1900 |
| resolution=hd · duration=7 | 3200 |
| resolution=hd · duration=7 · draft | 1100 |
| resolution=hd · duration=7 · reference_video | 7600 |
| resolution=hd · duration=7 · reference_video · draft | 2200 |
| resolution=hd · duration=8 | 3600 |
| resolution=hd · duration=8 · draft | 1300 |
| resolution=hd · duration=8 · reference_video | 8700 |
| resolution=hd · duration=8 · reference_video · draft | 2600 |
| resolution=hd · duration=9 | 4100 |
| resolution=hd · duration=9 · draft | 1400 |
| resolution=hd · duration=9 · reference_video | 9800 |
| resolution=hd · duration=9 · reference_video · draft | 2900 |
| resolution=hd · duration=10 | 4500 |
| resolution=hd · duration=10 · draft | 1600 |
| resolution=hd · duration=10 · reference_video | 10900 |
| resolution=hd · duration=10 · reference_video · draft | 3200 |
| resolution=hd · duration=11 | 5000 |
| resolution=hd · duration=11 · draft | 1800 |
| resolution=hd · duration=11 · reference_video | 12000 |
| resolution=hd · duration=11 · reference_video · draft | 3500 |
| resolution=hd · duration=12 | 5400 |
| resolution=hd · duration=12 · draft | 1900 |
| resolution=hd · duration=12 · reference_video | 13100 |
| resolution=hd · duration=12 · reference_video · draft | 3800 |
| resolution=hd · duration=13 | 5900 |
| resolution=hd · duration=13 · draft | 2100 |
| resolution=hd · duration=13 · reference_video | 14200 |
| resolution=hd · duration=13 · reference_video · draft | 4200 |
| resolution=hd · duration=14 | 6300 |
| resolution=hd · duration=14 · draft | 2200 |
| resolution=hd · duration=14 · reference_video | 15300 |
| resolution=hd · duration=14 · reference_video · draft | 4500 |
| resolution=hd · duration=15 | 6800 |
| resolution=hd · duration=15 · draft | 2400 |
| resolution=hd · duration=15 · reference_video | 16400 |
| resolution=hd · duration=15 · reference_video · draft | 4800 |
| resolution=hd · duration=16 | 7200 |
| resolution=hd · duration=16 · draft | 2600 |
| resolution=hd · duration=16 · reference_video | 17500 |
| resolution=hd · duration=16 · reference_video · draft | 5100 |
| resolution=hd · duration=17 | 7700 |
| resolution=hd · duration=17 · draft | 2700 |
| resolution=hd · duration=17 · reference_video | 18600 |
| resolution=hd · duration=17 · reference_video · draft | 5400 |
| resolution=hd · duration=18 | 8200 |
| resolution=hd · duration=18 · draft | 2900 |
| resolution=hd · duration=18 · reference_video | 19700 |
| resolution=hd · duration=18 · reference_video · draft | 5800 |
| resolution=hd · duration=19 | 8600 |
| resolution=hd · duration=19 · draft | 3000 |
| resolution=hd · duration=19 · reference_video | 20800 |
| resolution=hd · duration=19 · reference_video · draft | 6100 |
| resolution=hd · duration=20 | 9100 |
| resolution=hd · duration=20 · draft | 3200 |
| resolution=hd · duration=20 · reference_video | 21800 |
| resolution=hd · duration=20 · reference_video · draft | 6400 |
| resolution=fhd · duration=5 | 3900 |
| resolution=fhd · duration=5 · reference_video | 7100 |
| resolution=fhd · duration=6 | 4600 |
| resolution=fhd · duration=6 · reference_video | 8500 |
| resolution=fhd · duration=7 | 5400 |
| resolution=fhd · duration=7 · reference_video | 9900 |
| resolution=fhd · duration=8 | 6200 |
| resolution=fhd · duration=8 · reference_video | 11300 |
| resolution=fhd · duration=9 | 7000 |
| resolution=fhd · duration=9 · reference_video | 12700 |
| resolution=fhd · duration=10 | 7700 |
| resolution=fhd · duration=10 · reference_video | 14100 |
| resolution=fhd · duration=11 | 8500 |
| resolution=fhd · duration=11 · reference_video | 15500 |
| resolution=fhd · duration=12 | 9300 |
| resolution=fhd · duration=12 · reference_video | 16900 |
| resolution=fhd · duration=13 | 10000 |
| resolution=fhd · duration=13 · reference_video | 18400 |
| resolution=fhd · duration=14 | 10800 |
| resolution=fhd · duration=14 · reference_video | 19800 |
| resolution=fhd · duration=15 | 11600 |
| resolution=fhd · duration=15 · reference_video | 21200 |
| resolution=fhd · duration=16 | 12400 |
| resolution=fhd · duration=16 · reference_video | 22600 |
| resolution=fhd · duration=17 | 13100 |
| resolution=fhd · duration=17 · reference_video | 24000 |
| resolution=fhd · duration=18 | 13900 |
| resolution=fhd · duration=18 · reference_video | 25400 |
| resolution=fhd · duration=19 | 14700 |
| resolution=fhd · duration=19 · reference_video | 26800 |
| resolution=fhd · duration=20 | 15500 |
| resolution=fhd · duration=20 · reference_video | 28200 |
Agnes · 3
Agnes Video 2.5. Modes text / keyframe / reference are inferred from the material (1 image = first frame, 2 = first + last, 3+ = reference; any reference_* list or audio = reference) or set explicitly with agnes_mode.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 720P | 960P | 2K (default 720P) | Output resolution tier. Changes the price. |
| duration | integer | 4–12 s (default 5) — 4–12 (default 5) | Length in seconds. Changes the price. |
| aspect_ratio | string | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 (default 16:9; anything else is a 400) | Output aspect ratio. |
| images | string[] | — | Up to 10 images (keyframes or references). |
| metadata.agnes_mode | string | text | keyframe | reference | Force a mode; a mode/material mismatch is a 400 before any charge. |
| metadata.first_frame | string | — | Explicit first-frame slot (keyframe mode). |
| metadata.last_frame | string | — | Explicit last-frame slot — the only way to send a last frame alone. |
| metadata.reference_images | string[] | beyond 5 images each adds a small per-image charge | Reference images (<Picture N> in the prompt). |
| metadata.reference_videos | (string | {url, start_seconds, require_audio})[] | — | Reference videos (<Video N>). Each reference video is billed as one extra output-length of input seconds. |
| metadata.reference_audios | string[] | — | Reference audio (<Audio N>). |
| seed | integer | — | Random seed for reproducible output. |
- Billed per second of output (plus estimated reference-video seconds). negative_prompt / watermark are not supported.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "agnes-video-2.5",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "720P",
"duration": 5,
"aspect_ratio": "16:9",
"seed": 42,
"metadata": {
"agnes_mode": "keyframe",
"first_frame": "https://example.com/first-frame.jpg",
"last_frame": "https://example.com/last-frame.jpg",
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_videos": [
"https://example.com/reference.mp4"
],
"reference_audios": [
"https://example.com/reference.mp3"
]
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (54)
| tier | credits |
|---|---|
| resolution=720P · duration=4 | 330 |
| resolution=720P · duration=4 · reference_video | 670 |
| resolution=720P · duration=5 | 420 |
| resolution=720P · duration=5 · reference_video | 830 |
| resolution=720P · duration=6 | 500 |
| resolution=720P · duration=6 · reference_video | 1000 |
| resolution=720P · duration=7 | 580 |
| resolution=720P · duration=7 · reference_video | 1170 |
| resolution=720P · duration=8 | 670 |
| resolution=720P · duration=8 · reference_video | 1330 |
| resolution=720P · duration=9 | 750 |
| resolution=720P · duration=9 · reference_video | 1500 |
| resolution=720P · duration=10 | 830 |
| resolution=720P · duration=10 · reference_video | 1670 |
| resolution=720P · duration=11 | 920 |
| resolution=720P · duration=11 · reference_video | 1830 |
| resolution=720P · duration=12 | 1000 |
| resolution=720P · duration=12 · reference_video | 2000 |
| resolution=960P · duration=4 | 530 |
| resolution=960P · duration=4 · reference_video | 1070 |
| resolution=960P · duration=5 | 670 |
| resolution=960P · duration=5 · reference_video | 1330 |
| resolution=960P · duration=6 | 800 |
| resolution=960P · duration=6 · reference_video | 1600 |
| resolution=960P · duration=7 | 930 |
| resolution=960P · duration=7 · reference_video | 1860 |
| resolution=960P · duration=8 | 1070 |
| resolution=960P · duration=8 · reference_video | 2130 |
| resolution=960P · duration=9 | 1200 |
| resolution=960P · duration=9 · reference_video | 2400 |
| resolution=960P · duration=10 | 1330 |
| resolution=960P · duration=10 · reference_video | 2660 |
| resolution=960P · duration=11 | 1470 |
| resolution=960P · duration=11 · reference_video | 2930 |
| resolution=960P · duration=12 | 1600 |
| resolution=960P · duration=12 · reference_video | 3200 |
| resolution=2K · duration=4 | 730 |
| resolution=2K · duration=4 · reference_video | 1470 |
| resolution=2K · duration=5 | 920 |
| resolution=2K · duration=5 · reference_video | 1830 |
| resolution=2K · duration=6 | 1100 |
| resolution=2K · duration=6 · reference_video | 2200 |
| resolution=2K · duration=7 | 1280 |
| resolution=2K · duration=7 · reference_video | 2560 |
| resolution=2K · duration=8 | 1470 |
| resolution=2K · duration=8 · reference_video | 2930 |
| resolution=2K · duration=9 | 1650 |
| resolution=2K · duration=9 · reference_video | 3300 |
| resolution=2K · duration=10 | 1830 |
| resolution=2K · duration=10 · reference_video | 3660 |
| resolution=2K · duration=11 | 2020 |
| resolution=2K · duration=11 · reference_video | 4030 |
| resolution=2K · duration=12 | 2200 |
| resolution=2K · duration=12 · reference_video | 4400 |
Agnes Video 2.5 Flash — same contract as agnes-video-2.5, 720P only, at most 5 reference images, no reference videos.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 720P (default 720P) | Output resolution tier. Changes the price. |
| duration | integer | 4–12 s (default 5) — 4–12 (default 5) | Length in seconds. Changes the price. |
| aspect_ratio | string | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 (default 16:9) | Output aspect ratio. |
| images | string[] | — | Up to 5 images. |
| metadata.agnes_mode | string | text | keyframe | reference | Force a mode. |
| metadata.first_frame | string | — | Explicit first-frame slot. |
| metadata.last_frame | string | — | Explicit last-frame slot. |
| metadata.reference_images | string[] | ≤ 5 | Reference images. |
| metadata.reference_audios | string[] | — | Reference audio. |
| seed | integer | — | Random seed for reproducible output. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "agnes-video-2.5-flash",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "720P",
"duration": 5,
"aspect_ratio": "16:9",
"seed": 42,
"metadata": {
"agnes_mode": "keyframe",
"first_frame": "https://example.com/first-frame.jpg",
"last_frame": "https://example.com/last-frame.jpg",
"reference_images": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"reference_audios": [
"https://example.com/reference.mp3"
]
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (9)
| tier | credits |
|---|---|
| resolution=720P · duration=4 | 330 |
| resolution=720P · duration=5 | 420 |
| resolution=720P · duration=6 | 500 |
| resolution=720P · duration=7 | 580 |
| resolution=720P · duration=8 | 670 |
| resolution=720P · duration=9 | 750 |
| resolution=720P · duration=10 | 830 |
| resolution=720P · duration=11 | 920 |
| resolution=720P · duration=12 | 1000 |
Agnes Video 2.0. 1 image = first frame; 2+ images = keyframe transition (default) or multi-reference with agnes_mode = reference.
| Field | Type | Values | Description |
|---|---|---|---|
| resolution | string | 720p | 480p | 1080p (default 720p) | Output resolution tier. Changes the price. |
| duration | integer | 3 | 5 | 10 | 18 s (default 5) — 3 | 5 | 10 | 18 (other values round up to the next tier) | Length in seconds. Changes the price. |
| aspect_ratio | string | 16:9, 9:16, 1:1, 4:3, 3:4 (others snap; default 16:9) | Output aspect ratio. |
| images | string[] | — | Up to 10 images. |
| metadata.agnes_mode | string | keyframes (default) | reference | How 2+ images are used. |
| seed | integer | — | Random seed for reproducible output. |
| metadata.negative_prompt | string | — | What to avoid. |
- Billed per second at the rounded-up duration tier.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "agnes-video-v2.0",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"seed": 42,
"metadata": {
"agnes_mode": "keyframe",
"negative_prompt": "blurry, low quality, text"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (12)
| tier | credits |
|---|---|
| resolution=720p · duration=3 | 45 |
| resolution=720p · duration=5 | 75 |
| resolution=720p · duration=10 | 150 |
| resolution=720p · duration=18 | 270 |
| resolution=480p · duration=3 | 45 |
| resolution=480p · duration=5 | 75 |
| resolution=480p · duration=10 | 150 |
| resolution=480p · duration=18 | 270 |
| resolution=1080p · duration=3 | 45 |
| resolution=1080p · duration=5 | 75 |
| resolution=1080p · duration=10 | 150 |
| resolution=1080p · duration=18 | 270 |
xAI · 2
xAI Grok Imagine — text-to-video or image-to-video.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 480p | 720p | 1080p | Output resolution tier. Changes the price. |
| duration | integer | 1–15 s (default 5) | Length in seconds. Billed per second. |
| images | string[] | — | Optional: 1 image. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg"
],
"duration": 5,
"aspect_ratio": "16:9"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (15)
| tier | credits |
|---|---|
| duration=1 | 100 |
| duration=2 | 200 |
| duration=3 | 300 |
| duration=4 | 400 |
| duration=5 | 500 |
| duration=6 | 600 |
| duration=7 | 700 |
| duration=8 | 800 |
| duration=9 | 900 |
| duration=10 | 1000 |
| duration=11 | 1100 |
| duration=12 | 1200 |
| duration=13 | 1300 |
| duration=14 | 1400 |
| duration=15 | 1500 |
xAI Grok Imagine 1.5 — image-to-video only.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 480p | 720p | 1080p | Output resolution tier. Changes the price. |
| duration | integer | 1–15 s (default 5) | Length in seconds. Billed per second. |
| images | string[] | — | Required: 1 image. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video-1.5",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg"
],
"duration": 5,
"aspect_ratio": "16:9"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (15)
| tier | credits |
|---|---|
| duration=1 | 150 |
| duration=2 | 300 |
| duration=3 | 450 |
| duration=4 | 600 |
| duration=5 | 750 |
| duration=6 | 900 |
| duration=7 | 1050 |
| duration=8 | 1200 |
| duration=9 | 1350 |
| duration=10 | 1500 |
| duration=11 | 1650 |
| duration=12 | 1800 |
| duration=13 | 1950 |
| duration=14 | 2100 |
| duration=15 | 2250 |
OpenAI · 1
OpenAI Sora 2 text-to-video / image-to-video.
| Field | Type | Values | Description |
|---|---|---|---|
| duration | integer | 4 | 8 | 12 s (default 4) — 4 | 8 | 12 (others snap to the nearest) | Length in seconds. Changes the price. |
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| images | string[] | — | Optional: 1 image. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg"
],
"duration": 4,
"aspect_ratio": "16:9"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (3)
| tier | credits |
|---|---|
| duration=4 | 600 |
| duration=8 | 1200 |
| duration=12 | 1800 |
Google · 1
Google Veo 3.1 (fast). Fixed 8-second clips; an input image selects image-to-video.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| resolution | string | 720p | 1080p | Output resolution tier. Changes the price. |
| images | string[] | — | Up to 3 images (the first is the start frame). |
- duration is fixed at 8 s and cannot be changed.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "veo3.1",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg",
"https://example.com/input-2.jpg"
],
"aspect_ratio": "16:9"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (2)
| tier | credits |
|---|---|
| flat | 1500 |
| image_to_video | 1500 |
Runway · 1
Runway Gen-4 Turbo — image-to-video only.
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Required: 1 image. |
| duration | integer | 5 | 10 s (default 5) | Length in seconds. Changes the price. |
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "runway-gen4-turbo",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"images": [
"https://example.com/input-1.jpg"
],
"duration": 5,
"aspect_ratio": "16:9"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Price tiers (2)
| tier | credits |
|---|---|
| duration=5 | 200 |
| duration=10 | 400 |
Luma · 1
Luma Ray 2 Flash text-to-video.
| Field | Type | Values | Description |
|---|---|---|---|
| aspect_ratio | string | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 (unsupported values snap to the nearest) | Output aspect ratio. |
| metadata.loop | boolean | — | Seamless loop. |
- Flat price.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "luma-ray-2-flash",
"prompt": "A small red boat drifting on a calm lake at sunrise, gentle waves",
"aspect_ratio": "16:9",
"metadata": {
"loop": false
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Audio models
Text-to-speech models read prompt as the text to speak (per 1,000 characters); music models read it as a description (per task or per second). Per-second models reserve a maximum at submit and settle on the real length.
ElevenLabs · 3
ElevenLabs Eleven v3 text-to-speech with expressive audio tags like [whispering], [laughing].
| Field | Type | Values | Description |
|---|---|---|---|
| metadata.voice_id | string | default: George (JBFqnCBsd6RMkjVDRZzb) | ElevenLabs voice id. |
| metadata.stability | number | 0–1 | Lower = wider emotional range. |
| metadata.similarity_boost | number | 0–1 | How closely to match the original voice. |
| metadata.style | number | — | Style exaggeration (non-zero adds latency). |
| metadata.speed | number | 1.0 = normal | Speaking speed. |
| metadata.use_speaker_boost | boolean | — | Boost similarity to the original speaker. |
| metadata.language_code | string | ISO 639-1 | Omit for auto-detection. |
- prompt is the text to speak, max 5,000 characters. Billed per 1,000 characters at submit. Output MP3.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "eleven-v3",
"prompt": "Hello from GlobalGPT. This is a short test sentence.",
"metadata": {
"voice_id": "JBFqnCBsd6RMkjVDRZzb",
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0.2,
"speed": 1,
"use_speaker_boost": true,
"language_code": "en"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."ElevenLabs Multilingual v2 text-to-speech — 29 languages, steady long-form narration (audio tags are read literally).
| Field | Type | Values | Description |
|---|---|---|---|
| metadata.voice_id | string | default: George (JBFqnCBsd6RMkjVDRZzb) | ElevenLabs voice id. |
| metadata.stability | number | 0–1 | Lower = wider emotional range. |
| metadata.similarity_boost | number | 0–1 | How closely to match the original voice. |
| metadata.style | number | — | Style exaggeration (non-zero adds latency). |
| metadata.speed | number | 1.0 = normal | Speaking speed. |
| metadata.use_speaker_boost | boolean | — | Boost similarity to the original speaker. |
| metadata.language_code | string | ISO 639-1 | Omit for auto-detection. |
- prompt is the text to speak, max 10,000 characters. Billed per 1,000 characters at submit. Output MP3.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "eleven-multilingual-v2",
"prompt": "Hello from GlobalGPT. This is a short test sentence.",
"metadata": {
"voice_id": "JBFqnCBsd6RMkjVDRZzb",
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0.2,
"speed": 1,
"use_speaker_boost": true,
"language_code": "en"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."ElevenLabs Music v2 text-to-music. prompt describes genre, mood, instruments, vocals, structure.
| Field | Type | Values | Description |
|---|---|---|---|
| duration | integer | 10–300 s (default 30) — 10–300 (default 30) | Requested length in seconds; billed per second at submit. |
| metadata.force_instrumental | boolean | — | No vocals. |
- Output MP3 (44.1 kHz, 128 kbps).
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "eleven-music-v2",
"prompt": "A calm piano melody with soft strings, 90 BPM",
"duration": 30,
"metadata": {
"force_instrumental": false
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Alibaba · 1
Alibaba Qwen-Audio TTS — Chinese-first multilingual speech, 49 voices including Chinese dialects. Output WAV.
| Field | Type | Values | Description |
|---|---|---|---|
| metadata.voice | string | e.g. Cherry (default), Ethan, Jada, Dylan | Voice name; an unknown voice fails the task. |
| metadata.language_type | string | Auto (default), Chinese, English, … | Language hint; set it when using dialect voices. |
- prompt is the text to speak, max 4,096 characters. Billed per 1,000 characters.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-audio-3.0-tts-flash",
"prompt": "Hello from GlobalGPT. This is a short test sentence.",
"metadata": {
"voice": "Cherry",
"language_type": "Auto"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."ByteDance · 1
ByteDance Seed-Audio 1.0 — finished audio from one prompt: multi-character dialogue, emotion, music and effects (up to 120 s). Exactly one reference source: audio, images or metadata.speaker.
| Field | Type | Values | Description |
|---|---|---|---|
| audio | string | — | Reference audio URL (≤ 30 s, ≤ 10 MB; wav/mp3/pcm/ogg). |
| images | string[] | — | Optional: 1 reference image (jpeg/png/webp, ≤ 10 MB). |
| metadata.speaker | string | — | Doubao TTS voice id or cloned voice id. |
| metadata.speech_rate | number | — | Speaking rate. |
| metadata.loudness_rate | number | — | Loudness. |
| metadata.pitch_rate | number | — | Pitch. |
- prompt max 3,000 characters; address a reference audio as @音频1.
- Reserved for 120 s at submit, settled to the real output length.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "seed-audio-1.0",
"prompt": "Hello from GlobalGPT. This is a short test sentence.",
"images": [
"https://example.com/input-1.jpg"
],
"audio": "https://example.com/reference.mp3",
"metadata": {
"speaker": "zh_female_xiaohe",
"speech_rate": 1,
"loudness_rate": 1,
"pitch_rate": 1
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Mureka · 2
Mureka V9 — sings your lyrics as a full song. prompt = the lyrics (section tags like [Verse] / [Chorus] supported).
| Field | Type | Values | Description |
|---|---|---|---|
| metadata.style_prompt | string | ≤ 1,024 characters | Genre, mood, instruments, vocals. |
- prompt max 3,000 characters. Flat price per track.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "mureka-v9-song",
"prompt": "[Verse]\nCity lights are fading out\n[Chorus]\nWe keep on driving",
"metadata": {
"style_prompt": "warm acoustic folk, female vocal"
}
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Mureka V9 — instrumental background music from a description.
No optional parameters — send model and prompt.
- prompt max 1,024 characters. Flat price per track.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "mureka-v9-bgm",
"prompt": "A calm piano melody with soft strings, 90 BPM"
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Google · 2
Google Lyria 3 — 30-second music clip from a prompt (genre, mood, instruments, BPM). English prompts recommended.
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Optional: 1 reference image whose mood inspires the music. |
- Flat price. seed / negative_prompt are ignored.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "lyria-3-clip",
"prompt": "A calm piano melody with soft strings, 90 BPM",
"images": [
"https://example.com/input-1.jpg"
]
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Google Lyria 3 Pro — music up to 3 minutes, length steered by the prompt.
| Field | Type | Values | Description |
|---|---|---|---|
| images | string[] | — | Optional: 1 reference image whose mood inspires the music. |
- Flat price. seed / negative_prompt are ignored.
Example request (all parameters)
# 1) submit
curl https://api2.glbgpt.com/ai-api/open/v1/tasks \
-H "Authorization: Bearer sk-glb-..." \
-H "Content-Type: application/json" \
-d '{
"model": "lyria-3-pro",
"prompt": "A calm piano melody with soft strings, 90 BPM",
"images": [
"https://example.com/input-1.jpg"
]
}'
# 2) poll until status is "succeeded" or "failed" (every 5-10 s)
curl https://api2.glbgpt.com/ai-api/open/v1/tasks/TASK_ID -H "Authorization: Bearer sk-glb-..."Usage
GET /v1/usage?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD (UTC, up to 90 days, default last 30) returns per-day totals and a per-model breakdown of credits, requests and tokens for API traffic only. The same numbers are on the Usage page.
Errors & limits
Errors use the OpenAI envelope: {"error": {"message", "type", "code", "trace_id"}} with a real HTTP status. 429 responses include Retry-After.
| HTTP | code | Meaning |
|---|---|---|
| 400 | invalid_request | Body validation failed — the message says which field. |
| 400 | upstream_rejected / context_length_exceeded / content_policy_violation | The model provider refused the chat request. |
| 401 | missing_api_key / invalid_api_key | Send Authorization: Bearer sk-glb-… |
| 402 | insufficient_credit | Not enough paid credits. Top up or subscribe. |
| 402 | paid_only_channel | The API never spends free or trial credits. |
| 402 | plan_required | The model is not included in your plan. |
| 404 | not_found / model_not_found | Unknown model, retired model (message names the successor), or task not yours. |
| 409 | idempotency_in_progress | Same Idempotency-Key is still being processed. |
| 422 | idempotency_key_reused | Same Idempotency-Key with a different body. |
| 429 | rate_limit_exceeded / too_many_auth_failures | Per-account limits (60 req/min, 5 chat streams, 10 media tasks in flight) or repeated bad keys from one IP. Honour Retry-After. |
| 502 | upstream_error / model_unavailable | Provider failed or has no capacity for this model right now. Retry or switch model. |
Rate limits per account: 60 requests per minute, 5 concurrent chat streams, 10 media tasks in flight. Ask us if you need more.
