# Hermes Agent on Agentbox
Source: https://docs.gmicloud.ai/agentbox-guides/hermes-agent-on-agent-box
## Deploy Hermes Agent on GMI Agentbox (GitHub)
Deploy a locally running Hermes Agent to the cloud using GMI Agentbox, straight from GitHub, fully automated. Docker is handled entirely by GitHub Actions.
**Prerequisites:**
* Hermes Agent running locally ([see setup guide →](/agents/set-up-hermes-agent-with-gmi-cloud))
* GitHub account with `gh` CLI authenticated (`gh auth login`)
* GMI Cloud account → [console.gmicloud.ai](https://console.gmicloud.ai/)
* A Discord bot token ([create one →](https://discord.com/developers/applications))
## Overview
| Step | What happens |
| :--- | :------------------------------------------------------- |
| 1 | Fork the repo and push Agentbox deploy files to GitHub |
| 2 | GitHub Actions builds and publishes your container image |
| 3 | Make the image public on GitHub Packages |
| 4 | Register and configure the agent on GMI Agentbox |
| 5 | Hermes Agent responds live in Discord |
## Step 1: Fork the Repo and Push Agentbox Files
Navigate to your local Hermes Agent directory:
```text theme={null}
cd ~/.hermes/hermes-agent
```
Fork the upstream NousResearch repo (runs on GitHub servers, nothing heavy to upload):
```text theme={null}
gh repo fork NousResearch/hermes-agent --clone=false --remote-name myfork
```
Connect your local code to your fork and push. Run these commands in order:
```text theme={null}
git remote add myfork https://github.com//hermes-agent.git
git add deploy/agentbox/ .github/workflows/agentbox-publish.yml
git commit -m "Add GMI Agentbox deploy kit + publish workflow"
git pull --rebase myfork main
git push myfork main
```
> **What each command does:**
>
> * `git remote add myfork` saves your fork's address as a bookmark called `myfork`. Nothing uploads yet.
> * `git add` stages only the Agentbox deploy files and publish workflow.
> * `git commit` saves a snapshot of those changes locally.
> * `git pull --rebase` pulls any updates from your fork first so your push goes through cleanly.
> * `git push myfork main` sends your code to GitHub. Your code is now live on your fork.
> ⚠️ **REQUIRED:** `.github/workflows/agentbox-publish.yml`
>
> This workflow file must exist in your repo before pushing. If it does not exist yet, create it at `.github/workflows/agentbox-publish.yml` with the following content:
>
> ```yaml expandable theme={null}
> name: Publish Agentbox image
>
> # Builds the GMI Agentbox image (deploy/agentbox/Dockerfile.agentbox) and
> # publishes it to this repo's GitHub Container Registry (ghcr.io).
> #
> # After the first successful run, make the package public once in:
> # GitHub -> your profile -> Packages -> hermes-agent -> Package settings
> # -> Change visibility -> Public
> # Then point GMI Agentbox at:
> # ghcr.io//hermes-agent:latest (Enable Credentials: OFF)
>
> on:
> # Run it by hand from the Actions tab (best for a demo).
> workflow_dispatch:
> # ...and automatically when you push a version tag like v1, v1.2.3
> push:
> tags:
> - 'v*'
>
> permissions:
> contents: read
> packages: write # required to push to ghcr.io
>
> jobs:
> publish:
> runs-on: ubuntu-latest
> timeout-minutes: 60
> steps:
> - name: Checkout code
> uses: actions/checkout@v4
>
> # ghcr image names must be lowercase; usernames can contain uppercase.
> - name: Compute lowercase image name
> id: img
> run: echo "ref=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/hermes-agentbox" >> "$GITHUB_OUTPUT"
>
> - name: Set up Docker Buildx
> uses: docker/setup-buildx-action@v3
>
> - name: Log in to ghcr.io
> uses: docker/login-action@v3
> with:
> registry: ghcr.io
> username: ${{ github.actor }}
> password: ${{ secrets.GITHUB_TOKEN }}
>
> # 1/2 — Build the base Hermes image (the slow step) and push it as the
> # ':base' tag so the Agentbox build below can pull it as its FROM image.
> - name: Build & push base image
> uses: docker/build-push-action@v6
> with:
> context: .
> file: Dockerfile
> platforms: linux/amd64 # Agentbox compute is x86_64 (IOWA IDC-1)
> push: true
> tags: ${{ steps.img.outputs.ref }}:base
> cache-from: type=gha,scope=agentbox-base
> cache-to: type=gha,mode=max,scope=agentbox-base
>
> # 2/2 — Build the thin Agentbox layer on top and push it as ':latest'.
> # This is the image you register in the Agentbox wizard.
> - name: Build & push Agentbox image
> uses: docker/build-push-action@v6
> with:
> context: .
> file: deploy/agentbox/Dockerfile.agentbox
> platforms: linux/amd64
> push: true
> build-args: |
> BASE_IMAGE=${{ steps.img.outputs.ref }}:base
> tags: ${{ steps.img.outputs.ref }}:latest
>
> - name: Summary
> run: |
> {
> echo "## Agentbox image published "
> echo ""
> echo "**Register URL:** \`${{ steps.img.outputs.ref }}:latest\`"
> echo ""
> echo "Next: make the package **public** (Packages -> hermes-agent ->"
> echo "Package settings -> Change visibility), then point GMI Agentbox"
> echo "at the URL above with Enable Credentials **OFF**."
> } >> "$GITHUB_STEP_SUMMARY"
> ```
>
> The `GITHUB_TOKEN` secret is auto-injected by GitHub. You do not need to create it.
> ⚠️ REQUIRED: `deploy/agentbox/Dockerfile.agentbox`
>
> Create this file in your repo before pushing. Your workflow calls it directly to build the Agentbox layer on top of your base image.
>
> Run this in your terminal to create it:
>
> ```javascript theme={null}
> mkdir -p ~/.hermes/hermes-agent/deploy/agentbox
> nano ~/.hermes/hermes-agent/deploy/agentbox/Dockerfile.agentbox
> ```
>
> Paste this content and save:
>
> ```text theme={null}
> ARG BASE_IMAGE
> FROM ${BASE_IMAGE}
> EXPOSE 8080
> CMD ["python", "-m", "hermes.gateway"]
> ```
>
> The BASE\_IMAGE value is injected automatically by the workflow. You do not need to hardcode anything.
## Step 2: GitHub Actions Builds and Publishes the Image
1. Open your fork on GitHub and click the **Actions** tab
2. If prompted, click **"I understand my workflows, enable them"** (forks have Actions paused by default)
3. Select **"Publish Agentbox image"** in the left sidebar
4. Click **Run workflow** then **Run**
GitHub builds the base image, layers on the Agentbox config, and pushes both to GitHub Packages with two tags: `:base` and `:latest`.
Your image will be available at:
```text theme={null}
ghcr.io//hermes-agentbox:latesttext
```
> **Note:** The first build takes 5-10 minutes. Subsequent builds are faster due to Docker layer caching.
## Step 3: Make the Image Public on GitHub Packages
New packages are private by default. Agentbox pulls your image directly from this URL, so visibility must be set to public before registering.
1. Go to your **GitHub profile**
2. Click **Packages** and select **hermes-agentbox**
3. Go to **Package settings,** then **Change visibility,** then **Public**
> ⚠️ If you prefer to keep the image private, skip this step and instead set **Enable Credentials: ON** in the Agentbox registration form, then provide a GitHub Personal Access Token (PAT) with `read:packages` scope.
## Step 4: Register and Configure on GMI Agentbox
Go to [console.gmicloud.ai](https://console.gmicloud.ai/), then Agentbox, then **Register**.
Fill in the form:
| Field | Value |
| :----------------- | :----------------------------------------------- |
| Name | `Hermes Agent` (or any name) |
| Image source | Registry URL |
| Image URL | `ghcr.io//hermes-agentbox:latest` |
| Enable Credentials | OFF (image is public) |
| Compute | Container, 2 vCPU / 4 GB |
| Region | IOWA IDC-1 |
| MaaS integration | ON, select your model (becomes `$GMI_MODELS`) |
| Port mapping | 443 to 8080 (default) |
## Environment Variables
GMI Agentbox auto-injects the following. Leave these out of the form:
* `GMI_MAAS_API_KEY`
* `GMI_MAAS_BASE_URL`
Add the following custom variables:
| Variable | Type | Value |
| :------------------------ | :----- | :------------------------------------------------ |
| `API_SERVER_KEY` | SECRET | Discord API Server key |
| `DISCORD_BOT_TOKEN` | SECRET | Your Discord bot token (reset before use) |
| `GATEWAY_ALLOW_ALL_USERS` | Plain | `true` |
| `HERMES_MODEL` | Plain | `deepseek-ai/DeepSeek-V4-Pro`(Or any other model) |
| `DISCORD_HOME_CHANNEL` | Plain | Your Discord channel ID (optional) |
Click **Register**.
## Save Your Agentbox API Key
After registering, Agentbox generates a unique API key for your agent. **Save this immediately.** It is shown only once and is separate from your GMI Cloud inference API key.
## Step 5: Run Your Instance and Test in Discord
**Via dashboard:**\
Click your registered agent, then **Create Instance**, confirm settings, then **Launch**.
**Via CLI:**
```yaml theme={null}
# 1. Provision a container
curl -X POST 'https://api.gmi-serving.com/v1/agents/deployments/dfs/tasks' \
-H 'Authorization: Bearer ' \
-H 'Content-Type: application/json' \
-d '{
"idc_name": "us-central-iowa1",
"instance_type": "gmi.container.intel.x4660.large",
"template_id": "3490ab00-9a71-4a00-9ef6-035004dd088f"
}'
# 2. List the tasks running under this deployment
curl 'https://api.gmi-serving.com/v1/agents/deployments/dfs/tasks' \
-H 'Authorization: Bearer '
# Each item's "id" is a ; "total" is the current task count.
# 3. Poll until status = "running", then route the endpoint to your user
curl 'https://api.gmi-serving.com/v1/agents/tasks/' \
-H 'Authorization: Bearer '
# 4. Terminate when the user session ends
curl -X DELETE 'https://api.gmi-serving.com/v1/agents/tasks/' \
-H 'Authorization: Bearer '
```
Instance creation takes approximately 1–2 minutes. Once running, open your Discord server and send a message in the configured channel. Hermes Agent will respond in real time, powered by DeepSeek-V4-Pro via GMI Cloud.
# Agents I use
Source: https://docs.gmicloud.ai/agentbox-marketplace/agents-i-use
Quickly return to the agents you've recently used on GMI Agentbox.
The **Agents I Use** page is your shortcut back to the agents you work with most. It tracks agents you have accessed within a rolling 30-day window, separate from the ones you publish.
## What it shows
* Agents you have accessed within a rolling **30-day window**.
* A **Recency / Frequency** sort toggle:
* **Recency** — orders by most recently accessed.
* **Frequency** — orders by how often you access each agent.
## Each row
Every agent in the list shows:
* **Agent name.**
* **Time since last access** — for example "2h ago" or "3d ago".
* **Session count** — how many sessions you've started with the agent.
* A **Re-access** button to jump straight back into the agent.
* A **Browse the Agentbox** link to return to the full catalog.
# Handle long-running requests
Source: https://docs.gmicloud.ai/agentbox-marketplace/handle-long-running-requests
AI agent tasks, including multi-step reasoning, document analysis, and model chains, can take anywhere from 30 seconds to several minutes. HTTP gateways on every cloud platform, including GMI, close connections that stay open too long and return a 504 Gateway Timeout to the caller.
The fix is to decouple accepting the request from returning the result.
A 504 from a slow task and a connection failure are two different problems. If your endpoint is unreachable, first check that ingress is enabled and networking is configured for your deployment. The async pattern below only helps when the request reaches your agent, but the work takes too long to finish inside the gateway window.
## The async job pattern
Instead of holding the connection open, your agent should:
1. Accept the request and immediately return a `job_id`.
2. Run the task in the background.
3. Let the caller poll a status endpoint until the result is ready.
```text theme={null}
POST /run -> 202 { "job_id": "abc-123" }
GET /jobs/abc-123 -> 200 { "status": "running" }
GET /jobs/abc-123 -> 200 { "status": "completed", "result": { ... } }
```
## Implementation
### Python (FastAPI)
```python theme={null}
import uuid
from fastapi import FastAPI, BackgroundTasks
from fastapi.responses import JSONResponse
app = FastAPI()
# In memory store. Replace with Redis or a database in production.
jobs: dict = {}
async def run_task(job_id: str, payload: dict):
jobs[job_id] = {"status": "running"}
try:
result = await your_agent.run(payload)
jobs[job_id] = {"status": "completed", "result": result}
except Exception as e:
jobs[job_id] = {"status": "failed", "error": str(e)}
@app.post("/run", status_code=202)
async def start_job(payload: dict, background_tasks: BackgroundTasks):
job_id = str(uuid.uuid4())
jobs[job_id] = {"status": "pending"}
background_tasks.add_task(run_task, job_id, payload)
return {"job_id": job_id}
@app.get("/jobs/{job_id}")
async def get_job(job_id: str):
job = jobs.get(job_id)
if not job:
return JSONResponse(status_code=404, content={"error": "Job not found"})
return job
```
### Node.js (Express)
```javascript theme={null}
import express from "express";
import { randomUUID } from "crypto";
const app = express();
app.use(express.json());
// In memory store. Replace with Redis or a database in production.
const jobs = new Map();
app.post("/run", (req, res) => {
const jobId = randomUUID();
jobs.set(jobId, { status: "pending" });
runTask(jobId, req.body); // fire and forget
res.status(202).json({ job_id: jobId });
});
app.get("/jobs/:jobId", (req, res) => {
const job = jobs.get(req.params.jobId);
if (!job) return res.status(404).json({ error: "Job not found" });
res.json(job);
});
async function runTask(jobId, payload) {
jobs.set(jobId, { status: "running" });
try {
const result = await yourAgent.run(payload);
jobs.set(jobId, { status: "completed", result });
} catch (err) {
jobs.set(jobId, { status: "failed", error: err.message });
}
}
```
## Calling the endpoint
```python theme={null}
import time
import requests
BASE_URL = "https://your-agent-endpoint.gmicloud.ai"
# Submit
response = requests.post(f"{BASE_URL}/run", json={"input": "..."})
job_id = response.json()["job_id"]
# Poll
while True:
result = requests.get(f"{BASE_URL}/jobs/{job_id}").json()
if result["status"] == "completed":
print(result["result"])
break
elif result["status"] == "failed":
print(result["error"])
break
time.sleep(3)
```
## Persisting job state
GMI containers are stateless. If a container restarts, any in-memory job state is lost. For production, write the job state to an external store such as Redis or a database, and inject the connection credentials as Secrets in Step 4 of [Register an agent](/agentbox-marketplace/register-an-agent).
## Checklist
Before deploying an agent that handles long-running tasks:
* [ ] Accept requests with a 202 response and a `job_id`
* [ ] Run the actual work in a background task, not the request handler
* [ ] Expose a `GET /jobs/:id` endpoint for polling
* [ ] Persist job state to Redis or a database, not in-memory
* [ ] Set appropriate poll intervals (3-5 seconds) to avoid hammering the endpoint
* [ ] Return clear error states (`failed`, `timeout`) so callers can handle them
# List an agent
Source: https://docs.gmicloud.ai/agentbox-marketplace/list-an-agent
Submit a deployed agent for listing on GMI Agentbox.
Once your agent is deployed and tested, submit the listing for review on GMI Agentbox. Navigate to **My Deployments & Listings** in the left-side menu, select your registered agent, and click **List an agent**.
The entry point matters: if you start from a registered template, the listing form pre-fills your agent's configuration. If you start from the blank dashboard form, you provide the details manually.
For **Host on GMI** agents, the template is auto-detected and linked. For **Self-hosted + MaaS** agents, you provide the public endpoint directly.
## Wizard steps
1. Listing Info
2. Review & Publish
## Step 1: Listing Info
### GMI CE Deployment template
* The GMI CE Deployment template you registered in Register an agent is detected and linked automatically.
* Example ID: tpl\_9f3a-771e-contract.
* Consumers access the agent through GMI's infrastructure. Your internal endpoint is never exposed.
* When the template is detected, a **Detected** badge appears confirming the link.
When a user deploys your agent from the listing, Agentbox provisions a copy of the registered template.
**Copied to the user's deployment:**
* Container image and version
* Environment variables and secrets
* Port mappings and network config
* MaaS model selections
**Not copied:**
* Your API keys or credentials (GMI injects these at runtime)
* Usage history or session data
* Your internal project name
### Agent Access URL
This field appears only when you start from the blank dashboard form. If a GMI CE Deployment template is already linked, this step is skipped because the endpoint is managed by GMI.
For self-hosted agents, enter the public-facing URL where your agent is accessible.
### Also using GMI MaaS?
* Toggle on if your agent also calls GMI Models-as-a-Service.
* Enables the Verified badge. Without it, the listing shows Powered by GMI Infrastructure.
* Badge preview updates in real time.
### Listing Name
* Public-facing name on the Marketplace.
* Your internal project name stays private.
### Publisher Name
* Your company or personal name. Shown on the agent detail page.
### Contact Email
* Where users send questions. Not shown publicly unless you opt in.
### Agent Type
Pick one:
* Code & Dev Tools. Code review, testing, data pipelines, benchmarks, developer tooling.
* Data & Analytics. Data processing, analysis, reporting, and business intelligence.
* Customer Support. Support automation, ticket triage, and customer-facing assistants.
* Content & Marketing. Content creation, copywriting, design, and marketing automation.
* Research & Knowledge. Research, summarization, and knowledge-base question answering.
### Short Description
* One sentence describing what the agent does.
* Up to 120 characters.
* Shown on the Marketplace card.
### Full Description
* Describe what your agent does, who it's for, what inputs it accepts, and what outputs it produces.
* Shown on the detail page.
### Tags
* Comma-separated keywords used by search and filters.
* Example: Security, Solidity, Audit.
## Step 2: Review & Publish
* Review every listing field on a single screen.
* Click any section to jump back and edit.
* Click Publish. The listing goes live on GMI Agentbox within minutes.
* No review queue. Listings are auto-approved and published immediately. You stay responsible for keeping the description accurate.
* To remove a listing, use **Unpublish** from the My Agents dashboard. The agent is removed from the Marketplace but existing instances keep running.
# Overview
Source: https://docs.gmicloud.ai/agentbox-marketplace/overview
Agentbox is GMI Cloud's platform for deploying and distributing AI agents.
Agentbox is GMI Cloud's marketplace for AI agents. You deploy an agent on GMI infrastructure or self-host it and connect to GMI Models-as-a-Service for inference across 200+ models. Each agent runs in an isolated environment and includes built-in billing, monitoring, and usage analytics.
You can keep an agent private for your own use or list it in the marketplace, where other GMI users can discover and deploy it. Registration is done through a 5-step wizard in which you choose your infrastructure path: host on GMI or self-host and connect to GMI MaaS.
Instances are billed per second of active runtime. When no one is using your agent, the container stops and billing stops with it.
## Using an agent
1. Search the catalog or filter by category.
2. Open an agent and read its description and infrastructure badges.
3. Click **Access agent**, or **Request Early Access** if it's in beta.
4. Sign in with your GMI account. For agents hosted on GMI, usage is billed to your GMI account. If the agent redirects you to its own product website, billing is handled by that agent provider.
For filters, sort options, and access modes, see [Search & Use](/agentbox-marketplace/search-and-use).
## Register an agent
1. Go to **Register an agent** in the menu. Pick **GMI CE Deployment** if you want GMI to host your agent on our infrastructure, or **GMI MaaS** if you prefer to self-host and use GMI for model inference.
2. Open the Deploy Wizard from your GMI dashboard. If you choose an infrastructure region, it builds your container, runs it, and automatically assigns a public URL.
See more details on [how to Register an agent](/agentbox-marketplace/register-an-agent).
## List an agent
1. Fill in your agent details.
2. Submit for review.
For more information, see [List an agent](/agentbox-marketplace/list-an-agent).
## What it costs you
| Who pays | What for |
| -------- | ---------------------------------------------------------------------------------------------------------------- |
| Users | Model calls bill per token through MaaS. Compute bills per second of active agent runtime on GMI Infrastructure. |
| Builders | Builders pay only for the compute their agent uses. There is no listing fee and no minimum spend. |
Registration is free. Billing starts only when a user provisions an instance of your agent, and stops when the instance stops.
## Who runs the agent: trust and badges
The badge on an agent card signals who runs the infrastructure and how the listing was reviewed.
| **Verified** | **Powered by GMI MaaS** | **Powered by GMI Infrastructure** |
| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Reviewed by GMI and
running end-to-end on
GMI infrastructure. | Self-hosted by the publisher,
calling GMI Models-as-a-Service
for inference. | Hosted on dedicated
GMI Infrastructure.
The publisher supplies the
model and API. |
Full review checklist and Verified guarantees are on [Verified agents](/agentbox-marketplace/verified-agents).
## What is an agent?
An agent is a focused AI worker that does one job well. One agent reviews code. Another summarizes PDFs, drafts marketing copy, or answers questions about your support docs. Each agent has a dedicated page on the Marketplace describing what it does, who built it, and how to start using it.
Behind every agent sits a model and the application code that turns it into something useful. Both run on GMI Cloud, so you skip the work of provisioning servers, GPUs, and scaling rules.
## Where to start
* Just browsing? Open the catalog and pick any **Verified** agent.
* Looking for something specific? Use search with a keyword like "code review" or "OCR".
* Building? Open the Deploy Wizard from your GMI dashboard and start with the managed path.
# Register an agent
Source: https://docs.gmicloud.ai/agentbox-marketplace/register-an-agent
Package and register your agent on GMI Cloud through the five-step register wizard.
## Register, launch, publish: three separate things
| Step | What happens | Where |
| -------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| Register | You package your agent as a container image and register it with GMI Agentbox. GMI stores the template and makes it deployable. | Register an agent wizard |
| Launch | A user (or you) provisions a running instance from the registered template. Billing starts while the instance is active. | Agent detail page or API |
| Publish | You submit the listing for the Marketplace. Other GMI users can discover and deploy your agent. | List an agent |
## Who pays when a user shows up
When a user deploys your agent through Agentbox, the user pays for their own instance runtime and any model inference tokens they consume. You pay nothing for their usage. You only pay when you provision instances yourself for testing or development.
## The order that saves you trouble
Register first, then test the live endpoint, then publish. Skipping registration and going straight to listing creates a listing with no deployable backend, which confuses users and hurts your credibility.
## Choosing your path first
| | GMI CE Deployment | Self-hosted + MaaS |
| ------------------- | ----------------------------------------------- | -------------------------------- |
| Who hosts the agent | GMI Infrastructure | You |
| Badge | Eligible for **Verified** | **Powered by GMI MaaS** |
| Setup complexity | Full wizard (5 steps) | Short flow (3 steps) |
| Compute billing | Per-second, GMI-managed | Your infrastructure costs |
| Best for | Production agents that need GMI-managed scaling | Agents already running elsewhere |
***
## Before you begin
You need:
* A working agent application that listens on an HTTP port
* A Docker image containing your agent
* The image pushed to a container registry that GMI can access
## Why a Docker image
GMI Agentbox runs your agent as a container. A Docker image packages your code, runtime, and dependencies into a single deployable unit. This means your agent runs the same way on GMI as it does on your machine.
## What your image must do
Your Docker image must:
* Expose an HTTP server on a known port (default: 8080)
* Respond to health checks on that port
* Accept requests and return responses within the gateway timeout (see [Handle long-running requests](/agentbox-marketplace/handle-long-running-requests) for longer tasks)
* Read MaaS connection details from environment variables (see below)
## Getting your image into a registry
Build and push your image to a registry:
```dockerfile theme={null}
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["python", "main.py"]
```
```bash theme={null}
# Build the image
docker build -t your-org/your-agent:latest .
# Tag for your registry
docker tag your-org/your-agent:latest registry.hub.docker.com/your-org/your-agent:latest
# Push to Docker Hub
docker push registry.hub.docker.com/your-org/your-agent:latest
```
You can use Docker Hub, GitHub Container Registry (GHCR), or any public or private registry.
## Configure the GMI MaaS endpoint in your image
Before you wrap your agent into an image, read the GMI MaaS connection details from these environment variables. At runtime, GMI injects the API key for the models you select in Step 2, so you never ship a key inside your image.
| Variable | Description | Example |
| ------------------- | ------------------------------------------------------------------ | ----------------------------- |
| `GMI_MAAS_BASE_URL` | OpenAI-compatible base URL for GMI MaaS. | `https://api.gmi-serving.com` |
| `GMI_MAAS_API_KEY` | MaaS API key. **Injected by GMI at runtime** — do not hardcode it. | *(injected)* |
| `GMI_MODELS` | Model ID your agent calls. | `deepseek-ai/DeepSeek-V4-Pro` |
Read these variables in your code rather than hardcoding values, for example:
```python theme={null}
import os
from openai import OpenAI
client = OpenAI(
base_url=f"{os.environ['GMI_MAAS_BASE_URL']}/v1",
api_key=os.environ["GMI_MAAS_API_KEY"],
)
response = client.chat.completions.create(
model=os.environ["GMI_MODELS"],
messages=[{"role": "user", "content": "Hello"}],
)
```
Leave `GMI_MAAS_API_KEY` unset in your image — GMI injects it at runtime when MaaS integration is enabled (Step 2). Hardcoding a key is unnecessary and will be overridden.
***
## Wizard steps
1. Basics & Template
2. Infrastructure
3. Networking
4. Env Variables
5. Review & Register
## Step 1: Basics & Template
Identity for the listing. This is what users see on the catalog card and detail page.
If you're going with the self-hosted + MaaS path, the Basics & Template step looks slightly different:
* Add the internal project name
## Step 2: Infrastructure
Configure compute resources. GMI Infrastructure provisions containers on demand.
### Docker image source
* Registry URL. Pull from Docker Hub, GHCR, or any public/private registry.
* Upload Image. Push a local image directly to GMI's registry. Useful for one-off builds.
### Registry URL
* Format: registry.hub.docker.com/your-org/your-agent:latest
### Enable Credentials
Turn on **Enable Credentials** if your Docker registry requires authentication to pull images. The toggle reveals two fields inline, entered here in Step 2 (not as Env Variables):
* **Username** — your registry username.
* **Access Token** — your registry password or personal access token.
### Compute tier
* **Container** — 2 vCPU · 4 GB RAM · Ephemeral Storage 10 GiB · Data Storage 30 GiB. Additional tiers coming soon.
### Region
* Currently available: **IOWA IDC-1** (US-IA, US). Additional regions are being added.
* Pick the region closest to your users to minimize latency.
* Multi-region rollouts require a separate deploy per region.
### MaaS integration
* Toggle on to give your agent access to GMI's 200+ frontier models.
* GMI injects a MaaS API key into your container at startup, no key management on your end.
* Select every model your agent may call. Selection is editable later.
* Required for the Verified badge.
## Step 3: Networking
Expose the ports your agent listens on. GMI CE routes external traffic to these container ports.
### Public IP address
* A public IP address is allocated automatically by the platform. No manual setup required.
### Port Mapping
Change these if your app listens on a different port. Each mapping has:
* **Protocol** — for example HTTPS/2.
* **Listening Port** — the external port GMI exposes.
* **Internal Port** — the port your container listens on.
* **Port name** — a label for the mapping.
The default mapping is HTTPS/2, external port 443 → internal port 8080, named `web`. Use **Add port mapping** to expose additional ports, or the remove control to delete one.
## Step 4: Env Variables
Runtime configuration injected into your container at startup.
### Auto-Injected by GMI
GMI injects these MaaS connection variables automatically. They are locked and cannot be overridden:
* `GMI_MAAS_API_KEY` — the MaaS API key, injected at runtime.
* `GMI_MAAS_BASE_URL` — the OpenAI-compatible MaaS base URL.
### Custom Variables
Add your own variables. Each row has a **Type**:
| Type | Use for |
| -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `TEXT` | Non-sensitive config: feature flags, base URLs, log levels. Visible in the dashboard and editable anytime. |
| `SECRET` | API keys, third-party credentials, and any sensitive value. Write-once: values can be replaced but never read back from the UI. |
Secrets are encrypted at rest with AES-256. Plaintext values are never written to logs or audit history.
### Per-region overrides
* Override values per region for staged rollouts or region-specific endpoints.
* Only available when the agent is deployed to more than one region.
## Step 5: Review & Register
Confirm settings, register, and verify before submitting the listing.
### Review screen
* Every setting from the previous steps is summarized on one page.
* Click any section to jump back and edit.
### Register
* Once registered, GMI Agentbox pulls the image and builds the container on demand. Users can then call the endpoint to start or stop the instance — billing runs only for the duration the container is active.
* The endpoint provided is used for container CRUD.
Test the endpoint
* Hit the URL with a sample request. Confirm latency, output, and error handling.
* Iterate by re-registering. URLs stay stable across updates.
***
## Self-hosted + MaaS (Path B)
You host the agent yourself and call GMI Models-as-a-Service for inference. Lists with the Powered by GMI MaaS badge.
On this path you don't go through the full register wizard above. Instead, **Connect your agent** is a short 3-step flow:
1. **Basic** — project name
2. **MaaS Key** — generate or connect a GMI MaaS API key
3. **Endpoint** — provide your public-facing URL
### Step 4 · Review & Submit
After entering your endpoint, review the connection details and submit. GMI validates the endpoint is reachable and the MaaS key is active. Once validated, your self-hosted agent is connected and appears in your My Agents dashboard.
***
## Managing your deployment
Once your agent is registered and deployed, the **My Agents** dashboard (under **My Deployments & Listings**) shows every agent you've published. Select an agent to open its panel, which has three tabs — Monitor, Integration, and Analytics — and three actions at the top right:
* **Unpublish** — remove the listing from the Marketplace.
* **Edit listing** — update the public listing fields.
* **View public listing** — open the live Marketplace page for the agent.
### Monitor tab
* **Aggregate status** — live counts for **Active**, **Error**, and **Creating** instances, plus the **Last provisioned** timestamp.
* **Instance Set** — a searchable table of every instance with **All / Running / Error / Creating** filter tabs and columns for **Instance ID**, **Status**, **Created**, and **Action** (View Detail, View Log, Monitoring).
### Integration tab
The Integration tab gives you the **Template ID** (a UUID, with a copy button) and the full instance lifecycle as a 4-step `curl` workflow: provision → list tasks → poll → terminate. Replace `` with a token from your GMI account settings, and `` with the Template ID shown at the top of the tab.
```bash theme={null}
# 1. Provision a container
curl -X POST 'https://api.gmi-serving.com/v1/agents/deployments//tasks' \
-H 'Authorization: Bearer ' \
-H 'Content-Type: application/json' \
-d '{
"idc_name": "us-central-iowa1",
"instance_type": "gmi.container.intel.x4660.large",
"template_id": ""
}'
# 2. List tasks running under this deployment
curl 'https://api.gmi-serving.com/v1/agents/deployments//tasks' \
-H 'Authorization: Bearer '
# 3. Poll until status = "running", then route to your user
curl 'https://api.gmi-serving.com/v1/agents/tasks/' \
-H 'Authorization: Bearer '
# 4. Terminate when the session ends
curl -X DELETE 'https://api.gmi-serving.com/v1/agents/tasks/' \
-H 'Authorization: Bearer '
```
### Analytics tab
* **Usage By Model** — a usage chart with a **1D / 7D / 30D / 90D** time-range switcher.
* **API Key Management** — a table of keys showing key name, masked value, scope, and owner ID.
* **View billing** — a link through to your billing details.
### Launching an instance
From the Monitor tab, click **Launch** to provision a new instance of your agent. The instance spins up in the region you selected during registration and gets its own public URL. Billing starts when the instance reaches **Running** status and stops when you terminate it.
### Authentication-key matrix
| Key type | Who manages it | Where it lives | What it authenticates |
| -------------------- | -------------- | --------------------------------------- | ---------------------------------------------------- |
| GMI MaaS API key | GMI | Injected into your container at runtime | Model inference calls from your agent |
| Your GMI API token | You | GMI account settings | Agentbox management API (provision, list, terminate) |
| Third-party API keys | You | Step 4 Env Variables (SECRET type) | External services your agent calls |
### Publishing state
| State | Meaning |
| ----------- | ------------------------------------------------------------------------------------------- |
| Draft | Registered but not listed on the Marketplace. Only you can deploy it. |
| Published | Live on the Marketplace. Any GMI user can discover and deploy it. |
| Unpublished | Removed from the Marketplace. Existing instances keep running but no new users can find it. |
Next
* When the endpoint is ready, continue to [List an agent](/agentbox-marketplace/list-an-agent) to submit it for review.
# Search and use an agent
Source: https://docs.gmicloud.ai/agentbox-marketplace/search-and-use
Find and start using an agent from the GMI Agentbox catalog.
The catalog is built around fast search, clear filters, and a single click to start using. You can search by keyword, filter by category, and narrow results by infrastructure badge.
## Two outcomes
Finding an agent leads to one of two outcomes:
* **Use it hosted on GMI.** Click **Access agent** and GMI provisions a dedicated instance for you. This is the fastest path and requires no local setup.
* **Bring GMI models into OpenClaw.** Wire GMI in as a model provider and route your own OpenClaw agents and workflows to GMI-hosted models.
## Installing into OpenClaw
OpenClaw connects to GMI through the official provider plugin. Install it from the terminal:
```bash theme={null}
openclaw plugins install clawhub:openclaw-gmicloud-provider
```
After installing, configure your GMI API key and pick GMI from the provider dropdown. See [OpenClaw](/agents/openclaw) for the full setup.
## Search
* **Categories:** Code & Dev Tools | Data & Analytics | Customer Support | Content & Marketing | Research & Knowledge.
* **Infrastructure filters:** Verified, Powered by GMI Infrastructure, Powered by GMI MaaS.
## Open an agent
The agent Detail page shows the description, publisher, infrastructure badges, and a preview of the interface. It also surfaces:
* **Keyword tags.** Searchable labels that describe the agent, for example `open source` or `hermes`.
* **How a session works.** A step-by-step breakdown of what happens when you access the agent, from sign-in through the request/response loop.
* **For publishers.** A packaging section explaining how the agent is built and deployed, useful if you want to list something similar.
* **Demo media.** Embedded demo videos and screenshots so you can see the agent in action before using it.
Before you deploy, evaluate the listing in this order:
| Order | What to check | Why it matters |
| ----- | -------------------- | ---------------------------------------------------------------------------------- |
| 1 | Sample output | Confirms the agent actually works and produces the output you expect. |
| 2 | Documentation | Tells you the inputs, outputs, and any setup requirements. |
| 3 | Publisher identity | A verified publisher is more accountable for quality and uptime. |
| 4 | Infrastructure badge | Verified agents run entirely on GMI and carry the strongest reliability guarantee. |
Listings without sample output or documentation have not been fully reviewed. Read the publisher details and test carefully before integrating into production.
## Deploying your own copy
When you access a GMI-hosted agent, the platform provisions a dedicated instance just for you. A pre-filled banner shows the deployment configuration before anything launches.
**Copied to your deployment:**
* Container image and version
* Environment variables and secrets
* Port mappings and network config
* MaaS model selections
**Not copied:**
* Your API keys or credentials (these are injected at runtime by GMI)
* Usage history or session data from other users
* Publisher's internal configuration
To deploy your own copy:
1. Click **Access agent** on the listing.
2. Review the pre-filled deployment banner.
3. Adjust any settings if needed, then confirm.
4. Wait for the instance to reach **Running** status.
5. Use the assigned public URL to interact with your instance.
## Use it
* Click **Access agent**, or **Request Early Access** if it's in beta.
* Sign in with your GMI account.
* For agents hosted on GMI, usage bills against your GMI account, line-item on every call. If the agent redirects you to its own product website, billing is handled by that agent provider.
## Tips
* The **Verified** badge is the strongest reliability signal.
* Community agents can be excellent, but they aren't GMI-managed. Read the publisher details.
* Check the infrastructure note before integrating into production.
# Verified agents
Source: https://docs.gmicloud.ai/agentbox-marketplace/verified-agents
What the Verified badge means on GMI Agentbox and how agents earn it.
A **Verified** badge means the agent has been reviewed by GMI and runs end-to-end on GMI infrastructure.
## The guarantee
Verified agents use GMI Models-as-a-Service for inference and GMI Infrastructure for the agent itself. Availability, security patching, and regional failover are handled by GMI.
## Review criteria
All four criteria must be met for an agent to receive the Verified badge:
1. **Identity.** The publisher is a verified GMI account.
2. **Infrastructure.** The agent runs entirely on GMI MaaS and GMI Infrastructure.
3. **Behavior.** The agent matches its listed description and category.
4. **Safety.** No abusive prompts, data leaks, or policy violations.
## Automatic grant and revocation
The badge is granted automatically when all four criteria are met. If any condition stops being met, the badge is revoked automatically. You do not need to reapply after fixing an issue; the badge is re-granted when the criteria are satisfied again.
# Dify
Source: https://docs.gmicloud.ai/agents/build-deep-research-workflow-in-dify
Build a Deep Research agent in Dify with GMI Cloud as the model provider.
Wire GMI Cloud's models into Dify's **DeepResearch** template to spin up a multi-step research agent in about five minutes. You'll swap Dify's default LLM and reasoning nodes for GMI-served models (GLM-4.6 + Qwen3 235B Thinking), then run a real query end-to-end.
The GMI Cloud plugin exposes the full model catalog through an OpenAI-compatible API, chat, streaming, tool calling, and custom endpoints all work the way Dify expects. The plugin page lists the current preset models: [marketplace.dify.ai/plugins/langgenius/gmicloud](https://marketplace.dify.ai/plugins/langgenius/gmicloud).
## Prerequisites
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* A Dify account at [dify.ai](https://dify.ai)
* About 5 minutes
***
## Step 1. Get your GMI Cloud API key
1. Sign in to the [API Key Management](https://console.gmicloud.ai/user-setting/organization/api-key-management) page.
2. Click **Create API Key**, name it, and set **Scope** to **Inference**.
3. Copy the key now, it won't be shown again.
## Step 2. Install the GMI plugin in Dify
Open the [Dify plugin marketplace](https://cloud.dify.ai/plugins?category=discover), search **GMI Cloud**, and install.
## Step 3. Configure the plugin
1. In Dify, open **Settings → Model Provider**.
2. Find **GMI Cloud** and click **Setup**.
3. Paste your API key. Custom endpoint is optional; default is `https://api.gmi-serving.com/v1`.
4. **Save**. Dify hits `/v1/models` to validate.
A green light means you're connected.
## Step 4. Build the workflow
From Dify's home, click **Create from Template** and pick **DeepResearch**.
On the install screen, enable **Tavily** and **JSON Process**. Skip the other two model-provider plugins. GMI Cloud handles inference.
The graph looks busy, but only two nodes matter: **LLM** and **Reasoning Model**. Both will point at GMI.
* **LLM node** → swap `gpt-4o` for **GLM-4.6** ([model card](https://huggingface.co/zai-org/GLM-4.6)).
* **Reasoning Model node** → swap for **Qwen3 235B A22B Thinking 2507 FP8** ([model card](https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507-FP8)).
Hit **Publish**.
## Step 5. Run it
Open the workflow app. Set **Depth** to control how many search rounds the agent runs - `2` is a good default.
Sample prompt:
```
Which industries are showing the strongest early signals of disruption from generative AI?
```
Deep runs take a minute or two while the agent iterates. The output is a sourced report.
***
## Next steps
* Try a different agent framework: [Hermes Agent](/agents/set-up-hermes-agent-with-gmi-cloud) or [OpenClaw](/agents/openclaw).
* Swap models from the [Text catalog](/model-quickstarts/text/overview).
* Stuck? Email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# OpenClaw
Source: https://docs.gmicloud.ai/agents/openclaw
Use GMI Cloud models directly inside OpenClaw via the official provider plugin.
The **GMI Cloud plugin for OpenClaw** adds GMI as a selectable model provider inside the OpenClaw interface. Once installed, you pick GMI from the provider dropdown and route your agents, automations, and tool-connected workflows to GMI-hosted models, no separate model gateway, no extra plumbing.
## Prerequisites
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* OpenClaw installed locally
* A terminal
## Install the plugin
From the [ClawHub plugin page](https://clawhub.ai/plugins/openclaw-gmicloud-provider), or via the terminal:
```bash theme={null}
openclaw plugins install clawhub:openclaw-gmicloud-provider
```
## Get your GMI API key
1. Sign in to [console.gmicloud.ai](https://console.gmicloud.ai).
2. Open **API Keys**.
3. Click **Create API Key**.
4. Copy the key now, it won't be shown again.
## Configure the plugin
**Option 1, environment variable**
```bash theme={null}
export GMI_CLOUD_API_KEY=your_api_key
```
**Option 2, onboard command**
```bash theme={null}
openclaw onboard --gmicloud-api-key your_api_key
```
After configuration, GMI appears as an available provider in the OpenClaw UI. Pick a model and you're done.
## Supported models
The plugin exposes the GMI catalog. A representative slice:
* **Anthropic**: `anthropic/claude-opus-4.6`, `anthropic/claude-sonnet-4.6`
* **OpenAI**: `openai/gpt-5.4`, `openai/gpt-5.4-pro`, `openai/gpt-5.4-mini`, `openai/gpt-5.4-nano`
* **Google**: `google/gemini-3.1-pro-preview`, `google/gemini-3.1-flash-lite-preview`
* **Qwen**: `Qwen/Qwen3-Next-80B-A3B-Instruct`, `Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8`, `Qwen/Qwen3-235B-A22B-Thinking-2507-FP8`, `Qwen/Qwen3-32B-FP8`
* **DeepSeek**: `deepseek-ai/DeepSeek-V3.1`, `deepseek-ai/DeepSeek-V3.2`
* **Moonshot**: `moonshotai/Kimi-K2.5`, `moonshotai/Kimi-K2-Thinking`, `moonshotai/Kimi-K2-Instruct-0905`
* **Z.AI / GLM**: `zai-org/GLM-5-FP8`, `zai-org/GLM-4.6`
* **Meta**: `meta-llama/Llama-4-Scout-17B-16E-Instruct`
For the live list, see the [Text models catalog](/model-quickstarts/text/overview).
## Tips
* Once GMI is wired in, selecting a model takes one click. The same models drive agents, scheduled jobs, and any tool-connected workflow you build in OpenClaw, including integrations like Telegram.
* The `--gmicloud-api-key` flag overrides the env var if both are set.
## Next steps
* Try another agent framework: [Hermes Agent](/agents/set-up-hermes-agent-with-gmi-cloud) or [Dify](/agents/build-deep-research-workflow-in-dify).
* Join the [GMI Discord](https://discord.gg/mbYhCJSbF6) or email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# Hermes Agent
Source: https://docs.gmicloud.ai/agents/set-up-hermes-agent-with-gmi-cloud
Install Hermes Agent, connect it to GMI Cloud, and chat with it from Telegram.
Install Hermes Agent, point it at GMI Cloud as your model provider, and wire up Telegram so you can chat with your agent from your phone.
## Prerequisites
* A Mac or Linux machine (or a VPS)
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* A Telegram account at [telegram.org](https://telegram.org)
* About 10 minutes
## Step 1: Install Hermes Agent
Open your terminal and run the one-line installer.
```text theme={null}
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
```
Or the one-line from the Hermes Website: [https://hermes-agent.nousresearch.com/](https://hermes-agent.nousresearch.com/)
The installer will automatically detect and install any dependencies it needs, including Python, Node, and Git. The whole thing takes about a minute.
Once it finishes, reload your shell:
```text theme={null}
source ~/.bashrc # or source ~/.zshrc on Mac
```
Verify the install worked:
```text theme={null}
hermes --version
```
## Step 2: Run the Setup Wizard
Start the configuration wizard:
```text theme={null}
hermes setup
```
Press Enter to begin. The wizard walks you through the following steps.
## Step 3: Select GMI Cloud as Your Provider
When the wizard asks you to select a provider, scroll down and choose **GMI Cloud**.
The wizard will then ask for your GMI Cloud API key.
## Step 4: Get Your GMI Cloud API Key
Go to: [https://console.gmicloud.ai/user-setting/api-keys](https://console.gmicloud.ai/user-setting/api-keys)
If you are not already logged in, sign in with your credentials. Once you are in, click **Create API Key**, give it a name like `hermes-01`, and copy the key.
Head back to your terminal and paste the key when prompted. Note that the terminal will not show any characters when you paste. That is normal. Just paste and press Enter.
## Step 5: Set the Base URL
After the API key, the wizard will ask for a base URL. **You do not need to change anything here.** Just press Enter to use the default GMI Cloud endpoint:
```text theme={null}
https://api.gmi-serving.com/v1
```
## Step 6: Select Your Model
GMI Cloud gives you access to a wide range of models. During setup, you can pick the one you want to use. If you are not sure, a strong general-purpose choice is one of the Claude or DeepSeek models available in your GMI account.
You can also set or change your model at any time after setup:
```text theme={null}
hermes model
```
Or permanently in `~/.hermes/config.yaml`:
```text theme={null}
model:
provider: "gmi"
default: "your-model-id-here"
```
To see all available models on your GMI account, check the model catalog at: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Once you are done, just type in your terminal to start and test Hermes:
```text theme={null}
hermes
```
## Step 7: Choose Telegram as Your Messaging Platform
When the wizard asks which messaging platform to use, select **Telegram**.
## Step 8: Create a Telegram Bot
Go to Telegram and open a chat with **@BotFather**: [https://t.me/BotFather](https://t.me/BotFather)
Click Start, then type:
```text theme={null}
/newbot
```
Follow the prompts to give your bot a name and a username. BotFather will reply with a bot token that looks like this:
```text theme={null}
7123456789:AAH1bG...
```
Copy that token. You will need it in the next step.
## Step 9: Configure Your Telegram Settings
Open your Hermes environment file:
```text theme={null}
nano ~/.hermes/.env
```
Find the Telegram section and fill in the following two values. Remove the `#` from the front of each line if they are commented out:
```text theme={null}
TELEGRAM_BOT_TOKEN=your_token_from_botfather
TELEGRAM_ALLOWED_USERS=your_numeric_telegram_id
```
**To get your numeric Telegram user ID**, open Telegram and message **@userinfobot**: [https://t.me/userinfobot](https://t.me/userinfobot)
Click Start, and it will instantly reply with your numeric ID. Copy that number and paste it in as your `TELEGRAM_ALLOWED_USERS` value.
Save the file with `Ctrl+O`, then exit with `Ctrl+X`.
## Step 10: Start the Gateway
Start the Hermes gateway so your agent can receive messages from Telegram:
```text theme={null}
hermes gateway
```
You should see confirmation that Telegram is connected and the gateway is running.
## Step 11: Send Your First Message
Open Telegram and search for your bot by the username you created in BotFather. Click **Start**.
Send it a message. You should get a response within a few seconds.
## Step 12: Try a Real Task
Here is an example to see the self-improving skill system in action. Send your bot this message:
```text theme={null}
Every morning at 9am, find the top 3 AI news stories, summarize them, and send me a briefing here on Telegram.
```
Hermes will set up a scheduled cron job, run it, and confirm. The next morning, your briefing arrives automatically. And because Hermes saved what it learned as a reusable skill, similar scheduling tasks will be faster next time.
## Troubleshooting
**Gateway shows "No messaging platforms enabled"**
This means your `TELEGRAM_BOT_TOKEN` is missing or commented out in `~/.hermes/.env`. Open the file and make sure the line does not start with a `#` and that the token is pasted correctly.
**API key rejected (401 error)**
Run `hermes setup` again to re-enter your GMI Cloud API key. Double-check that you have added credits to your GMI account at [https://console.gmicloud.ai](https://console.gmicloud.ai) before generating the key.
**Hermes crashes on launch with an OSError**
This usually means Hermes is being launched from a non-standard terminal, such as VS Code's integrated terminal. Try running it from a plain Terminal window instead.
**Wrong API key or want to change it**
Edit `~/.hermes/.env` directly and update the `GMI_API_KEY` value, or run `hermes setup` to go through the wizard again.
## Next steps
* Wire GMI into an agent framework with [Dify](/agents/build-deep-research-workflow-in-dify) or [OpenClaw](/agents/openclaw).
* Browse the model catalog: [Text models](/model-quickstarts/text/overview).
* Stuck? Email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# Create baremetal servers
Source: https://docs.gmicloud.ai/api-reference/baremetals/create-baremetal-servers
/api-spec/service_api.yaml post /v1/baremetals
# Delete baremetal server
Source: https://docs.gmicloud.ai/api-reference/baremetals/delete-baremetal-server
/api-spec/service_api.yaml delete /v1/baremetals/{id}
# Execute baremetal server action
Source: https://docs.gmicloud.ai/api-reference/baremetals/execute-baremetal-server-action
/api-spec/service_api.yaml post /v1/baremetals/{id}/actions
# Get baremetal products
Source: https://docs.gmicloud.ai/api-reference/baremetals/get-baremetal-products
/api-spec/service_api.yaml get /v1/baremetals/products
# Get baremetal server by ID
Source: https://docs.gmicloud.ai/api-reference/baremetals/get-baremetal-server-by-id
/api-spec/service_api.yaml get /v1/baremetals/{id}
# List all baremetal servers
Source: https://docs.gmicloud.ai/api-reference/baremetals/list-all-baremetal-servers
/api-spec/service_api.yaml get /v1/baremetals
# Update baremetal server
Source: https://docs.gmicloud.ai/api-reference/baremetals/update-baremetal-server
/api-spec/service_api.yaml put /v1/baremetals/{id}
# Create containers
Source: https://docs.gmicloud.ai/api-reference/containers/create-containers
/api-spec/service_api.yaml post /v1/containers
create Container under default namespace
# Delete container
Source: https://docs.gmicloud.ai/api-reference/containers/delete-container
/api-spec/service_api.yaml delete /v1/containers/{id}
# Download container logs
Source: https://docs.gmicloud.ai/api-reference/containers/download-container-logs
/api-spec/service_api.yaml get /v1/containers/{id}/logs
# Generate container shell URL path
Source: https://docs.gmicloud.ai/api-reference/containers/generate-container-shell-url-path
/api-spec/service_api.yaml post /v1/containers/{id}/shell
# Get container info by ID
Source: https://docs.gmicloud.ai/api-reference/containers/get-container-info-by-id
/api-spec/service_api.yaml get /v1/containers/{id}
# Get container products
Source: https://docs.gmicloud.ai/api-reference/containers/get-container-products
/api-spec/service_api.yaml get /v1/containers/products
# List container information
Source: https://docs.gmicloud.ai/api-reference/containers/list-container-information
/api-spec/service_api.yaml get /v1/containers
# Restart container
Source: https://docs.gmicloud.ai/api-reference/containers/restart-container
/api-spec/service_api.yaml post /v1/containers/{id}/restart
# Update container
Source: https://docs.gmicloud.ai/api-reference/containers/update-container
/api-spec/service_api.yaml put /v1/containers/{id}
# Allocate elastic IP for organization
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/allocate-elastic-ip-for-organization
/api-spec/service_api.yaml post /v1/elastic-ips
# Associate elastic IP with instance
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/associate-elastic-ip-with-instance
/api-spec/service_api.yaml post /v1/elastic-ips/{id}/associate
# Disassociate elastic IP from instance
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/disassociate-elastic-ip-from-instance
/api-spec/service_api.yaml post /v1/elastic-ips/{id}/disassociate
# Get elastic IP
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/get-elastic-ip
/api-spec/service_api.yaml get /v1/elastic-ips
# Get elastic IP
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/get-elastic-ip-1
/api-spec/service_api.yaml get /v1/elastic-ips/{id}
# Get elastic IP products
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/get-elastic-ip-products
/api-spec/service_api.yaml get /v1/elastic-ips/products
# Release elastic IP
Source: https://docs.gmicloud.ai/api-reference/elastic-ips/release-elastic-ip
/api-spec/service_api.yaml delete /v1/elastic-ips/{id}
# Associate firewall
Source: https://docs.gmicloud.ai/api-reference/firewalls/associate-firewall
/api-spec/service_api.yaml post /v1/firewalls/{id}/associate
# Create firewall
Source: https://docs.gmicloud.ai/api-reference/firewalls/create-firewall
/api-spec/service_api.yaml post /v1/firewalls
# Delete firewall
Source: https://docs.gmicloud.ai/api-reference/firewalls/delete-firewall
/api-spec/service_api.yaml delete /v1/firewalls/{id}
# Disassociate firewall
Source: https://docs.gmicloud.ai/api-reference/firewalls/disassociate-firewall
/api-spec/service_api.yaml post /v1/firewalls/{id}/disassociate
# Get firewall information by ID
Source: https://docs.gmicloud.ai/api-reference/firewalls/get-firewall-information-by-id
/api-spec/service_api.yaml get /v1/firewalls/{id}
# List firewalls
Source: https://docs.gmicloud.ai/api-reference/firewalls/list-firewalls
/api-spec/service_api.yaml get /v1/firewalls
# Update firewall
Source: https://docs.gmicloud.ai/api-reference/firewalls/update-firewall
/api-spec/service_api.yaml put /v1/firewalls/{id}
# List all IDCs
Source: https://docs.gmicloud.ai/api-reference/idcs/list-all-idcs
/api-spec/ids-public-api.yaml get /idcs
Retrieves a list of IDC information that are not marked as hidden.
# Get image by ID
Source: https://docs.gmicloud.ai/api-reference/images/get-image-by-id
/api-spec/service_api.yaml get /v1/images/{id}
# List images
Source: https://docs.gmicloud.ai/api-reference/images/list-images
/api-spec/service_api.yaml get /v1/images
# API Introduction
Source: https://docs.gmicloud.ai/api-reference/introduction
Getting started with GMI Cloud APIs
## Welcome to GMI Cloud API
GMI Cloud provides comprehensive APIs for managing your cloud infrastructure, including container services, AI inference, and cluster management. Our APIs are designed to be RESTful, secure, and easy to integrate into your applications.
## Before You Start
**Authentication Required**: All GMI Cloud APIs require authentication. You must be logged in and have valid API credentials to use these endpoints.
### Step 1: Create Your Account and Login
1. **Sign up** for a GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
2. **Verify your email** and complete the registration process
3. **Login** to your account to access the console
### Step 2: Obtain API Credentials
1. Navigate to **Organization Settings** in your console
2. Go to the **API Keys** section
3. **Create a new API key** for programmatic access
4. **Save your API key** securely (it will only be shown once)
### Step 3: Set Up Authentication
All API endpoints require Bearer token authentication:
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/endpoint" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
```
## Quick Start Example: Creating a Container
Here's a step-by-step example of creating a container using our APIs:
### 1. First, list available container templates
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/templates" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
```
### 2. Create a new container workload
**Required Parameters**:
* `idc`: Default value is "us-denver-1". Use the IDC API to get other available data center locations
* `product`: Contact sales team to confirm the correct product ID for your needs
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/containers" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-container",
"templateId": "b89f653f-f080-40a9-8134-02dd6d213894",
"count": 1,
"product": "container.h200.x1",
"idc": "us-denver-1",
"envs": [
{
"name": "SSH_KEY",
"value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB... your-ssh-public-key"
}
]
}'
```
**SSH Access**: Currently, SSH keys must be provided as environment variables during container creation. There's no separate SSH key management API yet.
### 3. Monitor the container status
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/containers/my-container-id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
```
### 4. Access your running container
Once your container is running with the SSH key configured, you can connect directly:
```bash theme={null}
ssh gmi@public-ip -p 22 -i your-private-key
```
The container will use the SSH public key you provided during creation for authentication.
## Complete Workflow
Access [console.gmicloud.ai](https://console.gmicloud.ai) and sign in with your credentials.
Navigate to Organization Settings → API Keys and generate a new API key.
Select from IAM, IaaS, or IDC service APIs based on your needs.
Use your API key in the Authorization header to interact with our services.
Track your resources through both API calls and the web console.
## Need Help?
* 🔗 **Console Access**: [console.gmicloud.ai](https://console.gmicloud.ai)
* 📧 **Support**: [Contact our support team](https://www.gmicloud.ai/contact#sales)
* 📚 **Documentation**: Browse the specific API sections below for detailed endpoints
# Accept invitation by key
Source: https://docs.gmicloud.ai/api-reference/invitations/accept-invitation-by-key
/api-spec/ias-public-api.yaml post /invitations/{invitationKey}
Allows user to accept an invitation to join the organization using invitationKey. The user will automatically leave their current organization.
# Create an auth token.
Source: https://docs.gmicloud.ai/api-reference/me/create-an-auth-token
/api-spec/ias-public-api.yaml post /me/auth-tokens
Create a short-term authentication token using user credentials for exchanging access and refresh tokens.
# Create an auth token via OAuth.
Source: https://docs.gmicloud.ai/api-reference/me/create-an-auth-token-via-oauth
/api-spec/ias-public-api.yaml post /me/oauth/auth-tokens
Create a short-term authentication token using a third-party OAuth provider (e.g., Google).
# Create an SSH key
Source: https://docs.gmicloud.ai/api-reference/me/create-an-ssh-key
/api-spec/ias-public-api.yaml post /me/ssh-keys
Create an SSH public key for the current authenticated user.
# Create session
Source: https://docs.gmicloud.ai/api-reference/me/create-session
/api-spec/ias-public-api.yaml post /me/sessions
Create a login session for user.
# Delete an SSH key.
Source: https://docs.gmicloud.ai/api-reference/me/delete-an-ssh-key
/api-spec/ias-public-api.yaml delete /me/ssh-keys/{sshKeyId}
Delete an SSH key owned by the currently authenticated user.
- Users can only delete their own keys.
# List SSH keys
Source: https://docs.gmicloud.ai/api-reference/me/list-ssh-keys
/api-spec/ias-public-api.yaml get /me/ssh-keys
Retrieve a list of SSH keys for the current authenticated user.
# Refresh session
Source: https://docs.gmicloud.ai/api-reference/me/refresh-session
/api-spec/ias-public-api.yaml patch /me/sessions
Refresh an existing session, which will return a new access token and refresh token.
# Resend 2FA verification code.
Source: https://docs.gmicloud.ai/api-reference/me/resend-2fa-verification-code
/api-spec/ias-public-api.yaml post /me/2fa-verification-code
Resend 2FA verificaion code.
# Retrieve user's profile
Source: https://docs.gmicloud.ai/api-reference/me/retrieve-users-profile
/api-spec/ias-public-api.yaml get /me/profile
Retrieves the profile information of the current authenticated user.
# Update an SSH key.
Source: https://docs.gmicloud.ai/api-reference/me/update-an-ssh-key
/api-spec/ias-public-api.yaml patch /me/ssh-keys/{sshKeyId}
Update the name of an SSH key owned by the currently authenticated user.
- Users can only update their own keys.
# Update user password
Source: https://docs.gmicloud.ai/api-reference/me/update-user-password
/api-spec/ias-public-api.yaml patch /me/password
Allows a user to update their password.
- **Authenticated user**: Must use `Bearer ` in Authorization header and provide `currentPassword` in the request body.
- **Password reset user**: Must provide `passwordResetToken` and provide `otpCode` in the request body.
# Update user's profile
Source: https://docs.gmicloud.ai/api-reference/me/update-users-profile
/api-spec/ias-public-api.yaml patch /me/profile
Update the current authenticated user's profile. Either **firstName** or **lastName** should be provided in the request body.
# Verify API Key and retrieve the key details
Source: https://docs.gmicloud.ai/api-reference/me/verify-api-key-and-retrieve-the-key-details
/api-spec/ias-public-api.yaml get /me/api-keys/current
Validate the API key from the Authorization Bearer token and return the key details.
# Exchange authorization code for access token
Source: https://docs.gmicloud.ai/api-reference/oauth/exchange-authorization-code-for-access-token
/api-spec/ias-public-api.yaml post /oauth/token
Exchanges an authorization code for an access token.
# Create an API key
Source: https://docs.gmicloud.ai/api-reference/organizations/create-an-api-key
/api-spec/ias-public-api.yaml post /organizations/{orgId}/api-keys
Allows a user to generate an API key for their organization.
# Delete an API key
Source: https://docs.gmicloud.ai/api-reference/organizations/delete-an-api-key
/api-spec/ias-public-api.yaml delete /organizations/{orgId}/api-keys/{apiKeyId}
Deletes an API key by its ID.
- **Organization owner/admin**: Can delete any API key within their organization.
- **Organization user**: Can only delete the API keys they created.
# Delete an organization
Source: https://docs.gmicloud.ai/api-reference/organizations/delete-an-organization
/api-spec/ias-public-api.yaml delete /organizations/{orgId}
Deletes an organization.
- Allowed only if the organization has no users.
- Only the `organization owner` can access the API.
- The owner account will also be deleted.
# (DEPRECATED) Accept invitation
Source: https://docs.gmicloud.ai/api-reference/organizations/deprecated-accept-invitation
/api-spec/ias-public-api.yaml post /organizations/{orgId}/invitations/{invitationId}
This API is deprecated, use POST /invitations/{invitationKey} instead. Allows user to accept an invitation to join the organization. The user will automatically leave their current organization.
# List API keys
Source: https://docs.gmicloud.ai/api-reference/organizations/list-api-keys
/api-spec/ias-public-api.yaml get /organizations/{orgId}/api-keys
Retrieve a list of API keys accessible by the authenticated user.
- **Organization owner/admin**: Can view all API keys within the organization.
- **Organization user**: Can only see their own API keys.
# List users by organization
Source: https://docs.gmicloud.ai/api-reference/organizations/list-users-by-organization
/api-spec/ias-public-api.yaml get /organizations/{orgId}/users
Retrieve a list of users belonging to the specified organization. Only users within the organization can access the API.
# Register an organization
Source: https://docs.gmicloud.ai/api-reference/organizations/register-an-organization
/api-spec/ias-public-api.yaml post /organizations
Allow users to register an organization. The user will automatically leave their current organization.
# Retrieve organization information
Source: https://docs.gmicloud.ai/api-reference/organizations/retrieve-organization-information
/api-spec/ias-public-api.yaml get /organizations/{orgId}
Retrieve information about a specific organization by its ID.
Only users within the organization can access the API.
# Send invitations via email
Source: https://docs.gmicloud.ai/api-reference/organizations/send-invitations-via-email
/api-spec/ias-public-api.yaml post /organizations/{orgId}/invitations/email
Allows an organization admin to invite users via email.
# Transfer organization ownership
Source: https://docs.gmicloud.ai/api-reference/organizations/transfer-organization-ownership
/api-spec/ias-public-api.yaml patch /organizations/{orgId}/owner
Transfers the ownership of an organization to another user within the organization.
- Only the current **organization owner** can perform this action.
- The new owner **must be an existing member** of the organization.
- The current owner **will be demoted to a regular user** after the transfer.
# Update organization information
Source: https://docs.gmicloud.ai/api-reference/organizations/update-organization-information
/api-spec/ias-public-api.yaml patch /organizations/{orgId}
Update information about a specific organization by its ID.
- Only the `organization owner` can access the API.
# Cancel a sandbox execution
Source: https://docs.gmicloud.ai/api-reference/sandbox-exec/cancel-a-sandbox-execution
/api-spec/sandbox_api.yaml post /executions/{execution_id}/cancel
Requests cancellation of a non-terminal execution. Cancellation is idempotent:
repeated calls return the terminal canceled result after the provider confirms it.
# Execute a command in a sandbox
Source: https://docs.gmicloud.ai/api-reference/sandbox-exec/execute-a-command-in-a-sandbox
/api-spec/sandbox_api.yaml post /executions
Starts an asynchronous shell execution in the sandbox. The request body keeps the
`action=exec` and `parameters` shape used by the runtime contract. The effective URL is
the sandbox data-plane host; the sandbox ID is obtained from the leftmost Host label and
is not repeated in the path. The endpoint does not include the control-plane `/api/v2` prefix.
When `wait=true`, the server waits for a terminal result for at most
`wait_timeout_seconds` seconds; a timeout returns `202` without canceling the execution.
# Get a sandbox execution
Source: https://docs.gmicloud.ai/api-reference/sandbox-exec/get-a-sandbox-execution
/api-spec/sandbox_api.yaml get /executions/{execution_id}
# Download a sandbox file
Source: https://docs.gmicloud.ai/api-reference/sandbox-files/download-a-sandbox-file
/api-spec/sandbox_api.yaml get /files
Reads a single file inside the sandbox by absolute path; the response body is the raw byte stream.
## Three ways this differs from the rest of the platform
1. **Not served under `/api/v2`** — see this operation's `servers`.
2. **The auth header is `X-Access-Token`** (the `sandbox_access_token` value), not `Authorization: Bearer`. Control-plane tokens are invalid here, and vice versa.
3. **Successful responses are not wrapped in the `{request_id, data}` envelope** (the body is a byte stream), and neither are errors — see the error notes below.
## Optional capabilities: `Content-Length` and resumable downloads
Both **vary by data center; clients must not assume they exist**:
| Capability | When supported | When not supported |
| --- | --- | --- |
| `Accept-Ranges` | `bytes` | `none` |
| `Content-Length` | Declares the byte count; enables progress display | Absent; `Transfer-Encoding: chunked` |
| `Range` requests | Returns `206` + `Content-Range` per RFC 7233 | **Returns `200` with the full file** |
**`Accept-Ranges` is the only runtime capability probe**: issue one request without `Range`, or read the header on the first response, before deciding whether to resume.
Data centers without resume support **never fake a `206`**: a request with `Range` gets `200` and the entire file. This is deliberate — a client that mistakes the response for a range would write bytes at the wrong offset and produce a silently corrupted file, which is far worse than an ignored `Range`. The correct resumable-download logic is therefore "resume only when `Accept-Ranges: bytes`, otherwise re-download the whole file" — **never** key off any signal other than `206`.
The server returns no checksum headers (neither backend provides them); clients that need integrity verification should compute and compare checksums themselves.
# Upload a sandbox file
Source: https://docs.gmicloud.ai/api-reference/sandbox-files/upload-a-sandbox-file
/api-spec/sandbox_api.yaml post /files
Writes one file to the given absolute path inside the sandbox via `multipart/form-data`, overwriting any existing file.
Authentication, host, and the error envelope are identical to the download endpoint (see `GET /files`).
## Request constraints
- **The target path is given only in the `path` query parameter.** Including an additional `path` form field in the body is rejected (`400`): when the two sources disagree there is no way to know which to trust, and failing is better than guessing.
- The request body must be `multipart/form-data`; any other `Content-Type` returns `415`.
- One file per request.
- **No chunked/resumable upload.** There is no `Range` semantics for uploads; an interrupted upload must be resent in full. A data center may enforce a per-file size limit and return `413` when exceeded; the limit is not exposed through the API.
# GMI Sandbox SDK Reference
Source: https://docs.gmicloud.ai/api-reference/sandbox-sdk/sdk-reference
Python SDK reference for GMI Sandbox control-plane and data-plane APIs.
# GMI Sandbox SDK Reference
Python SDK for the GMI Sandbox control plane and sandbox data plane.
## Installation
```bash theme={null}
python -m pip install gmi-sandbox-sdk
```
The SDK requires Python 3.9 or newer.
## Configuration
The client reads these environment variables when explicit arguments are not provided:
| Variable | Default | Description |
| ---------------------- | ------------------------ | ---------------------------------------------------- |
| `GMI_SANDBOX_API_KEY` | none | Bearer API key |
| `GMI_SANDBOX_IDC_NAME` | organization default IDC | Optional. Set only when targeting a non-default IDC. |
```bash theme={null}
export GMI_SANDBOX_API_KEY="your-api-key"
```
## Client
```python theme={null}
from sandbox_sdk import SandboxClient
client = SandboxClient()
```
Explicit configuration:
```python theme={null}
client = SandboxClient(
api_key="your-api-key",
timeout=30.0,
)
```
Constructor arguments:
| Argument | Type | Description |
| ----------- | ---------------- | ----------------------------------------------------------------------------------------------- |
| `api_key` | `str \| None` | API key. Falls back to `GMI_SANDBOX_API_KEY`. |
| `base_url` | `str \| None` | Optional control-plane URL for non-default API endpoints. Falls back to `GMI_SANDBOX_BASE_URL`. |
| `timeout` | `float` | Transport timeout in seconds. Default: `30.0`. |
| `transport` | callable \| None | Optional transport for tests or custom networking. |
`client.health()` returns local client information:
```python theme={null}
{
"status": "ok",
"baseUrl": "https://console.gmicloud.ai/api/v2",
"authenticated": True,
}
```
## Basic Workflow
```python theme={null}
from sandbox_sdk import SandboxClient
client = SandboxClient()
sandbox = client.sandboxes.create(
template_id="template-id",
idempotency_key="create-request-1",
)
sandbox.connect(timeout=300)
execution = sandbox.commands.run("echo hello", wait=True, wait_timeout_seconds=25)
print(execution.stdout)
sandbox.delete()
```
`idc_name` is optional for sandbox and template creation: when omitted, the service falls back to the organization's configured default IDC.
## Sandboxes
### `client.sandboxes.create()`
```python theme={null}
sandbox = client.sandboxes.create(
idc_name="gmi-sandbox-us",
template_id="template-id",
timeout=300,
env_vars={"APP_ENV": "production"},
metadata={"owner": "platform"},
idempotency_key="sandbox-create-1",
)
```
Arguments:
| Argument | Description |
| ----------------- | -------------------------------------------------------------------------------- |
| `idc_name` | Target IDC. Optional; falls back to the organization's default IDC when omitted. |
| `template_id` | Template source. Required. |
| `timeout` | Sandbox lifetime in seconds. |
| `env_vars` | Runtime environment variables. |
| `metadata` | String metadata attached to the sandbox. |
| `idempotency_key` | Optional create idempotency key. |
Returns a `Sandbox`.
### `client.sandboxes.list()`
```python theme={null}
page = client.sandboxes.list(
page=1,
page_size=20,
idc_name="gmi-sandbox-us",
state=["running"],
metadata={"owner": "platform"},
)
```
`state` accepts a string or a sequence of strings. Metadata is encoded as `metadata[key]` query parameters.
### `client.sandboxes.get()`
```python theme={null}
sandbox = client.sandboxes.get("sandbox-id")
```
### `client.sandboxes.connect()`
```python theme={null}
sandbox = client.sandboxes.connect("sandbox-id", timeout=300)
```
The returned sandbox contains fresh data-plane connection fields.
## `Sandbox`
Properties:
| Property | Description |
| ---------------------- | --------------------------------------------------------- |
| `sandbox_id` | Sandbox identifier (control-plane UUID) |
| `id` | Alias for `sandbox_id` |
| `sandbox_key` | Data-plane addressing key, used to build `data_plane_url` |
| `domain` | Data-plane domain |
| `sandbox_access_token` | Data-plane access token |
| `state` | Lifecycle state |
| `data_plane_url` | Computed data-plane URL |
| `files` | `SandboxFiles` helper |
| `commands` | `SandboxCommands` helper |
| `executions` | Alias for `commands` |
| `data` | Raw response data dictionary |
Lifecycle states include `provisioning`, `running`, `checkpointing`, `updating`, and `failed`.
Methods:
```python theme={null}
sandbox.refresh()
sandbox.update_metadata({"team": "platform"})
sandbox.set_timeout(300)
sandbox.connect(timeout=300)
sandbox.delete()
```
## Files
All file methods use the sandbox data plane and require `connect()` first.
```python theme={null}
sandbox.files.read("/tmp/input.txt")
sandbox.files.write("/tmp/output.txt", "hello")
sandbox.files.write("/tmp/output.bin", b"\x00\x01")
sandbox.files.upload("./local.txt", "/tmp/local.txt")
sandbox.files.download("/tmp/local.txt")
sandbox.files.download(
"/tmp/local.txt",
destination="./downloaded.txt",
byte_range="bytes=10-",
)
```
Methods:
| Method | Description |
| ------------------------------------------------------------------ | ------------------------------------------ |
| `read(path, username=None)` | Read file bytes |
| `write(path, content, username=None, filename=None)` | Write text or bytes |
| `upload(source, path, username=None)` | Upload a local path or bytes |
| `download(path, destination=None, username=None, byte_range=None)` | Download bytes, optionally to a local path |
`download()` always returns `bytes`. `destination` is an additional local write.
## Command Execution
```python theme={null}
execution = sandbox.commands.run(
"python --version",
envs={"PYTHONUNBUFFERED": "1"},
cwd="/tmp",
wait=True,
wait_timeout_seconds=25,
request_id="execution-request-1",
)
```
Arguments:
| Argument | Description |
| ---------------------- | ---------------------------------------------------------- |
| `command` | Shell command |
| `envs` | Environment variables for the process |
| `cwd` | Working directory |
| `wait` | Wait for a result within the wait window |
| `wait_timeout_seconds` | Server wait window; the API currently accepts 1-25 seconds |
| `request_id` | Optional request correlation ID |
`Execution` properties:
```python theme={null}
execution.execution_id
execution.status
execution.exit_code
execution.stdout
execution.stderr
execution.data
```
Execution statuses include `pending`, `running`, `canceling`, `succeeded`, `failed`, and `canceled`.
Methods:
```python theme={null}
execution.refresh(request_id="refresh-1")
execution.cancel(request_id="cancel-1")
```
Cancel only non-terminal executions. The service may reject cancellation after an execution has completed.
## Templates
### Create
```python theme={null}
template = client.templates.create(
name="demo-template",
idc_name="gmi-sandbox-us",
resources={"type": "preset", "product": "gmi.sandbox.small"},
build={
"source": {"type": "image", "image": "ubuntu:22.04"},
"commands": ["apt-get update"],
"envs": {"BUILD_ENV": "production"},
"start_cmd": "sleep infinity",
},
description="Example template",
labels={"team": "platform"},
idempotency_key="template-create-1",
)
```
`resources` supports preset or custom values.
Preset:
```python theme={null}
{"type": "preset", "product": "gmi.sandbox.small"}
```
Custom:
```python theme={null}
{
"type": "custom",
"cpu_count": 2,
"memory_mb": 4096,
"disk_size_mb": 20480,
"architecture": "x86_64",
}
```
Build sources include image and template sources:
```python theme={null}
{"type": "image", "image": "ubuntu:22.04"}
{"type": "template", "template_id": "parent-template-id"}
```
`idempotency_key` is required for template creation.
Returns a `Template`. The returned object can be used with template instance methods such as `update()`, `delete()`, `builds()`, `build()`, and `build_logs()`.
### List and Get
```python theme={null}
page = client.templates.list(idc_name="gmi-sandbox-us")
template = client.templates.get("template-id", idc_name="gmi-sandbox-us")
```
### Update and Delete
```python theme={null}
template.update(name="renamed-template", description="Updated description")
template.delete()
```
The template's `idc_name` is reused automatically when present in the template response.
### Builds and Logs
```python theme={null}
builds = template.builds(page=1, page_size=20)
build = template.build("build-id")
logs = template.build_logs("build-id", offset=0, limit=100)
```
## Product Specifications
```python theme={null}
specifications = client.product_specifications.list()
specifications = client.product_specifications.list(idc_name="gmi-sandbox-us")
```
## Pagination
List methods return a `Page` object:
```python theme={null}
page = client.sandboxes.list(page=1, page_size=20)
print(page.items)
print(page.total)
print(page.page)
print(page.page_size)
print(page.request_id)
```
`Page` fields:
| Field | Type | Description |
| ------------ | ------------- | ------------------------ |
| `items` | `list` | Returned resources |
| `total` | `int` | Total matching resources |
| `page` | `int` | Current page |
| `page_size` | `int` | Requested page size |
| `request_id` | `str \| None` | Server request ID |
## Errors
All SDK exceptions derive from `SandboxSDKError`.
| Exception | HTTP status |
| ----------------------- | ------------------------------------ |
| `BadRequestError` | 400 |
| `AuthenticationError` | 401 |
| `PermissionDeniedError` | 403 |
| `NotFoundError` | 404 |
| `ConflictError` | 409 |
| `RateLimitError` | 429 |
| `ServerError` | 500+ |
| `TransportError` | Request could not reach the endpoint |
`APIError` fields:
```python theme={null}
try:
client.sandboxes.get("missing")
except NotFoundError as exc:
print(exc.status_code)
print(exc.message)
print(exc.code)
print(exc.request_id)
print(exc.details)
```
Error handling example:
```python theme={null}
from sandbox_sdk import ConflictError, NotFoundError, SandboxSDKError
try:
sandbox = client.sandboxes.get("sandbox-id")
sandbox.connect()
except NotFoundError:
print("sandbox no longer exists")
except ConflictError:
print("sandbox is in a transitional state; retry later")
except SandboxSDKError as exc:
print(f"sandbox request failed: {exc}")
```
## OpenAPI Coverage
The SDK maps the Sandbox-related OpenAPI operations as follows:
| OpenAPI operation | SDK |
| ------------------------ | -------------------------------------- |
| `createSandbox` | `client.sandboxes.create()` |
| `listSandboxes` | `client.sandboxes.list()` |
| `getSandbox` | `client.sandboxes.get()` |
| `updateSandbox` | `sandbox.update_metadata()` |
| `deleteSandbox` | `sandbox.delete()` |
| `connectSandbox` | `sandbox.connect()` |
| `setSandboxTimeout` | `sandbox.set_timeout()` |
| `createSandboxExecution` | `sandbox.commands.run()` |
| `getSandboxExecution` | `execution.refresh()` |
| `cancelSandboxExecution` | `execution.cancel()` |
| `downloadSandboxFile` | `sandbox.files.read()` / `download()` |
| `uploadSandboxFile` | `sandbox.files.write()` / `upload()` |
| `listProductCatalog` | `client.product_specifications.list()` |
| `createTemplate` | `client.templates.create()` |
| `listTemplates` | `client.templates.list()` |
| `getTemplate` | `client.templates.get()` |
| `updateTemplate` | `template.update()` |
| `deleteTemplate` | `template.delete()` |
| `listTemplateBuilds` | `template.builds()` |
| `getTemplateBuild` | `template.build()` |
| `getTemplateBuildLogs` | `template.build_logs()` |
# GMI Sandbox SDK Usage
Source: https://docs.gmicloud.ai/api-reference/sandbox-sdk/usage
Install, configure, and use the GMI Sandbox Python SDK.
# GMI Sandbox SDK Usage
## Install
```bash theme={null}
python -m pip install gmi-sandbox-sdk
```
## Configure
Use environment variables or pass values directly.
To get an API key, log in to `https://console.gmicloud.ai/`, click **API keys**, select **compute**, and click **Create API key**.
```bash theme={null}
export GMI_SANDBOX_API_KEY="your-api-key"
```
`GMI_SANDBOX_IDC_NAME` is optional. Leave it unset to use your organization's default IDC. Set it only when you want requests to target a non-default IDC:
```bash theme={null}
export GMI_SANDBOX_IDC_NAME="gmi-sandbox-us"
```
## Create a client
```python theme={null}
from sandbox_sdk import SandboxClient
client = SandboxClient()
```
You can also pass credentials explicitly:
```python theme={null}
client = SandboxClient(
api_key="your-api-key",
)
```
## Create and use a sandbox
```python theme={null}
sandbox = client.sandboxes.create(
template_id="template-id",
)
sandbox.connect()
result = sandbox.commands.run("echo hello", wait=True)
print(result.stdout)
sandbox.files.write("/tmp/hello.txt", "hello")
print(sandbox.files.read("/tmp/hello.txt").decode())
sandbox.delete()
```
If you already have a sandbox ID:
```python theme={null}
sandbox = client.sandboxes.get("sandbox-id")
sandbox.connect()
```
## Files
```python theme={null}
sandbox.files.read("/tmp/a.txt")
sandbox.files.write("/tmp/a.txt", "hello")
sandbox.files.write("/tmp/a.bin", b"binary-data")
sandbox.files.upload("./local.txt", "/workspace/local.txt")
sandbox.files.download("/workspace/output.txt", "./output.txt")
```
`download()` returns bytes and can also write to a destination path.
## Commands
```python theme={null}
execution = sandbox.commands.run(
"python --version",
cwd="/workspace",
envs={"PYTHONUNBUFFERED": "1"},
wait=True,
wait_timeout_seconds=25,
)
print(execution.status)
print(execution.exit_code)
print(execution.stdout)
print(execution.stderr)
```
You can refresh or cancel a running execution:
```python theme={null}
execution.refresh()
execution.cancel()
```
## Templates
```python theme={null}
template = client.templates.get("template-id")
template.update(name="new-name")
template.delete()
builds = template.builds()
build = template.build("build-id")
logs = template.build_logs("build-id", offset=0, limit=100)
```
Creating a template requires an idempotency key:
```python theme={null}
template = client.templates.create(
name="demo",
resources={"type": "preset", "product": "gmi.sandbox.small"},
build={"source": {"type": "image", "image": "ubuntu:22.04"}},
idempotency_key="template-1",
)
print(template.template_id)
template.update(name="new-name")
```
## Product specifications
```python theme={null}
client.product_specifications.list()
client.product_specifications.list(idc_name="gmi-sandbox-us")
```
## Errors
The SDK raises typed exceptions for HTTP failures:
* `BadRequestError`
* `AuthenticationError`
* `PermissionDeniedError`
* `NotFoundError`
* `ConflictError`
* `RateLimitError`
* `ServerError`
Example:
```python theme={null}
from sandbox_sdk import NotFoundError
try:
client.sandboxes.get("missing")
except NotFoundError:
print("sandbox not found")
```
# Connect to a sandbox
Source: https://docs.gmicloud.ai/api-reference/sandbox/connect-to-a-sandbox
/api-spec/sandbox_api.yaml post /sandboxes/{id}/connect
Connects to a running sandbox and returns its data-plane connection info (domain and access token). When `timeout` is provided and greater than 0, the call also extends the sandbox's lifetime (extend-only, never shortens). Returns 409 if the instance is not running.
The response always returns the authoritative expiry time `end_at` as settled by this call — if no extension took effect (the requested expiry is not later than the current one), it is simply the unchanged current value.
**The `sandbox_access_token` stays valid for the entire lifetime of the sandbox. When the lifetime is extended, the control plane re-signs and returns a new token; even without an extension, if the token has drifted from the sandbox's current `end_at`, this endpoint repairs it.**
# Create a sandbox
Source: https://docs.gmicloud.ai/api-reference/sandbox/create-a-sandbox
/api-spec/sandbox_api.yaml post /sandboxes
Creates a sandbox from a `template_id`.
Compute resources (CPU / memory / disk / architecture) are inherited from the snapshot of the selected Template Build. They are fixed when the Template is built and cannot be overridden at creation time.
Idempotency: pass an explicit `Idempotency-Key` request header as the idempotency key (unrelated to the tracing header `X-Request-ID`, which is always generated server-side; a client-supplied value is ignored). Resubmitting the same key with identical parameters returns the sandbox created by the first request (with its current access data) plus an `Idempotency-Replayed: true` response header. The same key with different parameters returns 400 `Sandbox.IdempotentParameterMismatch`. If the creation under that key has deterministically failed, or the sandbox it created has been deleted, the request returns 409 `Sandbox.IdempotentKeyConsumed` (retryable failures are automatically re-attempted when the same key is retried). The deduplication window is 24 hours; after it expires the same key is treated as a new request. Without the header, no deduplication is performed.
Backends that create asynchronously return as soon as the request is accepted: the instance starts in `provisioning` and transitions to `running` once ready. The detail endpoint is queryable during this period (see GET /sandboxes/{id}).
**The `sandbox_access_token` stays valid for the entire lifetime of the sandbox.**
# Delete (kill) a sandbox
Source: https://docs.gmicloud.ai/api-reference/sandbox/delete-kill-a-sandbox
/api-spec/sandbox_api.yaml delete /sandboxes/{id}
Accepts the deletion. A 202 response means the deletion intent has been persisted and the instance enters `deleting`; it only becomes `deleted` after the backing resources are confirmed released. If the release fails, the instance stays in `deleting` and reconciliation retries — **there is no force parameter**: skipping the release would leave orphaned billable resources.
Once the deletion intent is persisted the call is safely replayable: repeating it against a sandbox already being deleted returns 202 again, not 409.
# Get sandbox details
Source: https://docs.gmicloud.ai/api-reference/sandbox/get-sandbox-details
/api-spec/sandbox_api.yaml get /sandboxes/{id}
Returns sandbox details. Instances in the terminal failure state (`failed`) remain readable, with the failure reason in `failure`; deleted or expired instances return 404.
# List active sandboxes
Source: https://docs.gmicloud.ai/api-reference/sandbox/list-active-sandboxes
/api-spec/sandbox_api.yaml get /sandboxes
Returns sandboxes that are still actionable or still worth watching: `provisioning`, `running`, `updating`, `checkpointing`, plus the terminal failure state `failed`. Instances in transitional states do not disappear from the list while an operation is in flight. Results are ordered by `started_at` descending; pagination is applied after filtering.
The `state` filter takes external states; the server maps them back to internal ones. `running` also matches instances in short-lived lease states (`updating` / `checkpointing`), because those mean "running but briefly busy" rather than a separately actionable state.
# Sandbox API Overview
Source: https://docs.gmicloud.ai/api-reference/sandbox/overview
How the GMI Sandbox control plane and data plane fit together, and which token each one expects.
GMI Sandbox provides isolated execution environments created from templates. The REST API is split
into two planes with **different hosts and different credentials** — knowing which plane an endpoint
belongs to is the key to using the API correctly.
## Control plane vs. data plane
| | Control plane | Data plane |
| -------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------ |
| What it does | Lifecycle: create, list, connect, extend, delete sandboxes; manage templates | Work inside one sandbox: run commands, upload/download files |
| Base URL | `https://console.gmicloud.ai/api/v2` | `https://{sandbox_key}.{domain}` (per sandbox) |
| Auth header | `Authorization: Bearer ` | `X-Access-Token: ` |
| Endpoints | `/sandboxes`, `/templates`, `/products` | `/executions`, `/files` |
| Response shape | `{request_id, data}` envelope | Raw payload (no envelope) |
The two credentials are **not interchangeable**: the control plane rejects `X-Access-Token`, and the
data plane rejects `Authorization: Bearer`. A data-plane token is bound to its sandbox — using
sandbox A's token against sandbox B's host fails.
## Where the data-plane values come from
Every successful create (`POST /sandboxes`) or connect (`POST /sandboxes/{id}/connect`) response
returns three fields:
* `sandbox_key` — the per-sandbox host label;
* `domain` — the host suffix. Combine them as `https://{sandbox_key}.{domain}`; never assemble or
derive the domain yourself;
* `sandbox_access_token` — the data-plane credential, valid for the sandbox's entire lifetime.
After extending a sandbox's lifetime (via connect or the timeout endpoint), call connect again and
overwrite all three cached values — the token may have been re-signed.
## Typical flow
1. `POST /sandboxes` with a `template_id` (send an `Idempotency-Key` header to make retries safe);
2. wait for the sandbox to reach `running` (`GET /sandboxes/{id}`);
3. run commands and transfer files against the sandbox's own host using `X-Access-Token`;
4. extend the lifetime with `POST /sandboxes/{id}/timeout` as needed;
5. `DELETE /sandboxes/{id}` when done — sandboxes also expire automatically at `end_at`.
Prefer a higher-level interface? The [Python SDK](/api-reference/sandbox-sdk/usage) wraps both
planes behind one client.
# Set sandbox timeout
Source: https://docs.gmicloud.ai/api-reference/sandbox/set-sandbox-timeout
/api-spec/sandbox_api.yaml post /sandboxes/{id}/timeout
Resets the time-to-live relative to the current time. When `timeout` is omitted or is 0 or less, 300 seconds is used. Only allowed while `running`; any other state returns 409.
The response returns the expiry time before and after this change: since a `timeout` of 0 or less is replaced by the default duration, callers cannot derive the effective value from their own request parameters — treat `new_end_at` in the response as authoritative.
**The `sandbox_access_token` stays valid for the entire lifetime of the sandbox. After extending the lifetime, call the connect endpoint again to obtain a new token.**
# Update sandbox metadata
Source: https://docs.gmicloud.ai/api-reference/sandbox/update-sandbox-metadata
/api-spec/sandbox_api.yaml patch /sandboxes/{id}
Replaces the customer-defined metadata as a whole — no per-key merging; passing an empty object clears it. There are no mutable fields other than `metadata`. This operation does not take the lifecycle lock, so it works in any visible state.
# Create a Template and start its initial Build
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/create-a-template-and-start-its-initial-build
/api-spec/sandbox_api.yaml post /templates
Creates a logical Template together with its initial Build. GMI creates
and starts the initial Build from the required `build` definition in the
same request.
`Idempotency-Key` is required and acts as the idempotency key because provider
creation can complete after an upstream timeout; a keyless retry would build a
second Template. Repeating the request with identical parameters replays the
same Template/Build (with `Idempotency-Replayed: true`); a different body under
the same key returns 400 `Sandbox.IdempotentParameterMismatch`; after the
Template is deleted the key answers 409 `Sandbox.IdempotentKeyConsumed`. Keys
are remembered for 24 hours. (`X-Request-ID` is trace-only and server-generated.)
`resources` supports two mutually exclusive forms:
- Preset: `{"type":"preset","product":"gmi.sandbox.x-large"}`. The
`product` value is the catalog SKU (see `GET /api/v2/products`); the
service resolves the active entry from the product catalog. Preset values are used as configured and
are not constrained by custom resource limits.
- Custom: `{"type":"custom","cpu_count":4,"memory_mb":8192,
"disk_size_mb":32768,"architecture":"x86_64"}`. All three numeric
fields are required. Custom resources are limited to 16 vCPU,
65536 MiB memory, and 65536 MiB boot disk, and must also be
representable by the selected IDC.
# Create and start a rebuild
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/create-and-start-a-rebuild
/api-spec/sandbox_api.yaml post /templates/{template_id}/builds
Creates a new Build from the given definition and starts it immediately.
A rebuild inherits the most recent Build's provider and resources, so a
Template with no Build records left has nothing to inherit and returns
409. Not supported in every IDC; IDCs without rebuild support reject it with 422.
# Delete a Template
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/delete-a-template
/api-spec/sandbox_api.yaml delete /templates/{id}
Soft-deletes the Template so it disappears from tenant-visible lists.
Existing Sandboxes are not affected because their effective Template
configuration is copied at creation time.
GMI attempts to reclaim provider Build artifacts before completing the
logical delete. When the selected IDC cannot reclaim an artifact, the
Build remains with `artifact_state=retained` after soft-delete. When
reclaim is blocked by a dependent resource, the request fails with
`Template.HasDependents` (409) and nothing is soft-deleted.
Deletion is also rejected while a Build is in progress, and when
GMI-tracked dependents still reference the Template's Builds (for
example child Templates, Snapshots, or live Sandboxes).
# Get a Template
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/get-a-template
/api-spec/sandbox_api.yaml get /templates/{id}
Returns the logical Template and its current and latest Build references.
# Get a Template Build
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/get-a-template-build
/api-spec/sandbox_api.yaml get /templates/{template_id}/builds/{id}
Returns normalized Build status and artifact availability.
# Get live Template Build logs
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/get-live-template-build-logs
/api-spec/sandbox_api.yaml get /templates/{template_id}/builds/{id}/logs
Queries the underlying provider's Build log API. GMI does not persist these logs.
Logs are filtered and paged by the GMI adapter because the provider returns a complete log collection.
# List Template Builds
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/list-template-builds
/api-spec/sandbox_api.yaml get /templates/{template_id}/builds
Lists immutable Build attempts in reverse chronological order.
# List Templates
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/list-templates
/api-spec/sandbox_api.yaml get /templates
Lists Templates visible to the authenticated organization. Results are
sorted by creation time in descending order. Provider artifact IDs are
never returned.
# List the product catalog (unified, tenant-facing)
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/list-the-product-catalog-unified-tenant-facing
/api-spec/sandbox_api.yaml get /products
Unified product catalog query: identity, display name, status and
resources per product. This is a config-plane read view for tenants —
it carries no inventory and no purchasability judgement; whether a
given operation may use a product is answered by that operation's own
validation. `status` is externally two-valued: `active` /
`unavailable` (internal operational states are not exposed).
The contract covers all resource types; this release serves
`resource_type=sandbox` only (also the default), other values return
400.
# Start an existing Build
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/start-an-existing-build
/api-spec/sandbox_api.yaml post /templates/{template_id}/builds/{id}
Starts a Build created by the split create flow (a `waiting` initial
Build). This is an action on an existing record — nothing new is
created — so success is a 202 acceptance; poll the Build for the
outcome. Starting a Build that already started returns 409. Not
supported in every IDC; unsupported IDCs reject it with 422.
# Update mutable Template metadata
Source: https://docs.gmicloud.ai/api-reference/sandboxtemplate/update-mutable-template-metadata
/api-spec/sandbox_api.yaml patch /templates/{id}
Updates GMI-owned metadata only (`name`, `description`, `labels`).
IDC, source, resource specification, and existing Build definitions
are immutable. No provider call is made.
Renaming to a name already used by another Template in the same
organization and IDC returns 409.
# Create template
Source: https://docs.gmicloud.ai/api-reference/templates/create-template
/api-spec/service_api.yaml post /v1/templates
create template
# Delete template
Source: https://docs.gmicloud.ai/api-reference/templates/delete-template
/api-spec/service_api.yaml delete /v1/templates/{id}
# Get template
Source: https://docs.gmicloud.ai/api-reference/templates/get-template
/api-spec/service_api.yaml get /v1/templates/{id}
# Get templates list
Source: https://docs.gmicloud.ai/api-reference/templates/get-templates-list
/api-spec/service_api.yaml get /v1/templates
# Update template
Source: https://docs.gmicloud.ai/api-reference/templates/update-template
/api-spec/service_api.yaml put /v1/templates/{id}
# Delete a user account.
Source: https://docs.gmicloud.ai/api-reference/users/delete-a-user-account
/api-spec/ias-public-api.yaml delete /users/{userId}
Delete a user account.
- A user can delete their own account.
- An organization owner cannot be deleted.
- An organization owner can delete any user within the same organization.
# Request password reset
Source: https://docs.gmicloud.ai/api-reference/users/request-password-reset
/api-spec/ias-public-api.yaml post /users/password-reset
Sends a password reset email to the user.
# Resend email verification code
Source: https://docs.gmicloud.ai/api-reference/users/resend-email-verification-code
/api-spec/ias-public-api.yaml post /users/email-verification-code
Resend email verificaion code.
# Verify user's email and complete user registration.
Source: https://docs.gmicloud.ai/api-reference/users/verify-users-email-and-complete-user-registration
/api-spec/ias-public-api.yaml post /users/email-verification
Confirms the user's email address and finalizes the the account creation process.
Upon successful verification:
- If `organization` was provided during signup, the new organization will be created and the user will become its owner.
- If `invitationKey` was provided during signup, the user joins the invited organization.
# Allocate default VPC for organization in IDC
Source: https://docs.gmicloud.ai/api-reference/vpcs/allocate-default-vpc-for-organization-in-idc
/api-spec/service_api.yaml post /v1/vpcs
# Get VPC
Source: https://docs.gmicloud.ai/api-reference/vpcs/get-vpc
/api-spec/service_api.yaml get /v1/vpcs/{id}
# List all VPCs
Source: https://docs.gmicloud.ai/api-reference/vpcs/list-all-vpcs
/api-spec/service_api.yaml get /v1/vpcs
# Release default VPC
Source: https://docs.gmicloud.ai/api-reference/vpcs/release-default-vpc
/api-spec/service_api.yaml delete /v1/vpcs/{id}
# Browser Requirements
Source: https://docs.gmicloud.ai/cluster-engine/cluster-engine-client-requirements
System requirements and supported clients for connecting to GMI Cloud GPU Compute.
## Minimum
### Browser
| Browser | Minimum Supported Version |
| ------- | ------------------------- |
| Chrome | 109+ |
| Firefox | 128+ |
| Edge | 109+ |
| Safari | 16.4+ |
## Recommended
### Browser
| Browser | Recommended Version |
| ------- | ------------------- |
| Chrome | 132+ |
| Firefox | 134+ |
| Edge | 132+ |
| Safari | 18.3+ |
# Fine-Tuning
Source: https://docs.gmicloud.ai/cluster-engine/fine-tuning
Fine-tuning support for GMI Cloud models. Coming soon.
Fine-tuning is coming soon. Contact our sales team for early access.
URL: `https://console.gmicloud.ai/user-console/ce/fine-tuning`
Once released, this page will host fine-tuning job creation, monitoring, and result management. The entry point will surface in the Inference sidebar under **Model Management**, though the route itself lives under Compute.
## Get early access
Email [support@gmicloud.ai](mailto:support@gmicloud.ai) or [contact sales](https://www.gmicloud.ai/contact#sales).
# GPU Compute
Source: https://docs.gmicloud.ai/cluster-engine/index
Run GPU workloads on GMI Cloud: managed Kubernetes clusters, container instances, or dedicated bare-metal servers.
Run GPU workloads on GMI Cloud. Pick the format that fits your job: a managed Kubernetes cluster for training, a container instance for short jobs and notebooks, or a dedicated bare-metal server for full hardware control.
## What you can do here
Production-ready Kubernetes clusters with H200 or B200 nodes, provisioned and operated by GMI.
Spin up single containers from a template (vLLM, SGLang, JupyterLab, custom images) on demand.
Dedicated hosts when you need full OS access, custom drivers, or persistent local NVMe.
Configure firewalls and Elastic IPs for any compute resource you provision.
## How requests work
1. Browse the cluster catalog in the console. Each card lists the SKU, region, and full hardware spec.
2. Click **Request Cluster** on the card you want. The form is pre-filled with that SKU and region.
3. GMI support reviews the request and provisions the resources.
4. Once ready, the cluster appears under [Managed GPU Clusters](/cluster-engine/resources/managed-gpu-clusters) and you can start using it.
Track the status of in-flight requests on the [Cluster Requests](/cluster-engine/resources/cluster-requests) page.
## Pricing
Prices vary by SKU, GPU type, and region. The catalog cards in the console always show the current rate for each option, and the full live pricing list is on the [Pricing page](/inference-engine/billing/price).
## Product entitlements
Bare Metal and Container access is gated per organization. If those sections show a "Not yet available" banner, click **Contact Support** from the console to request access.
# Bare Metal Resources
Source: https://docs.gmicloud.ai/cluster-engine/resources/bare-metal
List, configure, and manage bare-metal servers attached to your organization.
URL: `https://console.gmicloud.ai/user-console/ce/bare-metals`
The Bare Metals page lists provisioned bare-metal servers attached to your organization. Access is gated by product entitlement.
## Gated state
If your organization hasn't been enabled for Bare Metal yet:
> **No Bare Metal Instances.** Your organization doesn't have any Bare Metal products enabled. Contact support to enable Bare Metal for your organization.
A **Contact Support** button is shown.
## Enabled state
When populated, the page shows a table of provisioned instances with **name**, **region / IDC**, **GPU type**, **status**, **IP**, and per-instance actions (power, console, delete).
## Manage Bare Metal Servers
1. Click "**Bare Metals**" in the left sidebar under the "Bare Metal" section
2. You will see all launched bare metal servers in the Bare Metals page
### Rename a bare metal server
1. Locate the bare metal server you want to rename
2. Click the "More actions" button (three dots icon)
3. Select "**Rename**" from the dropdown menu
4. Enter a new name and click "**Submit**"
### Stop a running bare metal server
1. Locate the bare metal server you want to stop
2. Click the "**Stop**" icon button
### Start a stopped bare metal server
1. Locate the bare metal server you want to start
2. Click the "**Start**" icon button
### PowerCycle a bare metal server
1. Locate the bare metal server you want to perform power cycle
2. Click the "More actions" button (three dots icon)
3. Select "**PowerCycle**" from the dropdown menu
4. Enter the confirmation text as shown in the dialog
5. Click "**Confirm**" to proceed
### Reboot a bare metal server
1. Locate the bare metal server you want to reboot
2. Click the "More actions" button (three dots icon)
3. Select "**Reboot**" from the dropdown menu
4. Click "**Reboot**" to confirm
### View Firewall settings
1. Locate the bare metal server
2. Click the "More actions" button (three dots icon)
3. Select "**View Firewall**" from the dropdown menu to navigate to the Firewall management page
Alternatively, you can access Firewalls directly from the left sidebar.
### View associated order
1. Locate the bare metal server
2. Click the "More actions" button (three dots icon)
3. Select "**View Order**" from the dropdown menu to see the associated order details
# Cluster Requests
Source: https://docs.gmicloud.ai/cluster-engine/resources/cluster-requests
Track pending cluster and node provisioning requests for your organization.
The Cluster Requests page tracks pending cluster and node provisioning requests for your organization. Once a request is fulfilled, the resource appears under [Managed GPU Clusters](/cluster-engine/resources/managed-gpu-clusters).
URL: `https://console.gmicloud.ai/user-console/ce/managed-clusters/requests`
## Sub-tabs
* **Cluster Requests**: requests for whole clusters.
* **Node Requests**: requests for additional nodes against an existing cluster.
## Toolbar
* Search by name or full request ID.
* **Data Center** filter.
* Status select (e.g. `In Progress`).
* Status pills: **All**, **Launching**, **Deleting**.
* Grid / table view toggle.
* **Request Cluster** (top-right).
## Submit a new request
The **Request Cluster** button (here and on the Compute Home catalog cards) routes to:
```
/user-console/ce/managed-clusters/requests/cluster-requests/create
```
Optional query parameters `?product=&idc=` pre-fill the form from a catalog card.
## Empty state
> **No Requests Found**
>
> There are no requests matching your search criteria at the moment.
## Next steps
* See provisioned clusters: [Managed GPU Clusters](/cluster-engine/resources/managed-gpu-clusters).
* Browse the SKU catalog on the [Compute Home](/cluster-engine).
# Container Resources
Source: https://docs.gmicloud.ai/cluster-engine/resources/containers
Launch, manage, and connect to container workloads on GMI Cloud.
URL: `https://console.gmicloud.ai/user-console/ce/containers`
Container workload management. Gated by product entitlement.
## Gated state
If your organization hasn't been enabled for Container products yet:
> **No Container Instances.** Your organization doesn't have any Container products enabled. Contact support to enable Container for your organization.
A **Contact Support** button is shown.
## Enabled state
When populated, the page lists each container instance with **name**, **status**, **image**, **template**, **attached firewall**, and per-instance actions.
## Open the Containers list
To open the Containers list, click "**Cluster**" in the top navigation bar and select "**Containers**".
The Containers page shows all your launched containers:
## Access Containers
There are three ways to interact with a running container: SSH (from your own terminal), Jupyter Notebook (web-based), or the built-in web shell (no local tools required).
**SSH (port 22)** and **Jupyter Notebook (port 8888)** are only available on containers launched from an **official template** that pre-configures these ports. Custom templates don't expose them by default, use the **web shell** instead, or set up your own port mapping.
### Connect via SSH
1. Locate a container and click the port "**22**" icon in the "**Ports**" field
2. In the pop-up window, copy the SSH command and paste it into your terminal
### Connect via Jupyter Notebook
1. Locate a container and click the port "**8888**" icon in the "**Ports**" field
2. A Jupyter Notebook web page will open in another browser tab
### Open a Web Shell
Access a web-based terminal directly in your browser, no SSH client required.
1. Locate the container you want to access
2. Click the "**More actions**" button (three dots icon)
3. Select "**Open Shell**" from the dropdown menu
4. A new browser tab will open with a web-based terminal connected to your container
The web shell provides root access to your container. You can run commands, install packages, and manage files directly from your browser without needing an SSH client.
## Container Status Reference
| **Status** | **Description** |
| --------------- | ----------------------------------------------------------------------------- |
| **Creating** | The container is in the process of being created. |
| **Running** | The container is currently running. |
| **Terminating** | The container is shutting down, typically appearing briefly during a restart. |
| **Error** | An error has occurred in the container. Check the logs for more details. |
## Lifecycle Actions
These actions change the state of a container. Open the "**More actions**" menu (three dots) on a container row to reach them.
### Reconfigure
1. Locate the container you want to reconfigure and click "**Reconfigure**" from the dropdown menu in the "Action" field
2. Edit the settings of the original container as you wish, one by one
3. Type "**RECONFIGURE**" in the pop-up window to confirm the new settings and start the instance with the new settings
Upon instance reconfiguration, all data within the container will be permanently LOST and cannot be recovered. Please be sure to fully comprehend these consequences and back up your data before proceeding.
### Restart
1. Locate the container you want to restart
2. Click the "**More actions**" button (three dots icon)
3. Select "**Restart**" from the dropdown menu
4. Enter the confirmation text as shown in the dialog
5. Click "**Confirm**" to proceed
### Renew
The Renew feature extends the rental period of a **Prepaid Plan** container to keep your resources running uninterrupted.
The Renew option is only available for containers with **Prepaid Plan** billing method. Pay-as-you-go containers do not have an expiration date and therefore do not need renewal.
1. Locate the container you want to renew
2. Click the "**More actions**" button (three dots icon)
3. Select "**Renew Plan**" from the dropdown menu
4. On the Renew Container page, you will see:
* **Instance Information**: Container name, billing method, current end time, and new end time
* **Extension Duration**: Select how long you want to extend the container
5. Click the "**Select Duration**" dropdown to choose your extension period. Available options include:
* Short-term: 1 day, 3 days, 1 week, 2 weeks, 3 weeks
* Monthly: 1 month through 11 months
* Long-term: 1 year, 3 years
6. After selecting a duration, review the updated **New End Time** and the **Price** summary
7. Click "**Renew**" to proceed to payment
8. Complete the payment process to finalize the renewal
Renew your container before the expiration date to avoid any service interruption. You can renew at any time while the container is running.
### Terminate
The Terminate option is only available for containers with **Pay as you go** billing method. Prepaid Plan containers cannot be terminated before their rental period ends.
1. Locate the container you want to terminate
2. Click the "**More actions**" button (three dots icon)
3. Select "**Terminate**" from the dropdown menu
4. Review the dialog, if the container has an Elastic IP attached, note that **the EIP will NOT be automatically released**. You must manually release it from the Elastic IP console afterwards if you no longer need it
5. Type **`TERMINATE`** in the confirmation field
6. Click "**Confirm**" to proceed
## Networking
Modify a running container's networking attachments from its **Detail** page (click the container name in the list to open it). These changes apply immediately without restarting the container.
**Order matters.** A firewall is scoped to the container's public IP, so the EIP must be attached first before you can associate a firewall. Follow this order:
* **Attaching**: associate the **EIP first**, then the **firewall**
* **Detaching**: disassociate the **firewall first**, then the **EIP**
### Associate EIP
Attach an Elastic IP to give the container a public IP address. **Do this before associating a firewall.** On its own, an EIP does not allow any traffic through, a firewall must be attached afterwards to permit inbound connections.
1. Open the container's detail page
2. In the **Networking Configurations** section, click "**Associate EIP**"
3. In the dialog, select an Elastic IP from the **Elastic IP Address** dropdown (only Disassociated EIPs in the same data center as the container are listed)
4. Click "**Confirm**" to attach the EIP
If no EIPs appear in the dropdown, allocate one from the **Elastic IP** page first, see [Allocate an Elastic IP](/cluster-engine/resources/elastic-ip#allocate-an-elastic-ip).
### Associate Firewall
Attach a firewall to a container that has an EIP but no firewall associated. **Only do this after an EIP is associated.**
1. Open the container's detail page
2. Scroll to the **Firewalls** section and click "**Associate Firewall**"
3. In the dialog, select a firewall from the **Firewall** dropdown (only firewalls in the same data center as the container are listed)
4. Click "**Confirm**" to attach the firewall
To change an existing firewall, disassociate the current one first (see below), then associate a new one. Alternatively, manage associations from the **Firewalls** page, see [Associate a Firewall with Instances](/cluster-engine/resources/firewalls#associate-a-firewall-with-instances).
### Disassociate Firewall
Remove the firewall currently attached to the container. **Do this before disassociating the EIP.** Once the firewall is removed, **no inbound traffic is allowed through the EIP** until you associate another firewall with the appropriate rules.
1. Open the container's detail page
2. Scroll to the **Firewalls** section and click "**Disassociate Firewall**"
3. In the confirmation dialog, type **`DISASSOCIATE`** to confirm
4. Click "**Confirm**" to detach the firewall
Without a firewall, the container will not accept any inbound connections even if it has an EIP. To resume inbound traffic, associate another firewall, see [Associate a Firewall with Instances](/cluster-engine/resources/firewalls#associate-a-firewall-with-instances).
### Disassociate EIP
Detach the Elastic IP from the container. **Disassociate the firewall first** before removing the EIP. The EIP returns to your account as **Disassociated**, you can associate it with another instance later or release it entirely (see [Elastic IP](/cluster-engine/resources/elastic-ip)).
1. Open the container's detail page
2. In the **Networking Configurations** section, click "**Disassociate EIP**"
3. In the confirmation dialog, type **`DISASSOCIATE`** to confirm
4. Click "**Confirm**" to detach the EIP
Once the EIP is disassociated, the container will lose its public IP connectivity. Any external services or clients relying on the IP will fail until you associate a new EIP.
## Operations & Monitoring
Day-to-day observability, these actions read container state without changing it.
### View Logs
1. Locate the container whose logs you want to view
2. Click the "**View Log**" icon to access the logs
### Download Logs
1. Locate the container whose logs you want to download
2. Click the "**More actions**" button (three dots icon)
3. Select "**Download Logs**" from the dropdown menu to download the logs
### View Monitoring
Monitor your container's resource usage including GPU, CPU, and memory metrics.
1. Locate the container you want to monitor
2. Click the "**More actions**" button (three dots icon)
3. Select "**View Monitoring**" from the dropdown menu
4. The monitoring dashboard displays:
* **GPU Usage**: Real-time GPU utilization percentage
* **GPU Memory Usage**: GPU memory consumption
* **CPU Usage**: CPU utilization percentage
* **Memory Usage**: RAM consumption
Use the time range selector (15m, 1h, 3h, 12h, 1d, 7d, 30d) to view historical metrics. You can also set a custom time range for more specific analysis.
### View Order
View the billing and payment details for your container.
1. Locate the container whose order you want to view
2. Click the "**More actions**" button (three dots icon)
3. Select "**View Order**" from the dropdown menu
4. The Orders page displays your container's order information including:
* **Order No.**: Unique order identifier
* **Order Date**: When the order was placed
* **Product Name**: Type of resource (Container)
* **Instance Type**: The container instance specification
* **Billing Method**: Prepaid Plan or Pay as you go
* **Status**: Order status (Completed, Pending, Cancelled)
* **Pay Amount**: Total amount charged
* **Receipt**: Download receipt for the order
# Elastic IP
Source: https://docs.gmicloud.ai/cluster-engine/resources/elastic-ip
Allocate, attach, and release static IPv4 addresses for GMI Cloud Compute resources.
URL: `https://console.gmicloud.ai/user-console/ce/elastic-ip`
Elastic IPs are static public IPv4 addresses that you can allocate and attach to bare metal servers or container instances. Unlike dynamic IPs, Elastic IPs persist across server restarts and can be remapped to different instances.
## Empty state
> **No Elastic IP Addresses.** Get started by allocating your first elastic IP address.
The **Allocate Elastic IP** button starts the allocation flow.
## Access Elastic IP
1. Click "**Elastic IP**" in the left sidebar under the "Networking" section
2. You will see the Elastic IP list page
## Allocate an Elastic IP
1. Click the "**Allocate Elastic IP**" button
2. Configure the Elastic IP settings:
### Configuration
| Field | Description |
| ------------------ | ------------------------------------------------------------------------------- |
| **Billing Method** | Currently supports "Pay as you go" - charged by the minute with no upfront cost |
| **Data Center** | Select the data center where the Elastic IP will be allocated |
| **Specification** | Choose the bandwidth specification (available after selecting a data center) |
### Basic Information
| Field | Description |
| ----------------------- | ---------------------------------------------------------- |
| **Name** | Auto-generated name for the Elastic IP (can be customized) |
| **Elastic IP Quantity** | Number of Elastic IPs to allocate (default: 1) |
### Summary
The Summary panel shows:
* Billing method
* Selected data center
* Instance type
* EIP quantity
* Estimated monthly cost breakdown (List Price, Discount, Total)
3. Click "**Go to Pay**" to complete the allocation
## Associate an Elastic IP
You can associate an allocated Elastic IP with either a **Bare Metal** server or a **Container** instance.
1. On the Elastic IP list page, locate the EIP you want to associate
2. Click the "**Associate**" button in the Actions column
3. In the **Associate Elastic IP** dialog:
* **Product Type**: Select **Container** (or Bare Metal)
* **Target Instance**: Pick the instance to attach the EIP to
The dialog shows the selected instance's details (Instance Name, Private IPv4 address, Creation Time) for confirmation.
4. Click "**Confirm**" to complete the association
After the association succeeds, the EIP row shows the **Associated Instance Name**, **Associated Product** (Container or Bare Metal), and **Status** updates to **Associated**:
Only instances in the **same data center** as the Elastic IP will appear in the Target Instance list. If no instances are listed, make sure the EIP and the instance share the same data center.
## Disassociate an Elastic IP
Detach an Elastic IP from its current instance while keeping the IP allocated to your account.
1. On the Elastic IP list page, locate an EIP with status **Associated**
2. Click the "**Disassociate**" button in the Actions column
3. In the confirmation dialog, type **`DISASSOCIATE`** in the input field to confirm
4. Click "**Confirm**" to detach the Elastic IP
After disassociation, the EIP returns to the **Disassociated** state and remains in your account. You can associate it with another instance later or release it entirely.
Disassociated Elastic IPs **continue to incur charges**. Release the EIP if you no longer need it (see Manage Elastic IPs below).
## Release an Elastic IP
Permanently release an Elastic IP back to the pool when you no longer need it. This stops all billing for the EIP.
Once released, the EIP is **permanently returned to the pool** and you likely will not be able to get the same IP address back by allocating a new one. Make sure no instance or service depends on this IP before releasing.
1. On the Elastic IP list page, locate a **Disassociated** EIP (you must disassociate first if it's still attached)
2. Click the "**More actions**" button (three dots) in the Actions column and choose "**Release**"
3. In the confirmation dialog, type **`RELEASE`** in the input field to confirm
4. Click "**Confirm**" to release the Elastic IP
After release, the EIP is removed from your account and billing stops immediately.
## Manage Elastic IPs
From the Elastic IP list page, you can:
* **Associate**: Attach an Elastic IP to a bare metal server or container
* **Disassociate**: Detach an Elastic IP from its current instance (the IP remains allocated)
* **Release**: Permanently release an Elastic IP back to the pool
## Best Practices
* **Use Elastic IPs for services that require consistent public addresses** - such as web servers, APIs, or any service that needs a stable endpoint
* **Release unused Elastic IPs** - You are charged for allocated Elastic IPs even when not associated with an instance
* **Plan your IP allocation** - Elastic IPs are limited resources; allocate only what you need
# Firewalls
Source: https://docs.gmicloud.ai/cluster-engine/resources/firewalls
Control inbound traffic to bare-metal servers and container instances.
URL: `https://console.gmicloud.ai/user-console/ce/firewalls`
Firewalls let you control incoming network traffic to your bare metal servers and container instances by defining security rules. Each firewall is scoped to a single IDC (data center).
## Toolbar
* **+ Create Firewall** (top-right).
* Filter by name or description.
## Table columns
| Column | Notes |
| ------------------------- | -------------------------------------------- |
| **Name** | Friendly name + UUID (copyable) |
| **Data Center** | IDC slug, e.g. `us-east-oregon1` |
| **Description** | Free text |
| **Associate Bare Metal** | Count of attached BM instances |
| **Associated Containers** | Count of attached containers |
| **Rules** | Rule count |
| **Actions** | Gear (edit rules) and `•••` (rename, delete) |
## Built-in firewalls
Every available IDC ships with a pre-provisioned **All Open** firewall: *preset firewall allowing all inbound traffic (public, per-IDC)*. Examples include `asia-east-taiwan1/2`, `asia-east-singapore1`, `asia-southeast-singapore2`, `us-east-oregon1`, `us-east-ohio1`, `us-central-iowa1/4/5/6`.
## Access Firewalls
1. Click "**Firewalls**" in the left sidebar under the "Networking" section
2. You will see the Firewalls list page showing all your firewall configurations. The **Associate Bare Metal** and **Associated Containers** columns show how many instances each firewall is attached to.
## Create a Firewall
1. Click the "**Create Firewall**" button in the top right corner
2. Fill in the firewall configuration form:
### Configuration Fields
| Field | Description |
| --------------- | --------------------------------------------------------- |
| **Data Center** | Select the data center where the firewall will be created |
| **Name** | Enter a name for your firewall |
| **Description** | Optional description for the firewall |
### Inbound Rules
Inbound rules control incoming traffic to the attached instances. Each rule consists of:
| Field | Description |
| -------------- | ---------------------------------------------------------------------------- |
| **Type** | The type of traffic (e.g., SSH, HTTP, HTTPS, Custom) |
| **Protocol** | Network protocol (TCP, UDP, ICMP) |
| **Port Range** | The port range to allow (e.g., 22-22 for SSH) |
| **Sources** | IP addresses or CIDR blocks allowed to connect (e.g., 0.0.0.0/0 for all IPs) |
Click "**Add Rule**" to add additional inbound rules.
3. Click "**Create**" to create the firewall
You can attach instances during creation, or at any time afterwards via the **Manage** page, see the next section.
## Associate a Firewall with Instances
A firewall can be associated with either **Bare Metal** servers or **Container** instances. The list page shows the current counts in the **Associate Bare Metal** and **Associated Containers** columns.
1. On the Firewalls list page, click the **firewall name** (e.g., `All Open`) to open its detail page
2. On the detail page, click the "**Manage**" button in the top right corner
3. On the Manage page you will see two sections: **Bare Metal Association** and **Associate to Container**
4. Click the dropdown of the section you want and select one or more instances (only instances in the **same data center** as the firewall are listed)
5. Click "**Save**" to apply the association
The **All Open** preset firewall allows all inbound traffic (`0.0.0.0/0`), useful for testing, but not recommended for production workloads. Use a stricter custom firewall for instances that are exposed to the internet.
## Disassociate a Firewall from an Instance
To remove an instance from a firewall, use the same Manage page:
1. On the Firewalls list page, click the firewall name to open its detail page
2. Click "**Manage**" in the top right corner
3. In the **Bare Metal Association** or **Associate to Container** section, locate the chip for the instance you want to disassociate and click the "**×**" icon on that chip
4. Click "**Save**" to apply the change
After saving, the instance's **Associated Firewall** returns to whatever default applies (for example, containers fall back to the system default). The firewall itself remains allocated and can be associated with other instances.
## Manage Firewalls
From the Firewalls list page, you can:
* **View details**, click the firewall name to inspect its rules and associations
* **Edit rules**, open the detail page and update inbound rules
* **Associate / Disassociate** instances, use the Manage page (see above)
* **Delete firewall**, from the detail page; only firewalls with no associated instances can be deleted
# Managed GPU Clusters
Source: https://docs.gmicloud.ai/cluster-engine/resources/managed-gpu-clusters
Provision and operate managed Kubernetes GPU clusters for large-scale AI workloads.
URL: `https://console.gmicloud.ai/user-console/ce/managed-clusters/clusters`
GMI Cloud's Managed GPU Cluster Service (MGCS) provides fully managed Kubernetes-based GPU clusters for large-scale AI workloads. Unlike individual containers, MGCS offers dedicated GPU worker nodes with Kubernetes orchestration, giving you cluster-level control over your compute resources.
Use [Cluster Requests](/cluster-engine/resources/cluster-requests) to launch new ones.
## Toolbar
* Search by cluster name or full ID.
* **Data Center** dropdown filter.
* Status pills: **All**, **Running**, **Deleting**.
* **Request Cluster** (top-right), same flow as the Compute Home catalog.
## Empty state
> **No Clusters Found.** No clusters match your current filters. Try adjusting your search.
When populated, each cluster row exposes **name**, **ID**, **data center**, **node count**, **status**, and per-cluster actions (open, delete).
The request for GPU Cluster Service is not processed automatically. After submitting a request, please contact support to activate it.
## View Managed GPU Clusters
1. Click "**Managed GPU Clusters**" in the left sidebar under the "Cluster" section
2. The cluster list displays the following information for each cluster:
| **Column** | **Description** |
| ---------------------- | ------------------------------------------------ |
| **Name / ID** | Cluster name and unique identifier |
| **Kubernetes Version** | The version of Kubernetes running on the cluster |
| **Instance Type** | GPU worker node specification |
| **Quantity** | Number of worker nodes in the cluster |
| **Billing Method** | Pay as you go or Prepaid |
| **Status** | Current cluster status |
| **Actions** | Available management actions |
3. Use the filters to narrow down your clusters:
* **Search**: Filter by cluster name or IP address
* **Data Center**: Filter by data center location
* **Cluster Status**: Filter by cluster status
## Request a New Cluster
To request a new managed GPU cluster, follow the 3-step configuration process:
1. Click the "**Request Cluster**" button on the Managed GPU Clusters page or the Requests page
### Step 1: Choose Your GPU Worker Node
Configure the compute resources for your cluster:
1. **Billing Method**: Select your preferred billing method
* **Pay as you go**: Charged by the minute, no upfront cost, pay for what you use
2. **Data Center**: Choose your preferred data center location
3. **Kubernetes Version**: Select the Kubernetes version for your cluster (available after selecting a data center)
4. **Worker Node Specification**: Choose the GPU instance type for your worker nodes (available after selecting a data center)
5. **Worker Node Quantity**: Set the number of worker nodes for your cluster
6. Click "**Continue**" to proceed to the next step
### Step 2: OS Image
Select the operating system image for your worker nodes. The default is **Ubuntu 22.04 x86 64bits**.
### Step 3: Basic Information
Provide the basic information for your cluster, such as the cluster name.
After completing all steps, review the **Summary** panel on the right side which shows:
* Billing Method
* Data Center
* Kubernetes Version
* Worker Node Specification
* Worker Node Quantity
* OS Image
* **Estimated Monthly Cost** (List Price, Discount, and Estimated Total)
Click "**Submit**" to send your cluster request.
The request for GPU Cluster Service is not processed automatically. After submitting the request, please contact support to activate it.
## View Cluster Requests
Track the status of your cluster requests on the Requests page.
1. Click "**Requests**" in the left sidebar under the "Cluster" section
2. Use the tabs to filter requests by status:
* **All**: View all requests
* **In Progress**: View requests currently being processed
* **Error**: View requests that encountered errors
# Templates
Source: https://docs.gmicloud.ai/cluster-engine/resources/templates
Container image templates available to launch new container workloads.
URL: `https://console.gmicloud.ai/user-console/ce/templates`
Container image templates available to your organization. New container workloads can be launched from any template here.
## Toolbar
* **Add**, register a new template (top-right).
* **Filter by name**, text search.
* Status tabs: **All**, **Draft**, **Published**, **Unpublished**.
## Card layout
Each template card shows the icon, name, description, status badge (`Published`, `Draft`, etc.), and a `•••` menu (edit, publish/unpublish, duplicate, delete).
## Built-in templates
| Template | Description |
| --------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `gmicloud-vllm-with-jupyterlab` | vLLM 0.6.3post1 + JupyterLab 4.1.8 + OpenSSH on CUDA devel 12.4 / Python 3.10.12. Ports 8000, 8888, 22. |
| `gmicloud-sglang-with-jupyterlab` | SGLang 0.4.6.post5 + JupyterLab 4.1.8 + OpenSSH. Ports 30000, 8888, 22. |
| `gmicloudai-llama3-inference` | Official Llama 3 inference docker image. |
| `gmicloud-jupyterlab` | JupyterLab 4.1.8 + OpenSSH on CUDA devel 12.4 / Python 3.10.12. Ports 8888, 22. |
## Manage Templates
1. Click "**Templates**" in the left sidebar under the "Container" section
2. You will see all templates in the Templates page
## Add a New Template
1. Click the **"Add"** button in the top right corner
2. Enter the required information and click **"Add"** to add a new container template
## Edit a Template
1. Locate the template you want to edit
2. Click the "More actions" button (three dots icon)
3. Select "**Edit**" from the dropdown menu
4. Modify the template information and click **"Save"** to update
## Delete a Template
1. Locate the template you want to delete
2. Click the "More actions" button (three dots icon)
3. Select "**Delete**" from the dropdown menu to remove the template
# VPC & Subnets
Source: https://docs.gmicloud.ai/cluster-engine/resources/vpc-subnets
Virtual Private Cloud and subnet management for GMI Cloud Compute resources.
URL: `https://console.gmicloud.ai/user-console/ce/vpcs`
Virtual Private Clouds (VPCs) provide isolated network environments for your bare metal servers. Each VPC contains one or more subnets that define the IP address ranges for your resources.
## Empty state
> **No VPC Instances.** No VPC instances have been created yet.
When populated, the page lists each VPC with its CIDR block, subnets, and the count of attached resources.
## Access VPC & Subnets
1. Click "**VPC & Subnets**" in the left sidebar under the "Bare Metal" section
2. You will see the VPC list page showing all your VPCs
## VPC List
The VPC list displays the following information for each VPC:
| Column | Description |
| ----------------- | ------------------------------------------- |
| **Name** | The name of the VPC (click to view details) |
| **Data Center** | The data center where the VPC is located |
| **IPv4 CIDR** | The IP address range assigned to the VPC |
| **Subnets** | Number of subnets in the VPC |
| **Creation Time** | When the VPC was created |
Use the filter box to search VPCs by name, ID, data center, or CIDR.
## Default VPC
Each data center comes with a **Default VPC** that is automatically created for your organization. The Default VPC includes:
* A pre-configured IPv4 CIDR block
* A Default Subnet covering the entire VPC range
## View VPC Details
Click on a VPC name to view its details:
### Basic Information
| Field | Description |
| ----------------- | ----------------------------- |
| **ID** | Unique identifier for the VPC |
| **Name** | The VPC name |
| **Data Center** | Location of the VPC |
| **Creation Time** | When the VPC was created |
### Configuration
| Field | Description |
| ------------------- | -------------------------------- |
| **IPv4 CIDR Block** | The IP address range for the VPC |
### Subnets
The Subnets section lists all subnets within the VPC:
| Column | Description |
| ------------- | ----------------------------------- |
| **ID** | Unique identifier for the subnet |
| **Name** | The subnet name |
| **IPv4 CIDR** | The IP address range for the subnet |
## Using VPCs with Bare Metal
When launching a bare metal server, you can select which VPC and subnet to use for networking. This determines the private IP address range your server will use and enables communication with other resources in the same VPC.
# Account
Source: https://docs.gmicloud.ai/cluster-engine/user-management/account
Personal account settings: profile, password, payments, and usage tier.
Personal account settings. The Settings area has its own left sidebar; a **Back to Console** link in the top-left returns to the Inference console.
URL: `https://console.gmicloud.ai/user-setting/account`
## Profile
Avatar, display name, and email.
## Organization
The current organization's name, UUID (copyable), and **Usage Tier** badge. Use the click-through to manage members and quotas in [Organization](/cluster-engine/user-management/organization).
## Change password
Three fields: **Old Password**, **New Password**, **Confirm New Password**. A **Forgot Password?** link is offered alongside a **Save Change** submit button.
## Payment settings
The **Auto Pay Enable** toggle. When on, GMI reloads credits up to once per hour as your balance approaches the auto-pay threshold, using your default saved card.
When your balance nears your auto-pay threshold, we will attempt to reload GMI credits by billing your default saved card max once per hour for the configured top-up amount.
## Usage limit
Shows your current tier (e.g. `Usage Tier 1`). Upgrades require reaching out to [support@gmicloud.ai](mailto:support@gmicloud.ai). The page provides **Read Docs** and **Contact Sales** buttons.
## Next steps
* Manage members and quotas: [Organization](/cluster-engine/user-management/organization).
* Top up balance or redeem a coupon: [Credits & Coupons](/cluster-engine/user-management/credits-coupons).
# API Keys
Source: https://docs.gmicloud.ai/cluster-engine/user-management/api-keys
Create and revoke API keys used by external clients and SDKs to call GMI Cloud Inference.
Create and revoke API keys used by external clients and SDKs to call GMI Cloud Inference.
URL: `https://console.gmicloud.ai/user-setting/api-keys`
## Create a key
Open **Settings > API Key Management** and click **+ Create API Key** in the top-right. The dialog asks for:
| Field | Value |
| --------------- | -------------------------------------------------------------------------------------------------- |
| **Description** | Enter a key name that helps you recognize it later (for example, `prod-inference` or `local-dev`). |
| **Scope** | Defaults to **Inference**. Leave it set unless you have a reason to change. |
Click **Create Key** to generate the key, or **Close** to cancel.
Treat API keys as secrets. The full value is only shown when the key is created. Copy and store it immediately. If you lose it, you must create a new one.
## Key list
| Column | Notes |
| :----- | :-------------------------------------------------------- |
| Name | Friendly name |
| Key | Truncated preview (e.g. `eyJh...XXXX`) with copy on hover |
| Scope | Scope badge. `Inference` is the common scope. |
| Owner | Member who created the key |
| Action | Delete (trash icon) |
Keys are paginated at 10 / page.
## Next steps
* Use your key in [Claude Code](/coding-tools/claude-code), [Codex](/coding-tools/codex), or [Cursor](/coding-tools/cursor).
* See pricing and current spend: [Billing](/cluster-engine/user-management/billing).
# Billing
Source: https://docs.gmicloud.ai/cluster-engine/user-management/billing
View invoices, payment methods, and current usage for your GMI Cloud account.
## Manage Orders
1. Click your avatar in the top right corner
2. Select "**Billing and Usage**" from the dropdown menu
3. Click "**Orders**" in the left sidebar to view your order history
## View Receipt
1. Locate the order whose receipt you want to view
2. Click the "**View Receipt**" icon
3. The receipt details will be displayed
## Manage Pending Orders
For orders with "Pending" status, you can:
* Click "**Continue**" to resume the checkout process
* Click "**Cancel**" to cancel the order
# Credits & Coupons
Source: https://docs.gmicloud.ai/cluster-engine/user-management/credits-coupons
Balance, transaction history, coupon redemption, and the referral program.
Balance, transaction history, coupon redemption, and the referral program.
URL: `https://console.gmicloud.ai/user-setting/credits-coupons`
## Sub-tabs
* **Credits**: current balance and recent credit transactions.
* **Coupons**: redeem a coupon code and see active / used coupons.
* **Referral**: referral program.
## Credits tab
* **General Credit Balance**: your current credit balance.
* **Recent Transactions**: a table filtered by a date-range picker. Empty state: "No Transactions. You haven't made any credit transactions yet."
## Coupons tab
Redeem a coupon code via the input box. The table below lists active and previously used coupons.
## Referral tab
Invite collaborators and earn credits when they sign up and start using GMI Cloud.
## Next steps
* Enable auto-reload of credits: [Account](/cluster-engine/user-management/account).
* Review spend by product and date: [Billing](/cluster-engine/user-management/billing).
# User and Password Management
Source: https://docs.gmicloud.ai/cluster-engine/user-management/login
Sign in to the GMI Cloud console.
## Login
1. Navigate to the GMI Cloud homepage
2. Click the "**Sign in**" button in the top right corner
3. Choose your preferred login method:
* Username/Password
* OAuth (Google, GitHub, Hugging Face)
4. Enter the Two-Factor Authentication (2FA) verification code if required
## Logout
1. Click your avatar in the top right corner
2. Select "**Logout**" from the dropdown menu
## Change Password
1. Click your avatar in the top right corner
2. Select "**Settings**" from the dropdown menu
3. Click "**Change Password**" in the left sidebar
4. Enter your current password and the new password
5. Click "**Save Change**" to update your password
# Organization
Source: https://docs.gmicloud.ai/cluster-engine/user-management/organization
Manage your organization, team members, and roles in GMI Cloud.
## Member List
1. Click your avatar in the top right corner
2. Select "**Settings**" from the dropdown menu
3. Click "**Member List**" in the left sidebar to view all organization members
## Invite Members
1. Click the "**Invite Members**" button to invite members to your organization by email
## Reassign Organization Owner
1. Locate the "Organization Owner" section on the Member List page
2. Click the "**Reassign**" button
3. Select the new owner from the dropdown menu and click "**Confirm**"
## Remove Member
1. Locate the member you want to remove
2. Click the "More actions" button (three dots icon)
3. Select "**Remove**" from the dropdown menu to remove the member
# SSH Keys
Source: https://docs.gmicloud.ai/cluster-engine/user-management/ssh-keys
Manage SSH keys used to access bare-metal servers and containers.
SSH keys are used to securely access your Bare Metal servers and Containers. You can import your existing SSH public key or let the system auto-generate a key pair for you.
## Access SSH Keys Management
1. Click your **avatar** in the top right corner
2. Select **"Member List"** from the dropdown menu to access Settings
3. Click **"SSH Keys"** in the left sidebar under the "Organization" section
## Add a New SSH Key
1. Click the **"Add new key"** button in the top right corner
2. Enter a **Name** for your SSH key
3. Choose a **Creation Mode**:
### Option 1: Import an Existing Key
Select **"Import"** to use your existing SSH public key:
1. Paste your SSH public key in the **SSH Key** field
2. Click **"Create"** to save
To get your SSH public key, run `cat ~/.ssh/id_rsa.pub` or `cat ~/.ssh/id_ed25519.pub` in your terminal.
### Option 2: Auto-create a Key Pair
Select **"Auto-create"** to let the system generate a key pair for you:
1. The system will automatically generate both public and private keys
2. Click **"Create"** to proceed
3. **Download both keys** in the next step - the private key will only be shown once
Make sure to download and securely store your private key. It will not be shown again after you close the dialog.
## Delete an SSH Key
1. Locate the SSH key you want to delete in the list
2. Click the **"Delete"** button in the Actions column
Deleting an SSH key will prevent access to any resources that use this key. Make sure you have alternative access methods before deleting.
## Using SSH Keys
Once you have added an SSH key, you can select it when:
* **Creating a Bare Metal server**: In Step 5 (Basic Information), select your SSH key from the dropdown
* **Creating a Container**: SSH access is available for official templates with port 22 exposed
After your resource is running, connect using:
```bash theme={null}
ssh root@ -i /path/to/your/private-key
```
# Claude Code
Source: https://docs.gmicloud.ai/coding-tools/claude-code
Run Anthropic's Claude Code CLI against GMI Cloud, no Claude Max subscription, no rate limits.
Claude Code is Anthropic's official CLI. By pointing it at GMI Cloud via `ANTHROPIC_BASE_URL`, you get the same Sonnet/Opus/Haiku models on a pay-as-you-go basis: no subscription, no session caps, no rate-limit walls on long sessions.
## Prerequisites
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* Claude Code installed
* A terminal running zsh or bash
* About 5 minutes
## Step 1. Get your GMI API key
1. Sign in to [console.gmicloud.ai](https://console.gmicloud.ai).
2. Open **Organization Settings → API Keys**.
3. **Create a new key** and copy it immediately.
## Step 2. Open your terminal
On macOS, open Terminal (or iTerm). On Linux, use your default shell.
## Step 3. Edit your shell config
```bash theme={null}
nano ~/.zshrc
```
If you're on bash, use `~/.bashrc` instead.
## Step 4. Append the GMI environment variables
Scroll to the end of the file and paste these lines, replacing `your_gmi_api_key_here` with the key you copied:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=your_gmi_api_key_here
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.6"
```
## Step 5. Save and reload
In nano: `Ctrl + X`, then `Y`, then `Enter`.
Reload the shell so the variables take effect:
```bash theme={null}
source ~/.zshrc
```
## Step 6. Log out of any prior Claude session
```bash theme={null}
claude /logout
```
## Step 7. Launch Claude Code
```bash theme={null}
claude
```
Claude Code skips the auth prompt and connects straight to GMI Cloud. No subscription, no rate limits.
## Tips
* Want a different default? Change `ANTHROPIC_MODEL` to any model in [the catalog](/model-quickstarts/text/overview).
* `API_TIMEOUT_MS=600000` (10 minutes) helps for long tool-use sessions; lower it if you prefer faster fail-fast behaviour.
* The env vars only apply to shells started after `source ~/.zshrc`. Open a fresh terminal if `claude` still asks you to log in.
## Next steps
* Try [Codex](/coding-tools/codex) or [Cursor](/coding-tools/cursor) with the same GMI account.
* Browse models in the [Text catalog](/model-quickstarts/text/overview).
* Stuck? Email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# Codex
Source: https://docs.gmicloud.ai/coding-tools/codex
Route OpenAI Codex CLI through GMI Cloud as a custom model provider.
OpenAI's Codex CLI lets you swap providers via a TOML config. Point it at GMI Cloud and you get the full GMI model catalog through Codex's native interface, chat, tool use, and the OpenAI Responses API all work as-is.
## Prerequisites
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* Codex CLI installed
* A terminal running zsh or bash
* About 5 minutes
## Step 1. Get your GMI API key
1. Sign in to [console.gmicloud.ai](https://console.gmicloud.ai).
2. Open **API Keys** and click **Create API Key**.
3. Copy the key now, it won't be shown again.
## Step 2. Export the key
Add this to your shell config (`~/.zshrc` or `~/.bashrc`):
```bash theme={null}
export GMI_API_KEY=your_gmi_api_key_here
```
Then reload:
```bash theme={null}
source ~/.zshrc
```
## Step 3. Configure Codex
Create or edit `~/.codex/config.toml`:
```toml theme={null}
# ~/.codex/config.toml
model = "openai/gpt-5.5"
model_provider = "gmi"
[model_providers.gmi]
name = "GMI Cloud"
base_url = "https://api.gmi-serving.com/v1"
env_key = "GMI_API_KEY"
wire_api = "responses"
[projects."/home/your-username"]
trust_level = "trusted"
[tui.model_availability_nux]
"gpt-5.5" = 2
```
Adjust two things for your setup:
* **`model`**: pick any model from the [GMI catalog](/model-quickstarts/text/overview). Defaults to `openai/gpt-5.5` here.
* **`[projects."/path"]`**: set this to the absolute path of the project directory you want Codex to trust without prompting.
The `wire_api = "responses"` line tells Codex to use OpenAI's Responses API, which GMI Cloud serves at `/v1/responses`.
## Step 4. Run Codex
```bash theme={null}
codex
```
Codex picks up the config, reads `GMI_API_KEY` from your environment, and talks to GMI Cloud directly.
## Tips
* Edit the `model` line in `config.toml` to switch defaults. You can also override per-session from inside the Codex UI.
* Browse model IDs in the [Text catalog](/model-quickstarts/text/overview), [Image catalog](/model-quickstarts/image/overview), and [Video catalog](/model-quickstarts/video/overview).
## Troubleshooting
* **`401 Unauthorized`**: `GMI_API_KEY` isn't exported in the shell where you launched Codex. Run `echo $GMI_API_KEY` to confirm.
* **`Unknown model`**: the `model` string must include the provider prefix (e.g. `openai/gpt-5.5`, not `gpt-5.5`).
* **Trust prompts on every run**: make sure the `[projects."..."]` path matches the directory you're running Codex from exactly.
## Next steps
* Try [Claude Code](/coding-tools/claude-code) or [Cursor](/coding-tools/cursor) with the same GMI account.
* Stuck? Email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# Cursor
Source: https://docs.gmicloud.ai/coding-tools/cursor
Use GMI Cloud models inside Cursor by overriding the OpenAI base URL.
Cursor lets you bring your own OpenAI-compatible endpoint. Point it at GMI Cloud and any model in the GMI catalog becomes available inside Cursor, chat, inline edits, and Composer all work.
## Prerequisites
* **Cursor Pro**: the "Override OpenAI Base URL" setting is gated behind the Pro plan. Free-plan accounts can't follow this guide.
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* Cursor installed
* About 5 minutes
## Step 1. Get your GMI API key
1. Sign in to [console.gmicloud.ai](https://console.gmicloud.ai).
2. Open **API Keys** → **Create API Key**.
3. Copy the key now, it won't be shown again.
## Step 2. Open Cursor's model settings
In Cursor, open **Settings → Models** (or `⌘ ,` then search "Models").
## Step 3. Add the GMI base URL
Scroll to **API Keys**.
1. Enable **OpenAI API Key** and paste your **GMI** API key into the field (Cursor uses the OpenAI key slot for any OpenAI-compatible provider).
2. Enable **Override OpenAI Base URL**.
3. Set the URL to:
```
https://api.gmi-serving.com/v1
```
That's the only base-URL change you need.
## Step 4. Add the models you want
In the **Models** list at the top of the settings page:
1. Click **Add or search model**.
2. Type the GMI model ID (e.g. `anthropic/claude-opus-4.7`, `zai-org/GLM-5.1-FP8`, `moonshotai/Kimi-K2.6`, `deepseek-ai/DeepSeek-V4-Pro`).
3. Toggle the new model **on**.
Repeat for each model you want to expose. Cursor will route requests to GMI under these names.
Browse model IDs in the [Text models catalog](/model-quickstarts/text/overview).
## Step 5. Use it
Open any chat or Composer panel and select one of your GMI-routed models from the dropdown. Inline edits and `⌘ K` work too.
## Tips
* **Mixing providers.** You can keep Cursor's built-in models on (Composer 2.5, Sonnet 4.6, etc.) and add GMI models alongside them. Cursor only uses the GMI base URL for models you added manually.
* **Bad model name.** If a request 404s, the model ID is wrong. GMI model IDs always include the provider prefix (e.g. `openai/gpt-5.5`, not `gpt-5.5`).
* **Pro required.** The OpenAI API Key field alone doesn't change routing, both toggles (key + base URL override) must be on.
## Next steps
* Try [Claude Code](/coding-tools/claude-code) or [Codex](/coding-tools/codex) with the same GMI account.
* Stuck? Email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# Factory
Source: https://docs.gmicloud.ai/coding-tools/factory
Install Factory's Droid CLI and connect it to GMI Cloud in under 5 minutes.
Droid is Factory's agent-native coding agent that runs in your terminal. Connect it to GMI Cloud and any model in the GMI catalog becomes available for reading files, reasoning about code, and making edits, directly from the CLI.
## Prerequisites
* A Mac, Linux, or Windows machine with a terminal
* A GMI Cloud account at [console.gmicloud.ai](http://console.gmicloud.ai)
* About 5 minutes
## Step 1. Install Droid
Run this command in your terminal:
```bash theme={null}
curl -fsSL https://app.factory.ai/cli | sh
```
The installer prints a line to add Droid to your `PATH`. Append it to your shell config and reload:
```bash theme={null}
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```
*Tip: Use* `~/.zshrc `*instead of* `~/.bashrc `*if you're on zsh. On Linux, also install* `xdg-utils sudo apt-get install xdg-utils`*) so the browser sign-in works.*
Verify the install worked:
```bash theme={null}
droid --version
```
## Step 2. Sign in and choose BYOK
Launch Droid for the first time:
```bash theme={null}
droid
```
A browser opens for onboarding. Sign in, select your organization, then choose how you'll get models. Select **Use Your Own API Keys**, the BYOK path that lets Droid run on your GMI Cloud key.
When you see the confirmation that the CLI is installed, close the tab and return to your terminal.
*Note: Signing in authenticates you to Factory. Your GMI Cloud key, configured next, is what actually runs inference. Choosing the managed plan instead routes requests through Factory's own models, not GMI.*
## Step 3. Connect GMI Cloud
Store your GMI Cloud key as an environment variable so it stays out of the config file:
```bash theme={null}
echo 'export GMI_API_KEY="your-gmi-key-here"' >> ~/.bashrc
source ~/.bashrc
```
Get your key from [console.gmicloud.ai](http://console.gmicloud.ai): open **API Keys**, create a key, and copy it.
Then add GMI Cloud to Droid's config at `~/.factory/settings.json`:
```bash theme={null}
mkdir -p ~/.factory
cat > ~/.factory/settings.json << 'EOF'
{
"customModels": [
{
"model": "zai-org/GLM-5.2-FP8",
"displayName": "GLM-5.2 (GMI Cloud)",
"baseUrl": "https://api.gmi-serving.com/v1",
"apiKey": "${GMI_API_KEY}",
"provider": "generic-chat-completion-api",
"maxOutputTokens": 16384
}
]
}
EOF
```
Set `model` to the exact model ID from the Text catalog. The example uses GLM-5.2; swap in any model from the table in Step 4. Add more entries to the `customModels` array to keep several models on hand.
*Note:* `baseUrl `*is always* `https://api.gmi-serving.com/v1`*, and* `provider `*is* `generic-chat-completion-api `*because GMI Cloud is OpenAI-compatible. If* `~/.factory/settings.json `*already has settings, add the* `customModels `*key alongside them instead of overwriting the file.*
GMI Cloud is now connected.
## Step 4. Pick a model
Start Droid in any project:
```bash theme={null}
cd your-project
droid
```
Type:
```text theme={null}
/model
```
The model picker opens. Your GMI Cloud models appear in the **Custom models** section at the bottom of the list, below Factory's built-in models. Select your GMI model and press **Enter**.
Recommended models for coding:
| Model | Best for |
| :------------------- | :-------------------------------- |
| Qwen3-Coder-480B | Best coding quality |
| DeepSeek V4 Pro | Complex reasoning & hard problems |
| Claude Sonnet 4.6 | Balanced quality + speed |
| Claude Opus 4.7 Fast | Fast, high-quality responses |
| DeepSeek V4 Flash | Lightweight, quick tasks |
*Tip: Factory recommends models with at least 30B parameters for agentic coding. Smaller models work for experimentation but struggle with multi-step engineering tasks.*
## Step 5. Start coding
You're all set. Type any task in the prompt and hit **Enter**:
```text theme={null}
Fix the broken tests in this project
```
```text theme={null}
Explain what this codebase does
```
```text theme={null}
Refactor this function to be more readable
```
Droid reads your files, reasons about the code, and makes changes directly.
## Useful commands
| Command | What it does |
| :-------- | :--------------------------------------- |
| `/model` | Switch the active model |
| `/limits` | Manage plan and usage preferences |
| `/auto` | Set how much Droid can do without asking |
*Note: Seeing **"No active subscription found"** on startup? That's expected with BYOK. Droid opens on a Factory-managed model that needs a paid plan. Select your GMI model from the Custom models section at the bottom of* `/model `*and the warning no longer applies to your session.*
## Next steps
* Try Claude Code, Codex, or Cursor with the same GMI account.
* Factory docs: [docs.factory.ai](http://docs.factory.ai)
# Kilo
Source: https://docs.gmicloud.ai/coding-tools/kilo
Run the Kilo Code CLI against GMI Cloud, 500+ models in your terminal, pay-as-you-go pricing.
Kilo Code is an open-source AI coding agent for your terminal. GMI Cloud ships as a built-in provider, so connecting takes one keyboard shortcut and an API key: no config files, no subscription, no rate-limit walls on long sessions.
## Prerequisites
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai/)
* Node.js 18 or later
* A terminal running zsh or bash
* About 3 minutes
## Step 1. Get your GMI API key
1. Sign in to [console.gmicloud.ai](https://console.gmicloud.ai/).
2. Open **API Keys** at the top right corner.
3. **Create API key** and copy it immediately.
## Step 2. Install Kilo Code
```bash theme={null}
npm install -g @kilocode/cli
```
Confirm the install:
```bash theme={null}
kilo --version
```
## Step 3. Launch Kilo in your project
```bash theme={null}
cd ~/your-project
kilo
```
## Step 4. Connect GMI Cloud
1. Type `/models` to open the model picker.
2. Press **Ctrl + A** to connect a provider.
3. Scroll to **GMI Cloud** and press Enter.
4. Paste your GMI API key and confirm.
5. Pick your variant.
Kilo stores the key in its local auth store. You only do this once.
## Step 5. Start coding
Ask for a change directly in the session:
```text theme={null}
Add input validation to the signup form
```
Or run a one-shot prompt from your shell:
```bash theme={null}
kilo "add input validation to the signup form"
```
Kilo plans the change, edits files, and runs commands, all routed through GMI Cloud.
## Tips
* Switch models any time with `/models`. Kilo is model-agnostic, so match the model to the task: fast variants for quick edits, larger reasoning models for architecture and debugging.
* Agentic coding leans on tool calling. Pick catalog models with function-calling support for the best results.
* Set a default model in `~/.config/kilo/kilo.json` with `"model": "provider_id/model_id"`, using the exact string shown in the picker.
* Prefer manual configuration? Add GMI Cloud as an OpenAI-compatible provider with base URL `https://api.gmi-serving.com/v1` and any model ID from the LLM catalog. Keep the trailing `/v1`.
* Autonomous mode runs without interaction, useful in CI: `kilo --auto "run the test suite and fix failures" --timeout 300`.
## Next steps
* Try Claude Code or Codex with the same GMI account.
* Stuck? Email [support@gmicloud.ai](mailto:support@gmicloud.ai).
# OpenCode
Source: https://docs.gmicloud.ai/coding-tools/opencode
Install OpenCode and connect it to GMI Cloud in under 5 minutes.
OpenCode is an open-source AI coding agent that runs in your terminal. Connect it to GMI Cloud and any model in the GMI catalog becomes available for reading files, reasoning about code, and making edits, directly from the TUI.
## Prerequisites
* A Mac, Linux, or Windows machine with a terminal
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* About 5 minutes
## Step 1. Install OpenCode
Run this command in your terminal:
```bash theme={null}
curl -fsSL https://opencode.ai/install | bash
```
Verify the install worked:
```bash theme={null}
opencode --version
```
You should see a version number like `1.15.11`.
## Step 2. Open OpenCode in your project
Navigate to any code project and launch OpenCode:
```bash theme={null}
cd your-project
opencode
```
The OpenCode TUI (terminal interface) opens.
## Step 3. Connect GMI Cloud
Inside OpenCode, type:
```
/connect
```
A provider list appears. Scroll down, select **GMI Cloud**, then press **Enter**.
When prompted for an API key:
1. Go to [console.gmicloud.ai](https://console.gmicloud.ai).
2. Open **API Keys** and copy your key.
3. Paste it into OpenCode and press **Enter** to confirm.
GMI Cloud is now connected.
## Step 4. Pick a model
Inside OpenCode, type:
```
/models
```
The model picker opens showing all available GMI Cloud models.
Recommended models for coding:
| Model | Best for |
| -------------------- | --------------------------------- |
| Qwen3-Coder-480B | Best coding quality |
| DeepSeek V4 Pro | Complex reasoning & hard problems |
| Claude Sonnet 4.6 | Balanced quality + speed |
| Claude Opus 4.7 Fast | Fast, high-quality responses |
| DeepSeek V4 Flash | Lightweight, quick tasks |
Select a model and press **Enter**.
## Step 5. Start coding
You're all set. Type any task in the prompt and hit **Enter**:
```
Fix the broken tests in this project
```
```
Explain what this codebase does
```
```
Refactor this function to be more readable
```
OpenCode reads your files, reasons about the code, and makes changes directly.
## Useful commands
| Command | What it does |
| ---------- | ------------------------- |
| `/connect` | Add or switch AI provider |
| `/models` | Switch the active model |
| `Ctrl + P` | Open command palette |
| `Ctrl + C` | Cancel current response |
| `Esc` | Close any menu |
## Next steps
* Try [Claude Code](/coding-tools/claude-code), [Codex](/coding-tools/codex), or [Cursor](/coding-tools/cursor) with the same GMI account.
* Browse models in the [Text catalog](/model-quickstarts/text/overview).
* OpenCode docs: [opencode.ai/docs](https://opencode.ai/docs)
# Workflow Canvas
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/canvas
Tour of the GMI Studio editor: canvas, palettes, inspector, and toolbars.
The canvas is a ComfyUI-based visual editor. Workflows are graphs of **nodes** wired together by their **input / output sockets**.
## Editor surface
The editor has six concurrent surfaces.
| Surface | Where | Purpose |
| ------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------- |
| **Top bar** | Above canvas | Workflow name, save status, **save**, **Run** |
| **Inner side toolbar** | Strip at the canvas left edge | Six icons: Library, Assets, Toolbox, Comfy Library, Undo, Redo |
| **Left palette** | Flips out from the inner toolbar | Browse and place nodes (Model Library, Assets, Toolbox, Comfy Library) |
| **Canvas** | Center | Nodes, wires, group boxes |
| **Right inspector** | Slides in when a node or the canvas is clicked | Per-node Parameters / Info / Settings, or the Workflow Overview |
| **Bottom-right controls** | Below canvas | Cursor mode, zoom %, fit-to-view, minimap, hide-overlays |
A stats panel at bottom-left shows `T` (run time), `I` (iteration), `N` (nodes / selected), `V` (views), and `FPS`.
## Inner side toolbar
Six icons stacked vertically against the canvas:
1. **Library**, the Model Library palette (Audio / Image / Video / LLM / Task).
2. **Assets**, the Assets palette (Save / Load Image, Save Audio (FLAC / MP3 / Opus), Load 3D & Animation, Preview 3D & Animation).
3. **Toolbox**, image / LLM / video tools plus Comfy Library entries.
4. **Comfy Library**, the full Comfy node tree (Audio, latent, image, …).
5. **Undo** (`Cmd+Z`).
6. **Redo** (`Cmd+Shift+Z`).
Click an active icon again to collapse the palette.
## Model Library
The default palette has five category tabs.
### Audio
Text-to-speech models. Cards include ElevenLabs TTS V3 / V2, Inworld 1.5 Mini / Max TTS, and more. Each card shows the provider, short description, and per-request price.
| Input Type | What it does | Example Models |
| :-------------------------- | :--------------------------------------- | :--------------------------- |
| Text → Audio | Converts text to natural-sounding speech | Inworld, MiniMax, ElevenLabs |
| Text + Voice Sample → Audio | Clones a voice and speaks the given text | Inworld, MiniMax, Step Audio |
Only WAV and MP3 file formats are supported for audio uploads.
### Image
Categories: Image Editing, Text-to-Image. Models include Bria Fibo, ByteDance Seedream 3 / 4 / 5, Google Gemini image, GPT-Image-2, Hunyuan, Luma Uni, Reve, and more.
| Input Type | What it does | Example Models |
| :------------------- | :---------------------------------- | :--------------------------------------------- |
| Text → Image | Generates an image from a prompt | Gemini, Seedream, Tongyi (Alibaba), Reve, BRIA |
| Image → Image | Edits or transforms an image | SeedEdit, Reve, BRIA |
| Image + Mask → Image | Fills or replaces a selected region | BRIA |
### Video
Categories cover Text-to-Video, Image-to-Video, Video-to-Video, Audio-to-Video. Providers: Veo3, Sora-2 / 2-Pro, Kling, Aliyun Wan, BytePlus Seedance, PixVerse, MiniMax Hailuo, LTX-2, Vidu, Luma Ray, SkyReels, HeyGen, GMI workflow models, Bria video tools.
| Input Type | What it does | Example Models |
| :------------ | :------------------------------------ | :-------------------------------------------------------------- |
| Text → Video | Generates a video from a text prompt | Wan, Veo, Sora, Kling, MiniMax Hailuo, PixVerse, Seedance, Luma |
| Image → Video | Animates a still image into a video | Wan, Kling |
| Video → Video | Edits or transforms an existing video | Wan, Kling, BRIA |
### LLM
All inference-side language models, grouped by category. This is the same catalog you see on the [Inference Model Hub](/inference-engine/ie-intro#model-hub).
### Task
Task-specific image operations such as Bria Eraser, Bria Genfill, Bria Fibo Edit, Bria Fibo Restyle, Bria Fibo Recolor.
Click any model card to place that node at the canvas cursor. For the universal search across every catalog, see [Library, Search & Blueprints](/gmi-studio/gmi-studio-user-manual/library-and-search).
## Assets palette
Holds the I/O building blocks: Save Image, Load Image, Save Audio variants (FLAC / MP3 / Opus), Load 3D & Animation, Preview 3D & Animation, and document loaders.
## GMI Official vs ComfyUI nodes
| | GMI Official Nodes | ComfyUI Nodes |
| :---------------- | :----------------------------- | :--------------------------------- |
| **Best for** | Quick setup, managed inference | Fine-grained control, custom logic |
| **Control level** | Simplified inputs / outputs | Full node-level customization |
| **Performance** | Optimized, fully managed | Depends on workflow configuration |
GMI Official nodes wrap each model behind a clean input / output surface and run on managed infrastructure. ComfyUI nodes are sourced directly from the upstream Comfy repo for users who need lower-level building blocks.
## Right inspector, per node
Click a node and the right inspector opens with three tabs.
### Parameters
Every input the node exposes. For an LLM node: `model`, `prompt`, `temperature`, `max_tokens`, system prompt, `image_url`, `video_url`. Each row has a `⋮` menu to **favorite** the input (it then shows up at Workflow Overview > Parameters).
### Info
Node header, identifier, and (when present) a description of what the node does. Some nodes show pricing here.
### Settings
* **Node state**: `Normal`, `Bypass`, `Mute`.
* **Node color**: 10 preset swatches.
* **Pinned**: toggle.
## Selected node toolbar
Clicking a node header pops a contextual toolbar above it.
| Icon | Action |
| ---- | -------------------------------------------- |
| 🗑️ | Delete node |
| ⓘ | Toggle Info / open Inspector |
| 🟡 ▾ | Node color picker |
| ⤓ | Collapse / Resize |
| ↪ | Bypass |
| ▶ | Run Branch (run just this node and upstream) |
| ⋮ | More menu (see below) |
### Node "More" menu
Per-node actions: **Rename**, **Copy** `Ctrl+C`, **Duplicate** `Ctrl+D`, **Clone**, **Run Branch**, **Pin**, **Bypass** `Ctrl+B`, **Convert to Subgraph**, **Minimize Node**, **Collapse**, **Resize**, **Node Info**, **Color**, **Shape**, **Extensions**.
### Widget right-click
Right-clicking a widget input (e.g. `image_url`) exposes widget-level actions:
Highlights: **Favorite Widget** (pin to Workflow Overview > Parameters), **Rename Widget**, **Convert to Subgraph**, **Convert Widget to Input** (so it accepts a wired connection instead of inline editing).
## Workflow Overview
Click the canvas background with no node selected and the inspector switches to **Workflow Overview** with three tabs.
### Parameters
Lists every input you've **favorited** from individual node Parameters. This is the workflow's parameter surface, what a consumer of the workflow (or someone running it via API) actually has to fill in.
Empty state: "NO FAVORITED INPUTS. Inputs you favorite will show up here. In the Parameters tab, click `⋮` on any input to add it here."
### Nodes
Flat list of every node in the workflow. Each row has quick actions: reset, target (center camera on node), expand details.
### Global Settings
* **NODES**: Show advanced parameters, Show toolbox on selection, Nodes 2.0.
* **CANVAS**: Grid spacing (default 10), Snap nodes to grid.
* **CONNECTION LINKS**: Link shape, Show connected links.
* **View all settings** opens the full app settings.
## Wiring nodes
Each node exposes:
* **Output sockets** on the right edge, coloured dots labelled by their data type (`IMAGE`, `MASK`, `LATENT`, `STRING`, `content`, …).
* **Input sockets or widgets** on the left edge, either small dots for raw inputs, or full-width widget bars (`image_url`, `video_url`, `model`, `prompt`) that double as both editable widget and connection point.
To wire two nodes, drag from an output socket to a compatible input socket. The cursor shows a coloured curve as you drag, and only matching types accept the drop.
A widget input shows its tooltip on hover:
If you want a widget to behave purely as a linked input (no inline editing), right-click and pick **Convert Widget to Input**.
## Canvas right-click menu
Right-click on empty canvas to add nodes, groups, paste, or save selections as templates.
* **Add Node** (submenu of every node category)
* **Add Group**
* **Paste**
* **Manage Group Nodes**
* **Add Group For Selected Nodes**
* **Save Selected as Template** (becomes a Blueprint, see [Library, Search & Blueprints](/gmi-studio/gmi-studio-user-manual/library-and-search))
* **Node Templates**
## Top bar
* Workflow name, click the breadcrumb to rename.
* **Saved a few seconds ago** live save indicator (auto-save fires on every change).
* **save**, force-save now.
* **Run**, execute the entire workflow.
Saving never overwrites a published workflow without confirmation. Runs spend credits according to the model nodes in the graph.
## Bottom-right controls
* **Cursor mode**: selection vs pan.
* **Fit-to-view** (crosshair): re-frames the canvas around every node.
* **Zoom %**: preset zoom levels.
* **Minimap toggle**: show or hide the floating minimap.
* **Hide overlays**: temporarily clear UI overlays for a clean canvas.
## Next steps
* [Library, Search & Blueprints](/gmi-studio/gmi-studio-user-manual/library-and-search) for the universal node search.
* [Running a Workflow](/gmi-studio/gmi-studio-user-manual/running-a-workflow) to execute and retrieve outputs.
* Per-node docs: [Image Nodes](/gmi-studio/nodes/image/overview), [Video Nodes](/gmi-studio/nodes/video/overview), [LLM Node](/gmi-studio/nodes/llm/llm-node).
# FAQ
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/faq
Common questions about running, sharing, and queueing workflows in GMI Studio.
## Why can't I run this workflow?
Make sure the workflow is fully connected, required inputs are set, and connection types match. Also check your account credit and GPU usage limits.
## How do I share my workflow?
Publish the workflow from the canvas toolbar. Published workflows go to the Workflow Gallery for others to view, run, or duplicate.
## Why is my GPU queue long?
Queue times depend on GPU availability and overall workload demand. Try again in a few minutes, or pick a smaller/faster model variant if available.
## Need more help?
* Email [support@gmicloud.ai](mailto:support@gmicloud.ai)
* Visit [console.gmicloud.ai](https://console.gmicloud.ai)
# Getting Started
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/getting-started
Sign in, find your way around the console, and create your first workflow.
Sign in to GMI Cloud, find your way around the console, and create your first workflow.
## Prerequisites
* A GMI Cloud account at [console.gmicloud.ai](https://console.gmicloud.ai)
* A modern browser (Chrome, Edge, Safari, Firefox)
## Step 1. Sign in
1. Open the [GMI Cloud Workflows console](https://console.gmicloud.ai/user-console/ie/my-workflows).
2. Click **Sign In** in the top-right corner.
3. Create a new account or sign in with an existing one.
## Step 2. Tour the console
The landing page has two entry points:
* **Create Workflow**: start a new workflow from scratch using the workflow editor.
* **Workflow Templates**: pick a prebuilt template for common use cases.
Once you're inside the **My Workflow** page, the left navigation links to workflows, deployments, and settings. Your recent and saved workflows live in **My Workflow**.
## Step 3. Create a workflow
1. Click **Create Workflow**.
2. Enter a name and optional description.
3. Click **Save** to open the workflow editor.
## Next steps
* Learn the editor: [Workflow Canvas](/gmi-studio/gmi-studio-user-manual/canvas).
* Try a tutorial: [Step-by-Step Tutorials](/gmi-studio/gmi-studio-user-manual/tutorials).
# Introduction
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/introduction
Visual workflow editor for running open-source-based AI pipelines on GMI Cloud GPUs.
GMI Studio is a cloud-native workflow editor and execution environment for running open-source-based AI pipelines on GMI Cloud's GPU infrastructure. Compose workflows visually using nodes and run multimodal inference directly in the browser.
## Who is it for
* AI creators and artists building image, video, LLM, and audio workflows
* Engineers prototyping or deploying inference pipelines
* Teams collaborating on reproducible AI workflows
Because all execution runs on **GMI Cloud's managed GPU backend**, you don't need personal hardware GPUs or local GPU setup to build or run workflows.
## Key concepts
* **Workflows**: directed graphs defining how nodes connect and execute
* **Nodes**: individual functional units (e.g., upload, inference, save)
* **Sessions**: a single execution run of a workflow
* **Execution engine**: GMI's backend system that schedules and runs workflows on GPUs
## Console layout
The GMI Studio console organizes work into four areas:
* **Workflow Gallery**: curated templates and community-shared workflows. Most support **One-Click Execution**: run them instantly, no node graph required. The topology is hidden and only the required inputs are exposed.
* **My Workflows**: your personal workspace for managing workflows you created or duplicated. Search by name, create new workflows, and use the **Actions (⋯)** menu to edit metadata, duplicate, or delete. Workflows show **Last modified** and **Created at** timestamps.
* **Team Space**: a shared workspace where teammates can co-author workflows. Each entry lists its **Permission** (e.g. Can edit, Can view), **Last modified by**, and **Created at**. Use **Create Workflow** to start a new shared workflow, **Filter by workflow name** to search, and **Subscribe** to follow updates from other team members.
* **My Media**: a gallery of every asset you've generated (images, videos, audio) across all your workflow runs. Preview, download, or reuse outputs without re-running the workflow.
## Where to start
Sign in, open the console, create your first workflow.
Tour the editor: node library, canvas basics, toolbar.
Step-by-step examples for image, video, audio, and batch workflows.
Per-node docs for image, video, and LLM nodes.
# Library, Search & Blueprints
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/library-and-search
Universal node search, Blueprints, Comfy, Partner, and Extensions filters in GMI Studio.
The Studio canvas is fed by a layered node browser:
1. The **Model Library** palette on the left (Audio, Image, Video, LLM, Task tabs).
2. The **Assets** and **Toolbox / Comfy Library** palettes accessed from the other inner-toolbar icons.
3. The **universal node search**, opened by **double-clicking** anywhere on the canvas, which spans every catalog above plus **Blueprints** (saved subgraphs / use cases), **Partner** models, and **Extensions**.
This page covers the universal search, where the recommendation system, "use cases", and tasks all live.
## Opening the search
Double-click on an empty area of the canvas. The "Add a node…" dialog appears:
The dialog has three regions:
* **Top filter pills**: layout toggle (sidebar / no sidebar), **Blueprints**, **Comfy**, **Partner**, **Extensions**, **Input ▾**, **Output ▾**.
* **Left category sidebar**: contextual to the active filter. Default is **Most relevant** (heuristic).
* **Result list** (center): one row per match. Tag chips on the right show source (Blueprint / Documents / GMI\_Nodes / …).
* **Right preview panel**: detail of the highlighted result with INPUTS / OUTPUTS, description, and quick "Add" affordance.
A text search at the top searches across every catalog regardless of which filter pill is active. Pressing `Enter` adds the highlighted node to the canvas at the click position.
## Blueprints, Use Cases
The **Blueprints** filter is GMI Studio's library of prebuilt mini-workflows (called subgraph blueprints). Think of them as **use-case starting points**: drop one onto the canvas and you get a ready-to-tweak subgraph instead of having to wire from scratch.
Categories shown in the sidebar:
* **Subgraph Blueprints** (top-level)
* **3D**
* **Audio**
* **Image generation**
* **Image Tools**
* **Text generation**
* **Video generation**
* **Video Tools**
Sample blueprints:
| Blueprint | Category | Description |
| ---------------------------------- | ------------------------ | --------------------------------- |
| Brightness and Contrast | Image Tools / Color | User generated subgraph blueprint |
| Image Captioning (gemini) | Text generation / Image | User generated subgraph blueprint |
| Text to Image (Flux.1 Dev) | Image generation | User generated subgraph blueprint |
| Image Inpainting (Flux.1 Fill Dev) | Image generation | User generated subgraph blueprint |
| Image Blur | Image Tools / Blur | User generated subgraph blueprint |
| Prompt Enhance | Text generation / Prompt | User generated subgraph blueprint |
The right panel previews the blueprint as if it were a single node, its INPUTS and OUTPUTS, because that's exactly how a subgraph behaves once placed.
## Comfy, native ComfyUI nodes
The **Comfy** filter narrows results to native ComfyUI nodes (anything sourced from the upstream ComfyUI repo). The sidebar categories include Comfy, Assets, audio, Comfy Library, image, latent, Model Library, Toolbox, utils.
Examples: VAE Decode, VAE Encode, SaveSVGNode, Image Stitch, ResizeAndPadImage, ImageFlip. The right preview shows the canonical input/output spec of each node. For example, **VAE Decode** has INPUTS `samples LATENT` + `vae VAE` and OUTPUTS `IMAGE`.
## Partner, provider model nodes
The **Partner** filter shows nodes contributed by integrated partners. The sub-category **Use Case Models** is GMI's curated set of single-purpose model nodes that do exactly one thing well.
Sidebar: Partner / api node / Assets / Model Library.
Sample partner nodes (Bria family):
| Node | Sub-category | Description |
| --------------------------- | ------------------------------------ | ----------------------------------------------------- |
| Bria Fibo | Model Library / General Image Models | Generate a single image from text prompt |
| Bria Eraser | Model Library / Use Case Models | Generate a single image from text prompt with a mask |
| Bria Genfill | Model Library / Use Case Models | Generate a single image from text prompt using a mask |
| Bria Fibo Edit | Model Library / Use Case Models | Generate a single image from text prompt using a mask |
| Bria Fibo Restyle / Recolor | Model Library / Use Case Models | Restyle or recolor an image |
The right panel of Bria Fibo shows the standard model-node shape: INPUTS `prompt STRING`, OUTPUTS `image IMAGE` / `image_url STRING` / `file_name STRING`.
## Extensions, GMI-specific & document tools
The **Extensions** filter surfaces nodes tagged `GMI_Nodes` (Studio-specific utilities) and `Documents` (document processing).
Sample extension nodes:
| Node | Tag | Sub-category |
| ------------------------------- | ---------- | ----------------------------- |
| Image Remove Background (rembg) | GMI\_Nodes | Toolbox / Image Utilities |
| Detail Transfer | GMI\_Nodes | Toolbox / Image Utilities |
| Document Loader | Documents | Assets / document\_processing |
| PDF to Image (Multi-Page) | Documents | Assets / document\_processing |
| PDF Page Splitter | Documents | Assets / document\_processing |
| Image Selector | Documents | Assets / document\_processing |
The right panel for **Image Remove Background** shows `image IMAGE` + `model COMBO` (e.g. `u2net`) inputs and `IMAGE` / `MASK` outputs.
## Type filters, Input and Output
The **Input ▾** and **Output ▾** pills open a multi-select dropdown of data types:
Types include `*` (any), `AUDIO`, `AUDIO_UI`, `BOOLEAN`, `BOUNDING_BOX`, `COMBO`, `FILE_3D`, and many more. Use these to find "every node that takes an `IMAGE`" or "every node that produces a `MASK`".
This is the recommendation engine in its purest form. Combined with the type filter on the socket you're trying to satisfy, it shows you exactly the nodes that can wire into your current selection.
## Adding a result to the canvas
* **Click** a row to highlight and preview.
* **Press Enter** or **double-click** the row to add it at the cursor position.
* **Drag** the row onto a specific spot on the canvas.
Newly-added nodes inherit the canvas default color. Use the [node selection toolbar](/gmi-studio/gmi-studio-user-manual/canvas) to recolor them.
## Saving your own blueprints
Any selection of nodes plus connections can become a blueprint:
1. Select the nodes (drag a marquee or `Shift+click`).
2. Right-click and choose **Save Selected as Template** (visible in the [canvas right-click menu](/gmi-studio/gmi-studio-user-manual/canvas)).
3. The saved template becomes a **User generated subgraph blueprint** and shows up under **Blueprints** in this search dialog.
This is how teams build internal use-case libraries. Once a wiring pattern is good, save it as a blueprint and your teammates can find it in seconds.
# Managing Workflows
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/managing-workflows
Where your workflows, shared team work, and generated media live in the GMI Studio console.
Once you've built workflows, the console gives you three places to find them again: your personal workspace, your team's shared space, and the gallery of everything they've produced.
## My Workflows
Your personal workspace for managing workflows you created or duplicated.
* **Search**: filter by workflow name.
* **Create Workflow**: start a new one from scratch.
* **Actions (⋯)** on each row:
* **Edit metadata**: rename, update description, change tags.
* **Duplicate**: make a copy. The original is untouched, useful for experimentation.
* **Delete**: remove a workflow you no longer need. Deleted workflows are not recoverable.
Rows show **Last modified** and **Created at** timestamps for quick scanning.
To edit the actual node graph, click a workflow's name to open it in the [Workflow Canvas](/gmi-studio/gmi-studio-user-manual/canvas).
## Team Space
A shared workspace where teammates can co-author workflows.
Each row lists:
* **Permission**: `Can edit`, `Can view`.
* **Last modified by**: which teammate last touched the workflow.
* **Created at**: original creation timestamp.
Use **Create Workflow** to start a new shared workflow, **Filter by workflow name** to search, and **Subscribe** to follow updates from other team members.
## My Media
A gallery of every asset your workflow runs have generated, images, videos, and audio.
Preview, download, or reuse outputs without re-running the workflow. Useful for picking the best result out of a batch or pulling assets into another tool.
## Publishing a workflow
Published workflows show up in the **Workflow Gallery**, where other users can run them with one click (the node graph is hidden, only required inputs are exposed). Publish from the canvas toolbar when a workflow is ready to share.
## Next steps
* Build a new workflow: [Workflow Canvas](/gmi-studio/gmi-studio-user-manual/canvas).
* Walk through an example: [Tutorials](/gmi-studio/gmi-studio-user-manual/tutorials).
# Running a Workflow
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/running-a-workflow
Execute workflows, track progress, handle errors, and retrieve outputs.
Execute a workflow, track progress, handle errors, and retrieve outputs.
## How execution works
Nodes execute in the order defined by the workflow graph, respecting dependencies and input/output connections.
## Required vs optional inputs
* **Required inputs** must be set for the workflow to be valid.
* **Optional inputs** add extra control (e.g., image uploads, aspect ratio).
## Monitoring execution
Track workflow progress using:
* Progress bar
* Prompt execution status
* Output preview
## Handling errors
Errors appear in the execution panel with messages indicating which node failed and why. Fix the input or reconnect the upstream node, then click **Run** again.
## Retrieving outputs
You must **add a Save node** to retrieve workflow outputs.
| Modality | Save node |
| :------- | :--------- |
| Image | Save Image |
| Audio | Save Audio |
| Video | Save Video |
Right-click a Save node to download the generated output (image, video, or audio) to your local machine.
## Next steps
* Try a guided example: [Step-by-Step Tutorials](/gmi-studio/gmi-studio-user-manual/tutorials).
* Manage saved workflows: [Managing Workflows](/gmi-studio/gmi-studio-user-manual/managing-workflows).
# Tutorials
Source: https://docs.gmicloud.ai/gmi-studio/gmi-studio-user-manual/tutorials
Step-by-step examples for image, video, audio, and batch workflows.
Guided examples for the four core workflow shapes. Each starts from a blank canvas.
## Image generation
1. Create a new workflow in GMI Studio.
2. Add **GMI Image Upload** (optional for text-to-image).
3. Add **GMI → Image Generation** node.
4. Fill out **prompt** (required) and optional parameters (`aspect_ratio`, `version`, `output_quality`).
5. Add **Image → Save Image**.
6. Click **Run**.
## Video generation
1. Create a new workflow.
2. Optionally add **GMI Image Upload**.
3. Add **GMI → Video Generation** node.
4. Fill out **prompt** and optional parameters (`duration`, `resolution`).
5. Add **Video → Save Video**.
6. Click **Run**.
## Audio generation
1. Create a new workflow.
2. Add **GMI → Audio Generation** node.
3. Fill out **prompt** and optional parameters (`voice`, `speed`, `quality`).
4. Add **Audio → Save Audio**.
5. Click **Run**.
## Batching images
1. Add up to 10 **GMI Image Upload** nodes (one per image).
2. Add **GMI → Utils → Image → GMI Batch Images** node.
3. Connect every Image Upload output to the batch node.
4. Connect the batched output to a generation node (image or video).
5. Click **Run**.
## Next steps
* Browse the [Node Reference](/gmi-studio/nodes/image/overview) for per-node parameters.
* Troubleshoot: [FAQ](/gmi-studio/gmi-studio-user-manual/faq).
# Image Nodes
Source: https://docs.gmicloud.ai/gmi-studio/nodes/image/overview
Image generation and editing nodes for GMI Studio workflows.
Image generation and editing nodes for GMI Studio workflows.
| Node | Model |
| ---------------------------------------------------------- | -------------------------- |
| [Reve Create](/gmi-studio/nodes/image/reve-create) | `reve-create-20250915` |
| [Reve Edit](/gmi-studio/nodes/image/reve-edit) | `reve-edit-20250915` |
| [Reve Edit Fast](/gmi-studio/nodes/image/reve-edit-fast) | `reve-edit-fast-20251030` |
| [Reve Remix](/gmi-studio/nodes/image/reve-remix) | `reve-remix-20250915` |
| [Reve Remix Fast](/gmi-studio/nodes/image/reve-remix-fast) | `reve-remix-fast-20251030` |
# Reve Create
Source: https://docs.gmicloud.ai/gmi-studio/nodes/image/reve-create
Generates an image from a text prompt using the Reve text-to-image model.
Generates an image from a text prompt using the Reve text-to-image model.
**Model**
```bash theme={null}
reve-create-20250915
```
## Inputs
* **prompt (required)**
* Type: STRING
* Description: Text prompt describing the image to generate.
* **aspect\_ratio (optional)**
* Type: ENUM
* Options: 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 1:1
* Default: 3:2
* Description: Controls the aspect ratio of the generated image.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Reve Edit
Source: https://docs.gmicloud.ai/gmi-studio/nodes/image/reve-edit
Edits an image using a reference image and a text prompt.
Edits an image using a reference image and a text prompt.
**Model**
```bash theme={null}
reve-edit-20250915
```
## Inputs
* **prompt (required)**
* Type: STRING
* Description: Text prompt describing how the image should be edited.
* **image (optional)**
* Type: IMAGE
* Description: Reference image from ComfyUI used as input.
* **image\_url (optional)**
* Type: STRING
* Description: URL of a reference image (used if IMAGE input is not provided).
* **aspect\_ratio (optional)**
* Type: ENUM
* Options: "", 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 1:1
* Description: Controls output image aspect ratio.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Reve Edit Fast
Source: https://docs.gmicloud.ai/gmi-studio/nodes/image/reve-edit-fast
Fast version of image editing using a reference image and text prompt.
Fast version of image editing using a reference image and text prompt.
**Model**
```bash theme={null}
reve-edit-fast-20251030
```
## Inputs
* **prompt (required)**
* Type: STRING
* Description: Text prompt guiding the image edit.
* **image (optional)**
* Type: IMAGE
* Description: Reference image from ComfyUI.
* **image\_url (optional)**
* Type: STRING
* Description: URL of reference image if IMAGE input is not used.
* **aspect\_ratio (optional)**
* Type: ENUM
* Options: "", 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 1:1
* Description: Controls output image aspect ratio.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Reve Remix
Source: https://docs.gmicloud.ai/gmi-studio/nodes/image/reve-remix
Generates an image from 1–6 reference images combined with a text prompt.
Generates an image from 1–6 reference images combined with a text prompt.
**Model**
```bash theme={null}
reve-remix-20250915
```
## Inputs
* **prompt (required)**
* Type: STRING
* Description: Text prompt guiding remix generation.
* **image (optional)**
* Type: IMAGE
* Description: 1–6 reference images from ComfyUI.
* **image\_url (optional)**
* Type: STRING
* Description: 1–6 reference image URLs (comma-separated).
* **aspect\_ratio (optional)**
* Type: ENUM
* Options: "", 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 1:1
* Description: Controls output image aspect ratio.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Reve Remix Fast
Source: https://docs.gmicloud.ai/gmi-studio/nodes/image/reve-remix-fast
Fast version of multi-image remix generation using 1–6 reference images.
Fast version of multi-image remix generation using 1–6 reference images.
**Model**
```bash theme={null}
reve-remix-fast-20251030
```
## Inputs
* **prompt (required)**
* Type: STRING
* Description: Text prompt guiding remix generation.
* **image (optional)**
* Type: IMAGE
* Description: 1–6 reference images from ComfyUI.
* **image\_url (optional)**
* Type: STRING
* Description: 1–6 reference image URLs.
* **aspect\_ratio (optional)**
* Type: ENUM
* Options: "", 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 1:1
* Description: Controls output image aspect ratio.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# LLM Node
Source: https://docs.gmicloud.ai/gmi-studio/nodes/llm/llm-node
Calls large language models with optional multimodal inputs (text, image, video).
Calls large language models with optional multimodal inputs (text, image, video).
**Model**
```bash theme={null}
configurable (e.g. moonshotai/Kimi-K2.5)
```
## Inputs
### Required
* **model (STRING)**\
Identifier of the LLM model used for generation.
* **prompt (STRING)**\
User input text or instruction sent to the model.
### Optional
* **temperature (FLOAT, default: 1.0)**\
Controls randomness of output generation (0 = deterministic, 1 = creative).
* **max\_tokens (INT, default: 5120)**\
Maximum number of tokens the model is allowed to generate.
* **system\_prompt (STRING, default: "You are a helpful AI assistant. Provide direct, concise answers without showing your thinking process.")**\
Defines model behavior and response style.
* **image\_url (STRING)**\
Optional image input for vision-capable models.
* **video\_url (STRING)**\
Optional video input for multimodal understanding.
## Outputs
* **content (STRING)**\
Generated response text from the language model.
# Kling 2_6 Motion Control
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-2-6-motion-control
Transfers motion from a reference video to a character image.
Transfers motion from a reference video to a character image.
**Model**
```bash theme={null}
Kling 2.6 Motion Control
```
## Inputs
* **prompt (STRING)**\
Optional text guiding style, lighting, or environment. Motion is derived from reference video.
* **video\_url (STRING)**\
Reference video used for motion extraction. Must contain human subject motion.
* **image (IMAGE)**\
Required reference image used for character appearance.
* **image\_url (STRING)**\
URL version of reference image.
* **character\_orientation (STRING)**\
Controls motion alignment mode. Options: video, image
* **mode (STRING)**\
Quality mode selection. Options: std, pro
* **keep\_original\_sound (STRING)**\
Determines whether original audio is preserved. Options: yes, no
## Outputs
* **VIDEO (VIDEO)**\
Generated motion-transfer video.
* **VIDEO\_URL (STRING)**\
Public URL of generated video.
* **FILE\_PATH (STRING)**\
Local storage path of output video.
# Kling 3 Motion Control
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-3-motion-control
Transfers motion from a reference video to a character image.
Transfers motion from a reference video to a character image.
**Model**
```bash theme={null}
kling-3-motion-control
```
## Inputs
* **video\_url (STRING)**\
Reference video used for motion extraction (3–30s).
* **image (IMAGE)**\
Required character reference image used as the motion target.
* **prompt (STRING)**\
Optional text prompt to guide style, lighting, or environment of the result.
* **image\_url (STRING)**\
URL version of the reference image.
* **character\_orientation (STRING)**\
Controls alignment between character and motion source. Options: video, image.
* **mode (STRING)**\
Quality mode selection affecting output fidelity. Options: std, pro.
* **keep\_original\_sound (STRING)**\
Determines whether original audio is preserved. Options: yes, no.
## Outputs
* **video (VIDEO)**\
Generated motion-transfer video.
* **video\_url (STRING)**\
Publicly accessible URL of the generated video.
* **file\_path (STRING)**\
Local filesystem path where the video is saved.
# Kling Edit Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-edit-video
Edits existing video using text instructions and optional reference images.
Edits existing video using text instructions and optional reference images.
**Model**
```bash theme={null}
Kling O1 Edit Video
```
## Inputs
* **prompt (STRING)**\
Instruction describing how video should be edited.
* **video\_url (STRING)**\
Input video to be edited.
* **image (IMAGE)**\
Optional reference images (up to 4).
* **image\_url (STRING)**\
URL version of reference images.
* **aspect\_ratio (STRING)**\
Output video format.
* **duration (STRING)**\
Output video duration in seconds.
* **mode (STRING)**\
Quality mode. Options: std, pro
## Outputs
* **VIDEO (VIDEO)**\
Edited video output tensor.
* **VIDEO\_URL (STRING)**\
Public URL of edited video.
* **FILE\_PATH (STRING)**\
Local saved file path.
# Kling Image2Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-image2video
Generates a video from a reference image and text prompt.
Generates a video from a reference image and text prompt.
**Model**
```bash theme={null}
Kling Image-to-Video (GMI API)
```
## Inputs
### Required
* **prompt (STRING)**\
Text prompt describing motion and scene. Max 2500 characters.
* **negative\_prompt (STRING)**\
Defines unwanted elements in output video. Max 2500 characters.
* **cfg\_scale (FLOAT)**\
Controls prompt adherence strength.
* **duration (STRING)**\
Video length in seconds. Options: 5, 10
* **model (STRING)**\
Kling model version used for generation.
### Optional
* **start\_frame\_image (IMAGE)**\
Image tensor used as the starting frame of the video.
* **start\_frame (STRING)**\
URL of reference image used as starting frame.
## Outputs
* **VIDEO (VIDEO)**\
Generated video tensor output.
* **VIDEO\_URL (STRING)**\
Public URL to generated video.
* **FILE\_PATH (STRING)**\
Local file path where video is saved.
# Kling Reference To Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-reference-to-video
Generates video using reference video and optional image conditioning.
Generates video using reference video and optional image conditioning.
**Model**
```bash theme={null}
Kling Reference-to-Video
```
## Inputs
* **prompt (STRING)**\
Optional guidance prompt for style or scene control.
* **video\_url (STRING)**\
Reference motion video input.
* **aspect\_ratio (STRING)**\
Output video shape. Options: 16:9, 9:16, 1:1
* **image (IMAGE)**\
Optional reference image(s) for conditioning.
* **image\_url (STRING)**\
URL version of reference images.
* **duration (STRING)**\
Output video duration in seconds.
* **mode (STRING)**\
Quality mode. Options: std, pro
* **keep\_original\_sound (STRING)**\
Preserves audio from reference video. Options: yes, no
## Outputs
* **VIDEO (VIDEO)**\
Generated video tensor.
* **VIDEO\_URL (STRING)**\
Hosted video URL.
* **FILE\_PATH (STRING)**\
Local saved file path.
# Kling Text-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-text-to-video
Generates a video from a text prompt using Kling models (Standard/Pro, multiple versions).
Generates a video from a text prompt using Kling models (Standard/Pro, multiple versions). Supports duration control, CFG scale, and negative prompts.
**Model**
```bash theme={null}
Kling Text-to-Video (GMI API)
```
## Inputs
### Required
* **prompt (STRING)**\
Text prompt describing the video content. Max 2500 characters.
* **negative\_prompt (STRING)**\
Text describing what should be avoided in the generated video. Max 2500 characters.
* **cfg\_scale (FLOAT)**\
Controls how strongly the model follows the prompt.\
Options: 0.0, 0.5, 1.0
* **aspect\_ratio (STRING)**\
Defines output video shape. Options: 16:9, 9:16, 1:1
* **duration (STRING)**\
Video length in seconds. Options: 5, 10
* **model (STRING)**\
Kling model variant used for generation.
## Outputs
* **VIDEO (VIDEO)**\
Generated video tensor output.
* **VIDEO\_URL (STRING)**\
Public URL where generated video is hosted.
* **FILE\_PATH (STRING)**\
Local saved file path of generated video.
# Kling V3 Image To Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-v3-image-to-video
Generates video from image and prompt with optional tail frame support.
Generates video from image and prompt with optional tail frame support.
**Model**
```bash theme={null}
Kling V3 Image-to-Video
```
## Inputs
* **prompt (STRING)**\
Main motion and scene description.
* **image (IMAGE)**\
Required input image used as starting frame.
* **image\_url (STRING)**\
URL version of input image.
* **negative\_prompt (STRING)**\
Elements to exclude from generated video.
* **image\_tail (IMAGE)**\
Optional end-frame image for motion guidance.
* **image\_tail\_url (STRING)**\
URL version of end-frame image.
* **duration (STRING)**\
Video length in seconds. Range: 3–15.
* **sound (STRING)**\
Controls audio generation. Options: on, off
## Outputs
* **VIDEO (VIDEO)**\
Generated video output.
* **VIDEO\_URL (STRING)**\
Public URL of generated video.
* **FILE\_PATH (STRING)**\
Local saved video path.
# Kling V3 Text To Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/kling-v3-text-to-video
Generates video purely from text prompt.
Generates video purely from text prompt.
**Model**
```bash theme={null}
Kling V3 Text-to-Video
```
## Inputs
* **prompt (STRING)**\
Primary text prompt describing video content.
* **negative\_prompt (STRING)**\
Elements to exclude from video.
* **duration (STRING)**\
Video length in seconds. Range: 3–15.
* **aspect\_ratio (STRING)**\
Output video shape. Options: 16:9, 9:16, 1:1
* **sound (STRING)**\
Audio generation toggle. Options: on, off
## Outputs
* **VIDEO (VIDEO)**\
Generated video tensor output.
* **VIDEO\_URL (STRING)**\
Public video URL.
* **FILE\_PATH (STRING)**\
Local saved file path.
# Ltx2 Fast Image To Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/ltx2-fast-image-to-video
Converts a static image into a motion video with optional audio generation.
Converts a static image into a motion video with optional audio generation.
**Model**
```bash theme={null}
ltx-2-fast-image-to-video
```
## Inputs
### Required
* **prompt (STRING)**\
Text description defining motion, style, and animation behavior.
* **duration (INT, default: 6)**\
Length of the generated video in seconds.
* **resolution (STRING, default: 1920x1080)**\
Output video resolution. Options: 1920x1080, 2560x1440, 3840x2160.
* **image (IMAGE)**\
Input image used as the base frame for animation.
### Optional
* **image\_url (STRING)**\
URL version of the input image.
* **fps (INT, default: 25)**\
Frame rate of generated video. Options: 25, 50.
* **generate\_audio (BOOLEAN, default: True)**\
Enables or disables AI-generated audio.
* **camera\_motion (STRING)**\
Defines camera movement style applied to video generation.
## Outputs
* **video (VIDEO)**\
Generated animated video tensor.
* **video\_url (STRING)**\
Public URL of the generated video.
* **file\_path (STRING)**\
Local path where the video is stored.
# Ltx2 Fast TextToVideo
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/ltx2-fast-texttovideo
Generates video directly from a text prompt.
Generates video directly from a text prompt.
**Model**
```bash theme={null}
ltx-2-fast-text-to-video
```
## Inputs
### Required
* **prompt (STRING)**\
Text description of the desired video.
### Optional
* **duration (INT, default: 6)**\
Length of video in seconds.
* **resolution (STRING, default: 1920x1080)**\
Output resolution of the video.
* **fps (INT, default: 25)**\
Frame rate of generated video.
* **generate\_audio (BOOLEAN, default: True)**\
Enables AI-generated audio track.
* **camera\_motion (STRING)**\
Defines camera movement behavior in generated video.
## Outputs
* **video (VIDEO)**\
Generated video output.
* **video\_url (STRING)**\
Public URL of video.
* **file\_path (STRING)**\
Local storage path.
# Ltx2 Pro Audio-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/ltx2-pro-audio-to-video
Generates video driven by audio input, optionally guided by image or prompt.
Generates video driven by audio input, optionally guided by image or prompt.
**Model**
```bash theme={null}
ltx-2-pro-audio-to-video
```
## Inputs
### Required
* **audio / audio\_url (AUDIO or STRING)**\
Audio input file (2–20 seconds).
### Optional
* **prompt (STRING)**\
Text guidance for scene generation.
* **image / image\_url (IMAGE or STRING)**\
Optional first-frame visual reference.
* **resolution (STRING, default: 1920x1080)**\
Output resolution.
* **guidance\_scale (FLOAT, default: 5)**\
Strength of prompt adherence.
## Outputs
* **video (VIDEO)**\
Generated video.
* **video\_url (STRING)**\
Public video URL.
* **file\_path (STRING)**\
Local saved file path.
# Ltx2 Pro ImageToVideo
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/ltx2-pro-imagetovideo
High-fidelity image-to-video generation with improved visual quality and stability.
High-fidelity image-to-video generation with improved visual quality and stability.
**Model**
```bash theme={null}
ltx-2-pro-image-to-video
```
## Inputs
* Same as GMILtx2FastImageToVideoNode\
(All inputs share identical meaning, but with higher-quality generation backend.)
## Outputs
* **video (VIDEO)**\
High-quality generated video.
* **video\_url (STRING)**\
Public URL for the generated video.
* **file\_path (STRING)**\
Local saved video path.
# Ltx2 Pro Retake
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/ltx2-pro-retake
Edits a specific segment of an existing video (audio, video, or both).
Edits a specific segment of an existing video (audio, video, or both).
**Model**
```bash theme={null}
ltx-2-pro-retake
```
## Inputs
### Required
* **video\_url (STRING)**\
Source video to be edited.
* **start\_time (FLOAT, default: 0)**\
Start time of edit segment in seconds.
* **duration (INT, default: 5)**\
Length of segment to modify.
### Optional
* **prompt (STRING)**\
Instruction describing how the segment should be changed.
* **mode (STRING, default: replace\_audio\_and\_video)**\
Edit operation mode. Options: replace\_audio\_and\_video, replace\_audio, replace\_video.
## Outputs
* **video (VIDEO)**\
Edited video output.
* **video\_url (STRING)**\
Public URL of edited video.
* **file\_path (STRING)**\
Local saved path.
# Ltx2 Pro TextToVideo
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/ltx2-pro-texttovideo
Premium-quality text-to-video generation with enhanced realism and detail.
Premium-quality text-to-video generation with enhanced realism and detail.
**Model**
```bash theme={null}
ltx-2-pro-text-to-video
```
## Inputs
* Same as GMILtx2FastTextToVideoNode\
(Identical parameters with improved model quality.)
## Outputs
* **video (VIDEO)**\
Generated video output.
* **video\_url (STRING)**\
Public URL of video.
* **file\_path (STRING)**\
Local storage path.
# Luma Image-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/luma-image-to-video
Generates video from text prompts with optional image conditioning, frame control, and configurable output settings.
Generates video from text prompts with optional image conditioning, frame control, and configurable output settings.
**Model**
```bash theme={null}
Luma-Ray2
```
## Inputs
### Required
* **prompt (STRING)**\
Text prompt describing video content.
### Optional
* **model (STRING, default: Luma-Ray2)**\
Model variant used for generation.
* **negative\_prompt (STRING, default: "")**\
Specifies elements to exclude from output.
* **duration (STRING, default: 5)**\
Video length. Options: 5, 9.
* **aspect\_ratio (STRING, default: 16:9)**\
Output format ratio.
* **resolution (STRING, default: 1080p)**\
Output resolution.
* **loop (BOOLEAN, default: False)**\
Enables seamless looping.
* **frame0\_image\_url (STRING)**\
First-frame conditioning image.
* **frame1\_image\_url (STRING)**\
Last-frame conditioning image.
* **seed (INT, default: 0)**\
Random seed (0 = random).
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Minimax Hailuo Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/minimax-hailuo-video
Generates video using Minimax-Hailuo model (text-to-video or image-to-video).
Generates video using Minimax-Hailuo model (text-to-video or image-to-video).
**Model**
```bash theme={null}
Minimax-Hailuo **Category:** Model Library/General Video Models
```
## Inputs
* **prompt\_text (STRING, multiline)**\
Text prompt describing video content.
* **model (COMBO, default: Minimax-Hailuo-2.3)**\
Model variant selection.
* **duration (COMBO, default: 6)**\
Video duration in seconds.
* **image (IMAGE, optional)**\
Image input for conditioning animation.
* **first\_frame\_image (STRING, optional)**\
URL-based image input.
* **seed (INT, default: 0)**\
Random seed for reproducibility.
* **resolution (COMBO, default: 768P)**\
Output resolution.
* **prompt\_optimizer (BOOLEAN, default: True)**\
Enhances prompt understanding and expansion.
* **fast\_pretreatment (BOOLEAN, default: False)**\
Enables faster preprocessing pipeline.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Minimax Image To Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/minimax-image-to-video
Generates video from image \+ text prompt using Minimax-Hailuo.
Generates video from image + text prompt using Minimax-Hailuo.
**Model**
```bash theme={null}
Minimax-Hailuo **Category:** Model Library/General Video Models
```
## Inputs
* **prompt\_text (STRING)**\
Text describing motion and scene transformation.
* **model (COMBO, default: Minimax-Hailuo-2.3)**\
Model variant selection.
* **duration (COMBO, default: 6)**\
Video duration.
* **image (IMAGE)**\
Input image used for animation.
* **first\_frame\_image (STRING)**\
URL version of input image.
* **seed (INT, default: 0)**\
Random seed.
* **resolution (COMBO, default: 768P)**\
Output resolution.
* **prompt\_optimizer (BOOLEAN, default: True)**\
Enhances prompt processing.
* **fast\_pretreatment (BOOLEAN, default: False)**\
Faster preprocessing mode.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Pixverse v5\_5 t2v
Model: pixverse-v5.5-t2v\
Description: Generates a video from a text prompt using Pixverse v5.5.
## Inputs
### Required
* prompt (STRING)\
Text description of the video content to generate.
### Optional
* aspect\_ratio (STRING, default: 16:9)\
Sets output video shape ratio.
* duration (STRING, default: 5)\
Length of the video in seconds (5, 8, 10).
* quality (STRING, default: 540p)\
Output resolution of the video.
* negative\_prompt (STRING)\
Describes elements to avoid in generation.
* generate\_audio\_switch (BOOLEAN, default: False)\
Enables AI-generated audio.
* generate\_multi\_clip\_switch (BOOLEAN, default: False)\
Enables multi-shot / cinematic transitions.
* thinking\_type (STRING, default: auto)\
Controls prompt optimization behavior.
* seed (INT, default: 0)\
Random seed for reproducibility (0 = random).
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Pixverse v5\_5 i2v
Model: pixverse-v5.5-i2v\
Description: Generates a video from a single image and optional prompt.
## Inputs
### Required (one image source required)
* image (IMAGE)\
Input image from ComfyUI. Used as the primary reference frame.
OR
* image\_url (STRING)\
URL to the reference image (used if IMAGE input is not provided).
* prompt (STRING)\
Text description guiding motion, style, and animation.
### Optional
* aspect\_ratio (STRING, default: 16:9)\
Output video aspect ratio.
* duration (STRING, default: 5)\
Video length in seconds.
* quality (STRING, default: 540p)\
Output resolution.
* negative\_prompt (STRING)\
Elements to exclude from generation.
* generate\_audio\_switch (BOOLEAN, default: False)\
Enables audio generation.
* generate\_multi\_clip\_switch (BOOLEAN, default: False)\
Enables cinematic transitions.
* thinking\_type (STRING, default: auto)\
Controls prompt reasoning optimization.
* seed (INT, default: 0)\
Random seed for reproducibility.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Pixverse v5\_5 Transition
Model: pixverse-v5.5-transition\
Description: Creates a video transition between two images.
## Inputs
### Required (both frames required)
* first\_frame\_image (IMAGE) or first\_frame\_image\_url (STRING)\
Starting frame image for transition.
* last\_frame\_image (IMAGE) or last\_frame\_image\_url (STRING)\
Ending frame image for transition.
* prompt (STRING)\
Text describing how the transition should behave.
### Optional
* duration (STRING, default: 5)\
Video duration in seconds.
* quality (STRING, default: 540p)\
Output resolution.
* negative\_prompt (STRING)\
Elements to avoid in transition.
* generate\_audio\_switch (BOOLEAN, default: False)\
Enables audio generation.
* seed (INT, default: 0)\
Random seed for reproducibility.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Pixversev 5\_6 t2v
Model: pixverse-v5.6-t2v\
Description: Generates a video from a text prompt using Pixverse v5.6.
## Inputs
### Required
* prompt (STRING)\
Text prompt describing full video content (max 2048 characters).
### Optional
* aspect\_ratio (STRING, default: 16:9)\
Output video aspect ratio.
* duration (STRING, default: 5)\
Video length in seconds (note: 10s not supported at 1080p).
* quality (STRING, default: 540p)\
Output resolution.
* negative\_prompt (STRING)\
Content to exclude from generation.
* generate\_audio\_switch (BOOLEAN, default: False)\
Enables audio generation.
* style (STRING, default: none)\
Visual style preset (none, anime, 3d\_animation, clay, comic, cyberpunk).
* thinking\_type (STRING, default: auto)\
Controls prompt reasoning optimization.
* seed (INT, default: 0)\
Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Pixversev 5\_6 i2v
Model: pixverse-v5.6-i2v\
Description: Generates a video from a single image using Pixverse v5.6.
## Inputs
### Required (one image source required)
* image (IMAGE)\
ComfyUI image input used as the main reference frame.
OR
* image\_url (STRING)\
URL of the reference image.
* prompt (STRING)\
Text prompt guiding animation and scene behavior.
### Optional
* aspect\_ratio (STRING, default: 16:9)\
Output aspect ratio.
* duration (STRING, default: 5)\
Video duration in seconds.
* quality (STRING, default: 540p)\
Output resolution.
* negative\_prompt (STRING)\
Elements to exclude.
* generate\_audio\_switch (BOOLEAN, default: False)\
Enables audio generation.
* style (STRING, default: none)\
Visual style preset.
* thinking\_type (STRING, default: auto)\
Controls prompt reasoning behavior.
* seed (INT, default: 0)\
Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Pixverse v5\_6 Transition
Model: pixverse-v5.6-transition\
Description: Generates a transition video between two images using Pixverse v5.6.
## Inputs
### Required (both frames required)
* first\_frame\_image (IMAGE) or first\_frame\_image\_url (STRING)\
Starting frame image.
* last\_frame\_image (IMAGE) or last\_frame\_image\_url (STRING)\
Ending frame image.
* prompt (STRING)\
Text describing transition behavior.
### Optional
* duration (STRING, default: 5)\
Video duration.
* quality (STRING, default: 540p)\
Output resolution.
* negative\_prompt (STRING)\
Elements to avoid.
* generate\_audio\_switch (BOOLEAN, default: False)\
Enables audio generation.
* seed (INT, default: 0)\
Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Minimax Text To Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/minimax-text-to-video
Generates video from text-only prompts using Minimax-Hailuo.
Generates video from text-only prompts using Minimax-Hailuo.
**Model**
```bash theme={null}
Minimax-Hailuo **Category:** Model Library/General Video Models
```
## Inputs
* **prompt\_text (STRING)**\
Text prompt describing desired video.
* **model (COMBO, default: Minimax-Hailuo-2.3)**\
Model variant selection.
* **duration (COMBO, default: 6)**\
Video duration.
* **seed (INT, default: 0)**\
Random seed.
* **resolution (COMBO, default: 768P)**\
Output resolution.
* **prompt\_optimizer (BOOLEAN, default: True)**\
Improves prompt interpretation.
* **fast\_pretreatment (BOOLEAN, default: False)**\
Enables faster preprocessing.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Video Nodes
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/overview
Text-to-video, image-to-video, and editing nodes for GMI Studio workflows.
Text-to-video, image-to-video, and editing nodes for GMI Studio workflows.
| Node | Model |
| -------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [Kling Text-to-Video](/gmi-studio/nodes/video/kling-text-to-video) | `Kling Text-to-Video (GMI API)` |
| [Kling Image2Video](/gmi-studio/nodes/video/kling-image2video) | `Kling Image-to-Video (GMI API)` |
| [Kling 2\_6 Motion Control](/gmi-studio/nodes/video/kling-2-6-motion-control) | `Kling 2.6 Motion Control` |
| [Kling Reference To Video](/gmi-studio/nodes/video/kling-reference-to-video) | `Kling Reference-to-Video` |
| [Kling V3 Image To Video](/gmi-studio/nodes/video/kling-v3-image-to-video) | `Kling V3 Image-to-Video` |
| [Kling V3 Text To Video](/gmi-studio/nodes/video/kling-v3-text-to-video) | `Kling V3 Text-to-Video` |
| [Kling Edit Video](/gmi-studio/nodes/video/kling-edit-video) | `Kling O1 Edit Video` |
| [Kling 3 Motion Control](/gmi-studio/nodes/video/kling-3-motion-control) | `kling-3-motion-control` |
| [Ltx2 Fast Image To Video](/gmi-studio/nodes/video/ltx2-fast-image-to-video) | `ltx-2-fast-image-to-video` |
| [Ltx2 Pro ImageToVideo](/gmi-studio/nodes/video/ltx2-pro-imagetovideo) | `ltx-2-pro-image-to-video` |
| [Ltx2 Fast TextToVideo](/gmi-studio/nodes/video/ltx2-fast-texttovideo) | `ltx-2-fast-text-to-video` |
| [Ltx2 Pro TextToVideo](/gmi-studio/nodes/video/ltx2-pro-texttovideo) | `ltx-2-pro-text-to-video` |
| [Ltx2 Pro Retake](/gmi-studio/nodes/video/ltx2-pro-retake) | `ltx-2-pro-retake` |
| [Ltx2 Pro Audio-to-Video](/gmi-studio/nodes/video/ltx2-pro-audio-to-video) | `ltx-2-pro-audio-to-video` |
| [Luma Image-to-Video](/gmi-studio/nodes/video/luma-image-to-video) | `Luma-Ray2` |
| [Minimax Hailuo Video](/gmi-studio/nodes/video/minimax-hailuo-video) | `Minimax-Hailuo **Category:** Model Library/General Video Models` |
| [Minimax Text To Video](/gmi-studio/nodes/video/minimax-text-to-video) | `Minimax-Hailuo **Category:** Model Library/General Video Models` |
| [Minimax Image To Video](/gmi-studio/nodes/video/minimax-image-to-video) | `Minimax-Hailuo **Category:** Model Library/General Video Models` |
| [SkyReels Text-to-Video](/gmi-studio/nodes/video/skyreels-text-to-video) | `skyreels-v4-text-to-video` |
| [SkyReels Image-to-Video](/gmi-studio/nodes/video/skyreels-image-to-video) | `skyreels-v4-image-to-video` |
| [Vidu Q2 Pro I2V](/gmi-studio/nodes/video/vidu-q2-pro-i2v) | `vidu-q2-pro-i2v` |
| [Vidu Q2 Pro R2V](/gmi-studio/nodes/video/vidu-q2-pro-r2v) | `vidu-q2-pro-r2v` |
| [Vidu Q2 T2V](/gmi-studio/nodes/video/vidu-q2-t2v) | `vidu-q2-t2v` |
| [Vidu Q3 Pro I2V](/gmi-studio/nodes/video/vidu-q3-pro-i2v) | `vidu-q3-pro-i2v` |
| [Vidu Q3 Pro T2V](/gmi-studio/nodes/video/vidu-q3-pro-t2v) | `vidu-q3-pro-t2v` |
| [Wan Animate Video](/gmi-studio/nodes/video/wan-animate-video) | `Wan2.2-Animate-14B` |
| [Wan 2.5 Image-to-Video](/gmi-studio/nodes/video/wan-2-5-image-to-video) | `wan2.5-i2v-preview` |
| [Wan 2.6 Text-to-Video](/gmi-studio/nodes/video/wan-2-6-text-to-video) | `wan2.6-t2v` |
| [Wan 2.6 Image-to-Video](/gmi-studio/nodes/video/wan-2-6-image-to-video) | `wan2.6-i2v` |
| [Wan 2.6 Reference-to-Video](/gmi-studio/nodes/video/wan-2-6-reference-to-video) | `wan2.6-r2v` |
# SkyReels Image-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/skyreels-image-to-video
Animates a single image into a cinematic video using SkyReels V4.
Animates a single image into a cinematic video using SkyReels V4.
**Model**
```bash theme={null}
skyreels-v4-image-to-video
```
## Inputs
* **prompt (required)**\
Type: STRING\
Description: Text prompt guiding the animation.
* **image (optional)**\
Type: IMAGE\
Description: Input image from ComfyUI (exactly one image required if used).
* **image\_url (optional)**\
Type: STRING\
Description: URL of input image (used if IMAGE input is not provided).
* **duration (optional)**\
Type: INT\
Default: 5\
Range: 3–15\
Description: Duration of generated video in seconds.
* **sound (optional)**\
Type: BOOLEAN\
Default: False\
Description: Enables audio generation.
* **mode (optional)**\
Type: ENUM\
Options: std, fast, pro\
Default: std\
Description: Controls generation quality vs speed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Sora 2
**Description:** Generates video from text prompts using the Sora 2 model with optional reference image support.
## Inputs
* **prompt (required)**\
Type: STRING\
Description: Text prompt for video generation.
* **input\_reference\_image (optional)**\
Type: IMAGE\
Description: Optional single reference image input.
* **input\_reference (optional)**\
Type: STRING\
Description: URL version of reference image (0–1 images supported).
* **model (optional)**\
Type: STRING\
Default: sora-2\
Description: Model identifier for generation.
* **seconds (optional)**\
Type: ENUM\
Default: 4\
Options: 4, 8, 12\
Description: Video duration.
* **size (optional)**\
Type: ENUM\
Default: 1280x720\
Options: 1280x720, 720x1280\
Description: Output resolution.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Sora 2 Pro
**Description:** Generates high-quality video using Sora 2 Pro with reference image support.
## Inputs
* **prompt (required)**\
Type: STRING\
Description: Text prompt for video generation.
* **input\_reference\_image (optional)**\
Type: IMAGE\
Description: Optional single reference image input.
* **input\_reference (optional)**\
Type: STRING\
Description: URL version of reference image.
* **model (optional)**\
Type: STRING\
Default: sora-2-pro\
Description: Model identifier.
* **seconds (optional)**\
Type: ENUM\
Default: 4\
Options: 4, 8, 12\
Description: Video duration.
* **size (optional)**\
Type: ENUM\
Default: 1792x1024\
Options: 1792x1024, 1024x1792, 1280x720, 720x1280\
Description: Output resolution.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Veo3 Video Generation
**Description:** Generates videos using Google’s Veo 3 models through the GMI gateway, supporting text-to-video and image-conditioned generation.
## Inputs
* **prompt (required)** - Type: STRING - Text description of the video.
* **aspect\_ratio (optional)** - Type: ENUM - Default: 16:9 - Options: 16:9, 9:16
* **negative\_prompt (optional)** - Type: STRING - What should be avoided.
* **duration\_seconds (optional)** - Type: INT - Default: 8 - Max 8 seconds.
* **person\_generation (optional)** - Type: ENUM - Default: ALLOW - Options: ALLOW, BLOCK
* **seed (optional)** - Type: INT - Default: 0
* **image (optional)** - Type: IMAGE/STRING - Reference image input.
* **lastFrame (optional)** - Type: IMAGE/STRING - Ending frame image.
* **reference\_image (optional)** - Type: IMAGE/STRING - Reference image for Veo 3.1.
* **model (optional)** - Type: ENUM - Default: Veo3 - Multiple Veo model options listed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# SkyReels Text-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/skyreels-text-to-video
Generates cinematic video from a text prompt using SkyReels V4.
Generates cinematic video from a text prompt using SkyReels V4.
**Model**
```bash theme={null}
skyreels-v4-text-to-video
```
## Inputs
* **prompt (required)**\
Type: STRING\
Description: Text prompt describing the video content.
* **duration (optional)**\
Type: INT\
Default: 5\
Range: 3–15\
Description: Duration of the generated video in seconds.
* **aspect\_ratio (optional)**\
Type: ENUM\
Options: 16:9, 4:3, 1:1, 9:16, 3:4\
Default: 16:9\
Description: Controls the aspect ratio of the output video.
* **sound (optional)**\
Type: BOOLEAN\
Default: False\
Description: Enables audio generation for the video.
* **mode (optional)**\
Type: ENUM\
Options: std, fast, pro\
Default: std\
Description: Controls generation quality vs speed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Vidu Q2 Pro I2V
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/vidu-q2-pro-i2v
Generates a video from a single reference image using VIDU Q2 Pro I2V model.
Generates a video from a single reference image using VIDU Q2 Pro I2V model.
**Model**
```bash theme={null}
vidu-q2-pro-i2v
```
## Inputs
* **prompt (required)** - STRING - Text prompt (max 2000 chars).
* **image (optional)** - IMAGE - One input image required if used.
* **image\_url (optional)** - STRING - URL of input image.
* **duration (optional)** - INT - Default: 5 - Range: 1–10
* **seed (optional)** - INT - Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Vidu Q2 Pro R2V
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/vidu-q2-pro-r2v
Generates video from multiple reference images and/or videos using VIDU Q2 Pro R2V model.
Generates video from multiple reference images and/or videos using VIDU Q2 Pro R2V model.
**Model**
```bash theme={null}
vidu-q2-pro-r2v
```
## Inputs
* **prompt (required)** - STRING - Text prompt (max 2000 chars).
* **images (optional)** - IMAGE (batch) - Up to 7 images.
* **image\_urls (optional)** - STRING - Comma-separated URLs.
* **video\_urls (optional)** - STRING - 1 video (8s) or 2 videos (5s each).
* **duration (optional)** - INT - Default: 5 - Range: 1–8
* **seed (optional)** - INT - Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Vidu Q2 T2V
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/vidu-q2-t2v
Generates a video from text using VIDU Q2 T2V model.
Generates a video from text using VIDU Q2 T2V model.
**Model**
```bash theme={null}
vidu-q2-t2v
```
## Inputs
* **prompt (required)** - STRING - Text prompt (max 2000 chars).
* **duration (optional)** - INT - Default: 5 - Range: 1–10
* **seed (optional)** - INT - Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Vidu Q3 Pro I2V
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/vidu-q3-pro-i2v
Generates video from a single reference image using VIDU Q3 Pro I2V.
Generates video from a single reference image using VIDU Q3 Pro I2V. Supports optional audio.
**Model**
```bash theme={null}
vidu-q3-pro-i2v
```
## Inputs
* **prompt (required)** - STRING - Text prompt (max 2000 chars).
* **image / image\_url (required)** - One input image required.
* **duration (optional)** - INT - Default: 5 - Range: 1–16
* **audio (optional)** - BOOLEAN - Default: False
* **seed (optional)** - INT - Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Vidu Q3 Pro T2V
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/vidu-q3-pro-t2v
Generates a video from text using VIDU Q3 Pro T2V model.
Generates a video from text using VIDU Q3 Pro T2V model. Supports optional audio.
**Model**
```bash theme={null}
vidu-q3-pro-t2v
```
## Inputs
* **prompt (required)** - STRING - Text prompt (max 2000 chars).
* **duration (optional)** - INT - Default: 5 - Range: 1–16
* **audio (optional)** - BOOLEAN - Default: False
* **seed (optional)** - INT - Random seed.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Wan 2.5 Image-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/wan-2-5-image-to-video
Generate video from image using WAN 2.5 model.
Generate video from image using WAN 2.5 model
**Model**
```bash theme={null}
wan2.5-i2v-preview
```
## Inputs
* **image (optional)**\
Type: IMAGE\
Input image (ComfyUI tensor). Takes precedence over img\_url.
* **img\_url (optional)**\
Type: STRING\
Image URL used if IMAGE is not provided.
* **prompt (optional)**\
Type: STRING\
Text prompt for video generation.
* **negative\_prompt (optional)**\
Type: STRING\
Negative prompt for video generation.
* **resolution (optional)**\
Type: ENUM\
Options: 480P, 720P, 1080P\
Default: 480P
* **duration (optional)**\
Type: ENUM\
Options: 5, 10\
Default: 5
* **prompt\_extend (optional)**\
Type: BOOLEAN\
Default: True
* **watermark (optional)**\
Type: BOOLEAN\
Default: False
* **audio (optional)**\
Type: BOOLEAN\
Default: False
* **audio\_url (optional)**\
Type: STRING
* **seed (optional)**\
Type: INT\
Range: 0–2147483647
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Wan 2.6 Image-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/wan-2-6-image-to-video
Generate video from image using WAN 2.6 model.
Generate video from image using WAN 2.6 model
**Model**
```bash theme={null}
wan2.6-i2v
```
## Inputs
* **image (optional)**\
Type: IMAGE\
Reference image (takes precedence over img\_url).
* **img\_url (optional)**\
Type: STRING
* **prompt (optional)**\
Type: STRING
* **negative\_prompt (optional)**\
Type: STRING
* **audio\_url (optional)**\
Type: STRING
* **resolution (optional)**\
Type: ENUM\
Options: 720P, 1080P\
Default: 720P
* **duration (optional)**\
Type: ENUM\
Options: 5, 10, 15\
Default: 5
* **prompt\_extend (optional)**\
Type: BOOLEAN\
Default: True
* **watermark (optional)**\
Type: BOOLEAN\
Default: False
* **audio (optional)**\
Type: BOOLEAN\
Default: False
* **seed (optional)**\
Type: INT\
Range: 0–2147483647
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Wan 2.6 Reference-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/wan-2-6-reference-to-video
Generate video using reference video URLs (multi-character supported).
Generate video using reference video URLs (multi-character supported)
**Model**
```bash theme={null}
wan2.6-r2v
```
## Inputs
* **video\_urls (required)**\
Type: STRING\
Comma-separated reference video URLs (1–3).
* **prompt (optional)**\
Type: STRING (max 1500 chars)
* **negative\_prompt (optional)**\
Type: STRING (max 500 chars)
* **size (optional)**\
Type: ENUM\
Options: multiple resolutions\
Default: 1920\*1080
* **duration (optional)**\
Type: ENUM\
Options: 5, 10\
Default: 5
* **shot\_type (optional)**\
Type: ENUM\
Options: single, multi\
Default: single
* **watermark (optional)**\
Type: BOOLEAN\
Default: False
* **seed (optional)**\
Type: INT\
Range: 0–2147483647
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# WAN 2.7 Text-to-Video
## Description
Generates a video from a text prompt using the WAN 2.7 T2V model, supporting flexible duration (2–15 seconds), aspect ratio selection, optional audio input, prompt enhancement, and watermark control.
## Inputs
* **prompt**: Required text description of the video content (max 1500 characters).
* **negative\_prompt**: Optional text describing what to avoid (max 500 characters).
* **audio\_url**: Optional external audio file (WAV/MP3, 3–30s, ≤15MB).
* **resolution**: Output resolution tier, either 720P or 1080P (default: 1080P).
* **ratio**: Aspect ratio of output video (16:9, 9:16, 1:1, 4:3, 3:4).
* **duration**: Video length in seconds, between 2 and 15 (default: 5).
* **prompt\_extend**: Enables automatic prompt rewriting/enhancement.
* **watermark**: Adds “AI Generated” watermark if enabled.
* **seed**: Random seed for reproducibility.
## Outputs
* **VIDEO**: Generated video object.
* **VIDEO\_URL**: Hosted URL for the generated video.
* **FILE\_PATH**: Local saved file path.
***
# WAN 2.7 Image-to-Video
## Description
Generates a video from an input image using WAN 2.7 I2V. Supports optional first/last frame conditioning, optional driving audio, flexible duration control, and prompt-based motion guidance.
## Inputs
* **first\_frame\_image / first\_frame\_image\_url**: Optional starting frame (image tensor or URL).
* **last\_frame\_image / last\_frame\_image\_url**: Optional ending frame (image tensor or URL).
* **first\_clip**: Optional reference video for motion guidance.
* **driving\_audio**: Optional audio input to guide motion dynamics.
* **prompt**: Optional text prompt (max 1500 characters).
* **negative\_prompt**: Optional constraints (max 500 characters).
* **resolution**: Output resolution (720P or 1080P).
* **duration**: Video length in seconds (2–15).
* **prompt\_extend**: Enables prompt enhancement.
* **watermark**: Adds watermark overlay.
* **seed**: Random seed for reproducibility.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# WAN 2.7 Reference-to-Video
## Description
Generates video using multiple reference images and/or reference videos with WAN 2.7. Supports first-frame conditioning, multi-source visual guidance, and flexible motion synthesis across up to 5 total reference assets.
## Inputs
* **first\_frame\_image / first\_frame\_url**: Optional starting frame.
* **reference\_images**: Optional batch of image tensors.
* **reference\_image\_urls**: Optional comma-separated image URLs.
* **reference\_video\_urls**: Optional comma-separated video references (max 5 total assets combined).
* **prompt**: Required or optional text prompt (max 1500 characters).
* **negative\_prompt**: Optional constraints (max 500 characters).
* **resolution**: Output resolution (720P or 1080P).
* **ratio**: Aspect ratio control (16:9, 9:16, 1:1, 4:3, 3:4).
* **duration**: Video length (2–15 seconds).
* **prompt\_extend**: Enables prompt rewriting.
* **watermark**: Adds watermark overlay.
* **seed**: Random seed for reproducibility.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Happy Horse 1.0 Text-to-Video - GMIHHT2VNode
## Description
Generates video from a text prompt using the Happy Horse 1.0 model with a focus on high visual fidelity, simple configuration, and short-form generation (3–15 seconds).
## Inputs
* **prompt**: Required text description of the video content.
* **resolution**: Output resolution (720P or 1080P).
* **duration**: Video length in seconds (3–15).
* **watermark**: Adds “AI Generated” watermark in bottom-right corner.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
***
# Happy Horse 1.0 Image-to-Video - GMIHHI2VNode
## Description
Generates video from an image using the Happy Horse 1.0 model. The input image defines the initial frame, and motion is generated based on the prompt.
## Inputs
* **prompt**: Required text describing motion and style.
* **first\_frame\_image / first\_frame\_image\_url**: Required starting image input.
* **resolution**: Output resolution (720P or 1080P).
* **duration**: Video length (3–15 seconds).
* **watermark**: Adds watermark overlay.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Wan 2.6 Text-to-Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/wan-2-6-text-to-video
Generate video from text using WAN 2.6 model.
Generate video from text using WAN 2.6 model
**Model**
```bash theme={null}
wan2.6-t2v
```
## Inputs
* **prompt (required)**\
Type: STRING\
Text prompt for video generation.
* **negative\_prompt (optional)**\
Type: STRING
* **audio\_url (optional)**\
Type: STRING
* **resolution (optional)**\
Type: ENUM\
Options: 720P, 1080P\
Default: 1080P
* **duration (optional)**\
Type: ENUM\
Options: 5, 10, 15\
Default: 5
* **prompt\_extend (optional)**\
Type: BOOLEAN\
Default: True
* **watermark (optional)**\
Type: BOOLEAN\
Default: False
* **audio (optional)**\
Type: BOOLEAN\
Default: False
* **seed (optional)**\
Type: INT\
Range: 0–2147483647
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Wan Animate Video
Source: https://docs.gmicloud.ai/gmi-studio/nodes/video/wan-animate-video
Generate a video using a reference image and a template video.
Generate a video using a reference image and a template video
**Model**
```bash theme={null}
Wan2.2-Animate-14B
```
## Inputs
* **refer\_path (required)**\
Type: STRING\
Reference image URL for video generation.
* **video\_path (required)**\
Type: STRING\
Template video URL for video generation.
* **resolution (optional)**\
Type: ENUM\
Options: 480p, 720p\
Default: 480p\
Resolution of the output video.
## Outputs
* **video (VIDEO)**\
Generated video tensor.
* **video\_url (STRING)**\
Public URL of generated video.
* **file\_path (STRING)**\
Local saved video path.
# Guides
Source: https://docs.gmicloud.ai/guides-overview
Model quickstarts, agent walkthroughs, and coding-tool integrations for GMI Cloud.
Pick a path. Quickstarts get you running a model in minutes. Agent guides wire GMI into agent frameworks. Coding-tool guides plug GMI into the IDE or CLI you already use.
## Model Quickstarts
Per-model pages with copy-paste examples, organised by modality.
LLMs for chat, code, reasoning, OCR, and vision-language.
Generation, editing, in-painting, batch inference.
Text-to-video, image-to-video, editing, avatars.
TTS, voice cloning, music generation.
## Agents
Walkthroughs for building agents on top of GMI Cloud.
Set up Hermes Agent with GMI Cloud and run it from Telegram.
Build a multi-step research agent in Dify with GMI models.
Add GMI as a provider inside OpenClaw via the official plugin.
## Coding Tools
Point your existing IDE or CLI at GMI Cloud's OpenAI-compatible endpoint.
Anthropic's CLI, no Claude Max subscription required.
OpenAI's Codex CLI with a GMI provider config.
Override Cursor's OpenAI base URL (Pro plan required).
## Need something else?
* Use [Inference](/inference-engine/ie-intro) for the serverless and dedicated endpoint platform.
* Use [GPU Clusters](/cluster-engine/index) for bare-metal and container compute.
* Hit [support@gmicloud.ai](mailto:support@gmicloud.ai) if you're stuck.
# Welcome to GMI Cloud
Source: https://docs.gmicloud.ai/index
Run inference, train on GPU clusters, build AI workflows, and publish agents on GMI Cloud.
GMI's inference API is OpenAI-compatible — swap your endpoint and API key to get started. Run serverless inference, scale on dedicated GPU clusters, build visual AI workflows, or publish agents on the marketplace.
## Products
Serverless and Dedicated endpoints for chat, vision, image, video, and audio models. OpenAI-compatible APIs.
Managed Kubernetes clusters, container instances, and bare-metal servers on H200 and B200 GPUs.
Visual workflow builder. Connect models with nodes to make multi-step pipelines for media and text.
Marketplace of ready-to-use AI agents. Browse, use, or publish your own.
## Inference integrations
Connect GMI inference to your dev tools and agent frameworks.
Use GMI models inside Claude Code, Codex, and Cursor.
Plug GMI into Hermes, Dify, and OpenClaw.
## Guides & reference
Documentation and API specs across all GMI products.
Task-focused walkthroughs across products: agents, coding tools, model quickstarts, and migration.
REST APIs for IAM, Compute, IDC, and Inference services. Full request and response schemas.
## Model catalog
LLMs for chat, code, and reasoning.
Generation, editing, and batch image workflows.
Text-to-video, image-to-video, and editing.
TTS, voice cloning, and music generation.
## Quick links
Manage everything in one place.
Current rates for inference and compute.
Get an API key, make your first call, and explore in minutes.
Enterprise pricing or early access.
# LLM API Reference
Source: https://docs.gmicloud.ai/inference-engine/api-reference/llm-api-reference
REST API reference for GMI Cloud LLM inference endpoints.
## Introduction
This API reference describes the RESTful, streaming, and realtime APIs you can use to interact with GMI Inference. REST APIs are usable via HTTP in any environment that supports HTTP requests.
## Authentication
The GMI API uses API keys for authentication. Create, manage, and learn more about API keys in your organization settings.
**Important Security Notes:**
* API keys should be provided via HTTP Bearer authentication:
```http theme={null}
Authorization: Bearer GMI_API_KEY
```
* Never expose API keys in client-side code
* Load keys from environment variables or key management services
* For multi-organization access, specify headers:
```bash theme={null}
curl https://api.gmi-serving.com/v1/models \
-H "Authorization: Bearer $GMI_API_KEY" \
-H "X-Organization-ID: your_org_id"
```
## List Models
`GET https://api.gmi-serving.com/v1/models`
Lists available models with basic information about each model, including capabilities, ownership, and permissions.
### Example Request
```bash theme={null}
curl https://api.gmi-serving.com/v1/models \
-H "Authorization: Bearer $GMI_API_KEY"
```
### Response
```json theme={null}
{
"object": "list",
"data": [
{
"id": "",
"object": "deepseek-ai/DeepSeek-R1",
"created": 1687530000,
"owned_by": "public",
},
// ... other models ...
]
}
```
### Response Parameters
| Parameter | Type | Description |
| ---------- | ------- | -------------------------------- |
| `id` | string | Model identifier |
| `object` | string | Always "model" |
| `created` | integer | Unix timestamp of model creation |
| `owned_by` | string | Organization that owns the model |
## Create Chat Completion
`POST https://api.gmi-serving.com/v1/chat/completions`
Creates a model response for the given chat conversation. Supports text, images, and audio modalities.
### Authorization
```http theme={null}
Authorization: Bearer
```
### Request Body
```json theme={null}
{
"model": "deepseek-ai/DeepSeek-R1",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"max_tokens": 2000,
"temperature": 1
}
```
#### Parameters
| Parameter | Type | Required | Default | Description |
| ---------------------------------- | --------- | -------- | -------- | -------------------------------- |
| `model` | string | Yes | - | Model identifier |
| `messages` | object\[] | Yes | - | Conversation history |
| `tools` | object\[] | No | - | Supported tools/functions |
| `max_tokens` | integer | No | 2000 | Max output tokens (1-128) |
| `temperature` | number | No | 1 | 0-2 sampling randomness |
| `top_p` | number | No | 1 | Nucleus sampling (0-1) |
| `top_k` | integer | No | - | Top-k sampling (1-128) |
| `ignore_eos` | boolean | No | false | Continue past EOS token |
| `stop` | string\[] | No | - | Up to 4 stop sequences |
| `response_format` | object | No | - | Force output format (e.g., JSON) |
| `stream` | boolean | No | false | Stream partial progress |
| `context_length_exceeded_behavior` | string | No | truncate | "truncate" or "error" |
### Response
```json theme={null}
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "deepseek-ai/DeepSeek-R1",
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
}
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
```
#### Response Fields
| Field | Type | Description |
| --------- | --------- | ------------------------- |
| `id` | string | Unique response ID |
| `object` | string | Always "chat.completion" |
| `created` | integer | Unix timestamp |
| `model` | string | Model used for generation |
| `choices` | object\[] | Generated completions |
| `usage` | object | Token usage statistics |
### Important Notes
1. Use `response_format: {"type": "json_object"}` for JSON mode
2. Streaming responses include usage stats in final chunk
3. Default context handling differs from Other provider (truncates instead of erroring)
4. Multiple penalties interact - use carefully to avoid quality degradation
### Key Notes
1. Parameter support varies by model - check model documentation
2. New projects should use Responses format for latest features
3. Organization/project usage is tracked via headers
4. Find organization/project IDs in settings pages
# Rate limits
Source: https://docs.gmicloud.ai/inference-engine/api-reference/rate-limit
How GMI Cloud rate-limits inference API requests and how to handle 429 responses.
To maintain system stability and equitable access, our API enforces rate limiting, controlling how frequently an organization can send requests within a certain time window.
API rate limits are defined in two ways:
* **TPM (Tokens per Minute)** for LLM models
* **RPH (Requests per Hour)** for video models
These limits are enforced at the organization level.
## Usage Tiers and Auto Upgrades
Rate limits vary by usage tier, with each tier offering different quotas for each model. By default, organizations are assigned to **Tier 1**.
As you buy credit from our platform, we automatically upgrade you to the next usage tier, using the following tier system. For example, after purchasing a \$50 credit balance, you will be upgraded to Tier 2 within 24 hours.
Please note that voucher redemptions do not count towards purchase.
| Tier Name | Total Purchase Amount | Time After |
| --------- | --------------------- | ----------- |
| Tier 1 | \$0 | Immediately |
| Tier 2 | \$50 | 24 hours |
| Tier 3 | \$500 | 24 hours |
| Tier 4 | \$1000 | 24 hours |
If somehow you wish to request for a manual tier upgrade, please contact [support@gmicloud.ai](mailto:support@gmicloud.ai).
## Rate Limit Table
| Model Name | Tier 1 TPM | Tier 2 TPM | Tier 3 TPM | Tier 4 TPM | Tier 5 TPM |
| ---------- | ---------- | ---------- | ---------- | ----------- | ----------- |
| All Models | 1,000,000 | 3,000,000 | 50,000,000 | 100,000,000 | 300,000,000 |
Notes: The specific model is subject to adjustments.
# Video API Reference
Source: https://docs.gmicloud.ai/inference-engine/api-reference/video-api-reference
REST API reference for video inference endpoints.
## Introduction
This API reference describes the RESTful, streaming, and realtime APIs you can use to interact with GMI Inference. REST APIs are usable via HTTP in any environment that supports HTTP requests.
## Authentication
The GMI API uses API keys for authentication. Create, manage, and learn more about API keys in your organization settings.
**Important Security Notes:**
* API keys should be provided via HTTP Bearer authentication:
```http theme={null}
Authorization: Bearer GMI_API_KEY
```
* Never expose API keys in client-side code
* Load keys from environment variables or key management services
* For multi-organization access, specify headers:
```bash theme={null}
# Set API key as an environment variable
export GMI_API_KEY=
export GMI_ORG_ID=
# Call API
curl https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models \
-H "Authorization: Bearer $GMI_API_KEY" \
-H "X-Organization-ID: $GMI_ORG_ID"
```
## List Video Models
`GET https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models`
Lists available models by `model_id`.
### Example Request
```bash theme={null}
curl https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models \
-H "Authorization: Bearer $GMI_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Master",
"Kling-Text2Video-V2.1-Master",
"Luma-Ray2",
"Veo3",
"Veo3-Fast",
// ... other models ...
]
}
```
## Show Model Details
`GET https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/{model-id}`
Retrieves details for `{model_id}`. Use this to get full details of the model's schema and parameters.
### Example Request
```bash theme={null}
curl https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Veo3 \
-H "Authorization: Bearer $GMI_API_KEY"
```
### Response
```json theme={null}
{
"model": "Veo3",
"org_id": "google",
"brief_description": "Google Veo 3 - State-of-the-art video generation model that creates high-quality videos from text prompts and images.",
"detailed_description": "# Veo3 API Usage Guide\n\n## Overview\n\n**Veo3** is Google's most advanced video generation model, capable of creating stunning, realistic videos from text descriptions and optional reference images...",
"modalities": {
},
"parameters": [
{
"name": "prompt",
"display_name": "Text Prompt",
"description": "The text prompt used to guide video generation.",
"type": "string",
"required": true,
},
// other parameters
]
// other details
}
```
## Create Requests
`POST https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests`
The service API handles the full request/response cycle. It accepts the job, publishes status information, and publishes a link to the resulting artifact once processing completes. Clients can enqueue jobs and retrieve details and status. At the end of a successful job, the client can find the artifact details in the final status report.
### Example Request
All jobs are processed asyncronously. A successful request will be accepted and enqueued. The server will respond with request details.
```bash theme={null}
# Send a request to enqueue a video job. Capture the details to the variable response.
response=$(curl --request POST \
--url "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
--header "Authorization: Bearer $GMI_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "Veo3",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"durationSeconds": "8",
"aspectRatio": "16:9",
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_adult",
"seed": null
}
}')
```
### Response
```bash theme={null}
echo $response | jq .
{
"request_id": "5a7a5466-7948-47d8-8578-cff4b9581feb",
"model": "Veo3",
"status": "dispatched",
"created_at": 1753427199,
"updated_at": 1753427199,
"queued_at": 1753427199
}
```
***
## Observe Requests
`GET https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/$REQUEST_ID`
Clients should use the Requests API to find out when a job is complete and retrieve artifact details. The `status` field indicates if the job is dispatched, processing, finished, or other condition.
### Example Request
```bash theme={null}
# Get request_id
REQUEST_ID=$(echo $response | jq -r .request_id)
# Send request
curl --request GET \
--url https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/$REQUEST_ID \
--header "Authorization: Bearer $GMI_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "6fb2b474-fb3a-480f-a142-f200537c6de4",
"org_id": "63729242-1870-4ff4-80b0-d485980ae31c",
"model": "Veo3",
"status": "processing",
"is_public": false,
"payload": {
"aspectRatio": "16:9",
"durationSeconds": "8",
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_adult",
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"seed": null
},
"outcome": null,
"created_at": 1753468514,
"updated_at": 1753468514,
"queued_at": 1753468514
}
```
### Monitor a Request
This script will poll the job queue and block until the job is complete.
```bash theme={null}
until [ ${video_gen_status:-"Initializing"} == "success" ]
do
video_gen_status=$(curl --silent --request GET \
--url https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/$REQUEST_ID \
--header "Authorization: Bearer $GMI_API_KEY" | jq --raw-output .status)
echo $video_gen_status
sleep 1
done
unset video_gen_status
```
### Fetch the completed artifacts
A successful job will create a `dict` of output artifacts. Follow the links to retrieve result files.
### Example Request
```bash theme={null}
curl --request GET --silent --url https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/$REQUEST_ID \
--header "Authorization: Bearer $GMI_API_KEY" | jq .outcome
```
### Response
```json theme={null}
{
"thumbnail_image_url": "https://storage.googleapis.com/gmi-video-assests-prod/user-assests/63729242-1870-4ff4-80b0-d485980ae31c/15809070173546291047/sample_0.mp4",
"video_url": "https://storage.googleapis.com/gmi-video-assests-prod/user-assests/63729242-1870-4ff4-80b0-d485980ae31c/15809070173546291047/sample_0.mp4"
}
```
***
## File Handling
Some endpoints accept **file URLs** or **Base64 data URIs**.
| Method | Notes |
| -------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Data URI** | Convenient for small files. Large payloads may slow requests. |
| **Hosted URL** | Must be publicly accessible; some hosts block cross-site or rate-limit. |
| **Upload API** | Upload a file to GMI and get back a stable public URL to reuse in requests — see [Upload API](#upload-api) below. |
Check each model's discription for details.
### Upload API
If you'd rather not host files yourself, GMI provides a two-step upload that returns a stable public URL. Pass that URL to any endpoint that accepts an image, video, or audio input — for example Kling's `image_list` / `video_list` / `element_list` (`frontal_image`, `refer_images`, `refer_videos`) or Seedance's `reference_images` / `reference_videos`.
**1. Request an upload URL**
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/upload-url" \
-H "Authorization: Bearer $GMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"file_type": "png"}'
```
`file_type` is the file extension. Allowed values: `jpeg`, `jpg`, `png`, `mp4`, `mp3`, `wav`.
Response:
```json theme={null}
{
"upload_url": "https://storage.googleapis.com/.../.png?X-Goog-Algorithm=...",
"public_url": "https://storage.googleapis.com/.../.png"
}
```
| Field | Description |
| ------------ | --------------------------------------------------------------- |
| `upload_url` | Pre-signed URL to upload the file to. Valid for \~15 minutes. |
| `public_url` | Stable, publicly accessible URL to reference in later requests. |
**2. Upload the file**
`PUT` the raw bytes to `upload_url`, with `Content-Type` matching the file type (`image/png`, `image/jpeg`, `video/mp4`, `audio/mpeg`, `audio/wav`).
```bash theme={null}
curl -X PUT "" \
-H "Content-Type: image/png" \
--data-binary @./character.png
```
**3. Reference the file**
Use `public_url` wherever a hosted URL is accepted:
```json theme={null}
"image_list": [
{ "image_url": "", "type": "first_frame" }
]
```
***
# Video SDK Reference
Source: https://docs.gmicloud.ai/inference-engine/api-reference/video-sdk-reference
SDK reference for video inference on GMI Cloud.
## Overview
GMI Cloud Video Generation SDK provides a Python interface for creating, managing, and monitoring video generation requests using state-of-the-art AI models. This SDK allows users to generate videos from text prompts, images, or other inputs through an asynchronous request system.
## Features
* **Text-to-Video Generation**: Create videos from text descriptions
* **Image-to-Video Generation**: Animate static images into videos
* **Asynchronous Processing**: Submit requests and monitor progress
* **Multiple Model Support**: Access various video generation models
* **Request Management**: Track, retrieve, and manage video generation requests
* **Real-time Status Monitoring**: Get real-time updates on request progress
## Installation
To install the SDK, use pip:
```bash theme={null}
pip install gmicloud
```
## Setup and Authentication
### Prerequisites
Before using the video generation SDK, you must have:
* A GMI Cloud account
* Valid authentication credentials
### Authentication Configuration
There are two ways to configure authentication:
#### Option 1: Environment Variables (Recommended)
Set the following environment variables:
```bash theme={null}
export GMI_CLOUD_EMAIL=""
export GMI_CLOUD_PASSWORD=""
```
#### Option 2: Direct Parameter Passing
Pass credentials directly when initializing the client:
```python theme={null}
from gmicloud import Client
client = Client(
email="",
password=""
)
```
## Quick Start
### 1. Initialize the Client
```python theme={null}
from gmicloud import Client
# Initialize client (uses environment variables by default)
client = Client()
```
### 2. Explore Available Models
```python theme={null}
# Get all available video generation models
models = client.video_manager.get_models()
print(f"Available models: {[model.model for model in models]}")
# Get detailed information about a specific model
model_detail = client.video_manager.get_model_detail("Wan-AI_Wan2.1-T2V-14B")
print(f"Model details: {model_detail}")
```
### 3. Submit a Video Generation Request
```python theme={null}
from gmicloud._internal._models import SubmitRequestRequest
# Create a text-to-video request
request = SubmitRequestRequest(
model="Wan-AI_Wan2.1-T2V-14B",
payload={
"prompt": "A dog reading a book in a cozy library",
"video_length": 5 # Duration in seconds
}
)
# Submit the request
response = client.video_manager.create_request(request)
print(f"Request submitted with ID: {response.request_id}")
```
### 4. Monitor Request Progress
```python theme={null}
import time
request_id = response.request_id
# Poll for status updates
while True:
request_detail = client.video_manager.get_request_detail(request_id)
print(f"Status: {request_detail.status}")
if request_detail.status == "success":
print("Video generation completed!")
print(f"Result: {request_detail.outcome}")
break
elif request_detail.status == "failed":
print("Video generation failed!")
break
time.sleep(5) # Wait 5 seconds before checking again
```
## Detailed API Reference
### Client Initialization
```python theme={null}
class Client:
def __init__(self,
email: Optional[str] = "",
password: Optional[str] = ""):
"""
Initialize the GMI Cloud client.
Args:
email: Your GMI Cloud email
password: Your GMI Cloud password
"""
```
### Video Manager Methods
#### Get Available Models
```python theme={null}
def get_models() -> List[GetModelResponse]:
"""
Retrieve a list of available video generation models.
Returns:
List of available models with their details
"""
```
**Example:**
```python theme={null}
models = client.video_manager.get_models()
for model in models:
print(f"Model: {model.model}")
print(f"Description: {model.brief_description}")
print(f"Type: {model.model_type}")
print("---")
```
#### Get Model Details
```python theme={null}
def get_model_detail(model_id: str) -> GetModelResponse:
"""
Get detailed information about a specific model.
Args:
model_id: The ID of the model to retrieve
Returns:
Detailed model information including parameters and pricing
"""
```
**Example:**
```python theme={null}
model_detail = client.video_manager.get_model_detail("Wan-AI_Wan2.1-T2V-14B")
print(f"Model: {model_detail.model}")
print(f"Description: {model_detail.detailed_description}")
print(f"Parameters: {model_detail.parameters}")
print(f"Pricing: {model_detail.price_info}")
```
#### Submit Video Generation Request
```python theme={null}
def create_request(request: SubmitRequestRequest) -> SubmitRequestResponse:
"""
Submit a new video generation request.
Args:
request: The request object containing model and payload
Returns:
Response with request ID and initial status
"""
```
**Request Structure:**
```python theme={null}
class SubmitRequestRequest(BaseModel):
model: str # Model ID to use for generation
payload: dict # Generation parameters
```
**Example - Text-to-Video:**
```python theme={null}
request = SubmitRequestRequest(
model="Wan-AI_Wan2.1-T2V-14B",
payload={
"prompt": "A beautiful sunset over mountains",
"video_length": 5,
"negative_prompt": "blurry, low quality",
"cfg_scale": 7.5,
"seed": 42
}
)
```
**Example - Image-to-Video:**
```python theme={null}
request = SubmitRequestRequest(
model="Image-to-Video-Model",
payload={
"image": "https://example.com/input-image.jpg",
"prompt": "Animate this image with gentle movement",
"duration": 5,
"cfg_scale": 0.5
}
)
```
#### Get Request Details
```python theme={null}
def get_request_detail(request_id: str) -> GetRequestResponse:
"""
Get detailed information about a specific request.
Args:
request_id: The ID of the request to retrieve
Returns:
Detailed request information including status and results
"""
```
**Response Structure:**
```python theme={null}
class GetRequestResponse(BaseModel):
request_id: str # Unique request identifier
status: RequestStatus # Current status
model: str # Model used
payload: dict # Original request parameters
outcome: dict # Generated video information
created_at: int # Creation timestamp
updated_at: int # Last update timestamp
queued_at: int # Queue timestamp
```
#### Get User Requests
```python theme={null}
def get_requests(model_id: str) -> List[GetRequestResponse]:
"""
Get all requests for a specific model.
Args:
model_id: The model ID to filter requests
Returns:
List of requests for the specified model
"""
```
**Example:**
```python theme={null}
requests = client.video_manager.get_requests("Wan-AI_Wan2.1-T2V-14B")
for req in requests:
print(f"Request ID: {req.request_id}")
print(f"Status: {req.status}")
print(f"Created: {req.created_at}")
print("---")
```
## Request Status Reference
The SDK uses the following status values to track request progress:
```python theme={null}
class RequestStatus(Enum):
CREATED = "created" # Request has been created
QUEUED = "queued" # Request is waiting in queue
DISPATCHED = "dispatched" # Request has been dispatched to worker
PROCESSING = "processing" # Video generation in progress
SUCCESS = "success" # Video generation completed successfully
FAILED = "failed" # Video generation failed
CANCELLED = "cancelled" # Request was cancelled
```
## Complete Example: Text-to-Video Generation
Here's a complete example that demonstrates the full workflow:
```python theme={null}
import os
import sys
import time
from gmicloud import Client
from gmicloud._internal._models import SubmitRequestRequest
def time_to_str(time_in_seconds):
"""Convert seconds to a human-readable format."""
hours, remainder = divmod(time_in_seconds, 3600)
minutes, seconds = divmod(remainder, 60)
return f"{hours:02d}:{minutes:02d}:{seconds:02d}"
# Initialize client
client = Client()
# 1. Get available models
print("=== Available Models ===")
models = client.video_manager.get_models()
for model in models:
print(f"- {model.model}: {model.brief_description}")
# 2. Get model details
model_id = "Wan-AI_Wan2.1-T2V-14B"
print(f"\n=== Model Details for {model_id} ===")
model_detail = client.video_manager.get_model_detail(model_id)
print(f"Description: {model_detail.detailed_description}")
print(f"Parameters: {model_detail.parameters}")
# 3. Submit video generation request
print("\n=== Submitting Video Generation Request ===")
request = SubmitRequestRequest(
model=model_id,
payload={
"prompt": "A majestic eagle soaring through a clear blue sky",
"video_length": 5,
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 7.5
}
)
response = client.video_manager.create_request(request)
request_id = response.request_id
print(f"Request submitted with ID: {request_id}")
# 4. Monitor progress
print("\n=== Monitoring Progress ===")
count = 0
while True:
request_detail = client.video_manager.get_request_detail(request_id)
time_str = time_to_str(count * 5)
print(f"[{time_str}] Status: {request_detail.status}")
if request_detail.status == "success":
print("✅ Video generation completed successfully!")
print(f"Result: {request_detail.outcome}")
break
elif request_detail.status == "failed":
print("❌ Video generation failed!")
break
elif request_detail.status == "cancelled":
print("🚫 Request was cancelled!")
break
time.sleep(5)
count += 1
# 5. Get all requests for this model
print(f"\n=== All Requests for {model_id} ===")
all_requests = client.video_manager.get_requests(model_id)
for req in all_requests:
print(f"ID: {req.request_id}, Status: {req.status}, Created: {req.created_at}")
```
## Error Handling
The SDK provides comprehensive error handling:
```python theme={null}
try:
# Submit request
response = client.video_manager.create_request(request)
except ValueError as e:
print(f"Validation error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
# Check for None responses
request_detail = client.video_manager.get_request_detail(request_id)
if request_detail is None:
print("Failed to retrieve request details")
```
## Best Practices
### 1. Request Management
* Always store the `request_id` returned from `create_request()`
* Use appropriate polling intervals (5-10 seconds) to avoid overwhelming the API
* Implement timeout mechanisms for long-running requests
### 2. Error Handling
* Always check for `None` responses from API calls
* Handle different request statuses appropriately
* Implement retry logic for transient failures
### 3. Resource Management
* Monitor your usage and costs through the pricing information
* Clean up completed requests if needed
* Use appropriate video lengths and quality settings
### 4. Prompt Engineering
* Be specific and descriptive in your prompts
* Use negative prompts to avoid unwanted elements
* Experiment with different `cfg_scale` values for desired results
## Model-Specific Parameters
Different models may support different parameters. Always check the model details:
```python theme={null}
model_detail = client.video_manager.get_model_detail(model_id)
print("Supported parameters:")
for param in model_detail.parameters:
print(f"- {param.key}: {param.display_name} ({param.type})")
if hasattr(param, 'min') and hasattr(param, 'max'):
print(f" Range: {param.min} - {param.max}")
```
## Troubleshooting
### Common Issues
1. **Authentication Errors**
* Verify your credentials are correct
* Check that environment variables are properly set
* Ensure your account has video generation permissions
2. **Request Failures**
* Check the model parameters are valid
* Verify the model ID exists and is available
* Review the error details in the response
3. **Long Processing Times**
* Video generation can take several minutes
* Use appropriate polling intervals
* Check the model's expected processing time
### Getting Help
For additional support:
* Check the GMI Cloud platform: [https://inference-engine.gmicloud.ai/](https://inference-engine.gmicloud.ai/)
* Review the main SDK documentation in README.md
## API Limits and Pricing
* Video generation requests are processed asynchronously
* Processing time varies by model and video length
* Pricing is per second of video and varies by model
* Check `model_detail.price_info` for current pricing
# Pricing
Source: https://docs.gmicloud.ai/inference-engine/billing/price
Where to find current GMI Cloud pricing.
Pricing on GMI Cloud changes as new models, hardware, and regions come online. Rather than mirror prices here (where they would go stale), the up-to-date rates live in the console.
## Where to check
* **Inference (Serverless and Dedicated):** visit the [GMI Cloud Console](https://console.gmicloud.ai) and open **Inference > Model Hub**. Each model card shows current input/output rates and any region modifiers.
* **GPU Compute (clusters, bare metal, containers):** open **Compute > Home** in the [console](https://console.gmicloud.ai/user-console/ce). Each SKU card lists the live hourly rate, region, and any active discount.
* **Storage and networking:** shown on the relevant resource page in the console at allocation time.
## Estimating costs
When you provision a cluster, allocate an Elastic IP, or run a workload, the console shows a **Summary** panel with the estimated monthly cost, list price, and any applicable discount before you confirm.
For volume pricing, custom commitments, or enterprise agreements, [contact sales](https://www.gmicloud.ai/contact#sales).
# Usage
Source: https://docs.gmicloud.ai/inference-engine/billing/usage
Track usage and spending across inference services.
## Serverless Usage
You can view serverless usage in the dashboard.
1. Click the arrow next to your username in the upper right corner, and select "Billing" from the dropdown menu.
2. Click on "Serverless Usage" in the left-hand menu.You can view the serverless usage for different models and API keys. By default, the current month's daily usage is displayed.
3. Click the "Filter" button, and then you can modify the conditions for viewing usage.
Timezone: you can select "Local Timezone" or "UTC".
Time Range: you can select start time and end time for usage.
Granularity: you can choose "Daily" or "Hourly" for usage.
API Key: you can select the API Key for usage.
Model Name: you can select the model name for usage.
Click "Apply" button to apply the selection.
## Dedicated Usage
You can view dedicated usage in the dashboard.
1. Click the arrow next to your username in the upper right corner, and select "Billing" from the dropdown menu.
2. Click on "Dedicated Usage" in the left-hand menu.You can view the dedicated usage for different models and API keys. By default, the current month's daily usage is displayed.
3. Click the "Filter" button, and then you can modify the conditions for viewing usage.
Timezone: you can select "Local Timezone" or "UTC".
Time Range: you can select start time and end time for usage.
Granularity: you can choose "Daily" or "Hourly" for usage.
API Key: you can select the API Key for usage.
Model Name: you can select the model name for usage.
Click "Apply" button to apply the selection.
# GMI Router Overview
Source: https://docs.gmicloud.ai/inference-engine/gmi-router/gmi-router-overview
The GMI Router turns a plain-language request into the right model for the job. Send a chat, and the router picks the model and returns a completion, automatically.
Access the playground here: [https://console.gmicloud.ai/user-console/ie/gmi-router/test-routing](https://console.gmicloud.ai/user-console/ie/gmi-router/test-routing)
## **How routing works**
Autoroute treats model selection as a process, not a single guess. Every Autoroute request moves through the same sequence:
1. **Understand.** The router reads your latest message and classifies the task and its requirements.
2. **Compare.** It scores the allowed model pool across quality, cost, and latency.
3. **Validate.** The top candidate is checked before it is committed. A high score alone does not win the request.
4. **Select.** The router locks in the winning model.
5. **Respond.** The selected model generates the completion, returned inline or streamed token by token.
The flow, at a glance: Prompt -> Understand -> Compare -> Validate -> Select -> Respond.
**/autoroute** picks the model and returns the completion in one call. Streaming is the default.
## **Authentication**
Base URL: `https://console.gmicloud.ai/api/v1/ie/recommendation`
Send a bearer token in the Authorization header:
`Authorization: Bearer YOUR_TOKEN`
Most routed responses include an X-Recommendation-ID header. It is absent on auth and early validation errors.
## **Quick start: Autoroute**
Send an OpenAI-style messages\[] array. The router reads the latest user message, ranks the model pool, and generates with the top candidate.
```text theme={null}
curl -X POST https://console.gmicloud.ai/api/v1/ie/recommendation/autoroute \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{ "role": "user", "content": "Summarize this contract in three bullet points." }
],
"mode": "balanced",
"stream": false
}'
```
Non-streaming response:
```text theme={null}
{
"model": "provider/model-name",
"message": { "role": "assistant", "content": "..." },
"routing_metadata": {
"selected_model": "provider/model-name",
"task_type": "summarization",
"selected_mode": "balanced",
"fallback_models": ["provider/backup-a"],
"recommendation_id": "bab0a8bb-195f-49c5-8f9c-016da0d89cc8"
}
}
```
### **Request fields**
| **Field** | **Type** | **Required** | **Description** |
| :--------- | :------- | :----------- | :----------------------------------------------------------------------------------------------- |
| `messages` | array | Yes | OpenAI-style conversation. The full conversation influences routing, not only the latest message |
| `mode` | string | No | Accepted values are cost, balanced, or quality. Unknown request fields are ignored. |
| `stream` | boolean | No | Streaming is the default. Set false for one-shot JSON. |
### **Streaming vs non-streaming**
* **Streaming (default).** Returns text/event-stream. Chunks are proxied as they arrive, followed by a routing\_metadata event, then \[DONE]. One backup model may be tried before the first token on a 5xx, provider error, 429, or a 10-second first-token timeout. Once tokens start flowing, no further fallback happens; a mid-stream failure keeps the partial output, sends an error event, and closes the stream.
* **Non-streaming (stream: false).** Returns one JSON object, trying the primary model plus one backup on a transient failure (5xx, provider error, 429), with a combined timeout of 10 minutes for primary and backup.
The router is stateless. Resend the full conversation on every request.
## **Status codes**
| **Code** | **Meaning** |
| :------- | :----------------------------------------------- |
| `200` | Success. |
| `401` | Missing or invalid credentials. |
| `4xx` | Invalid request, such as a missing user message. |
| `5xx` | Routing or model generation failed. |
# Inference Overview
Source: https://docs.gmicloud.ai/inference-engine/ie-intro
Serverless and Dedicated endpoints for running ML models in production on GMI Cloud.
GMI Inference runs production ML models behind two endpoint types: **Serverless** for instant access to managed models, and **Dedicated** for fully customized, isolated deployments.
Pre-configured, OpenAI-compatible APIs. No infrastructure to manage. Pay per token. Best for prototyping and variable workloads.
Your own models on dedicated GPUs. Full control over hardware, scaling, and isolation. No rate limits. Best for steady or sensitive production traffic.
## Serverless Endpoints
Instant access to popular models through OpenAI-compatible APIs.
* **Zero setup.** Models are ready behind a single API key.
* **Autoscaling.** Capacity grows and shrinks with demand.
* **Per-token billing.** No idle compute charges.
Good for prototypes, small apps, and any workload where you'd rather not run infrastructure.
## Dedicated Endpoints
Provision your own endpoint on dedicated GPUs.
* **Bring your own model.** Deploy fine-tuned or proprietary weights.
* **Predictable performance.** Reserved GPU resources, consistent latency.
* **Isolated.** Private network, separate from other tenants.
* **No rate limits.** Cap is set by the hardware you provision.
Good for enterprise production, latency-sensitive applications, or large continuous workloads.
## Inference in the console
A tour of the screens you'll use inside the [GMI Cloud Console](https://console.gmicloud.ai).
### Dashboard
Landing screen for the Inference tab. Recent activity, usage trends, and shortcuts to your most-used resources.
### Model Hub
Browse the full catalog of available models, filter by modality (text, image, video, audio), and open a model card for API examples and parameters.
### Playground
Try any serverless model in the browser. Useful for prompt testing and parameter exploration before integrating via API.
### My Models
Your uploaded or fine-tuned models. Manage versions and visibility from here.
### Deployments
Manage Dedicated Endpoints: scale settings, model versions, and traffic routing.
### Storage
Inference Storage holds inputs, outputs, and other artifacts referenced by your endpoints.
Workflows, Team Space, and generated media are part of GMI Studio. See [Managing Workflows](/gmi-studio/gmi-studio-user-manual/managing-workflows) under the GMI Studio tab.
# Inference Storage
Source: https://docs.gmicloud.ai/inference-engine/inference-storage
Shared file workspace consumed by the Playground, Workflows, and Media Library.
Inference Storage is the shared file workspace consumed by the [Playground](/inference-engine/playground), Studio workflows, and the Media Library. Folders here are referenced by Studio nodes (for example `gmi-studio-input` and `gmi-studio-output`) and survive across runs.
URL: `https://console.gmicloud.ai/user-console/ie/inference-storage` (redirects to `/files`)
## Quota
A header bar shows usage against your quota, for example `221.42 MB / 10 GB used` with a percent indicator.
## Toolbar
* **Filter**: type/scope filter (default "All").
* **Search files**: text search across files and folders.
* **New Folder**: create a folder at the current path.
* **Upload Files**: multi-file upload.
## File listing
Columns: **File Name**, **Type**, **Size**, **Updated On**. Per-row actions and a select-all checkbox are available. Pagination at the bottom defaults to 10 / page.
## Typical folders for Studio users
* `gmi-studio-input`: assets you reference from workflows.
* `gmi-studio-output`: generated media written back by workflow runs.
## Reference a file in API requests
Files in Inference Storage are served from a hosted URL, and so are the outputs written to `gmi-studio-output`. You can pass that URL directly into any endpoint that accepts an image or video input — for example Kling's `image_list`, `video_list`, and `element_list` (`frontal_image` / `refer_images` / `refer_videos`) fields.
* **Hosted URL** — reference a stored file (or a generated output) by its URL.
* **Base64 data URI** — inline small files directly in the request.
* **Upload API** — upload a file programmatically and get back a public URL to reuse — see [Upload API](/inference-engine/api-reference/video-api-reference#upload-api).
For the full list of accepted input methods, see [File Handling](/inference-engine/api-reference/video-api-reference#file-handling).
## Next steps
* Build a workflow that reads from `gmi-studio-input`: [GMI Studio](/gmi-studio/gmi-studio-user-manual/introduction).
* Run a model that uploads inputs: [Playground](/inference-engine/playground).
# Dedicated Endpoint
Source: https://docs.gmicloud.ai/inference-engine/marketplace/dedicated
Provision a private inference endpoint for a chosen model with reserved GPU capacity.
Dedicated Endpoints provide a customizable environment for deploying AI models tailored to specific requirements.
## Console flow
URL: `https://console.gmicloud.ai/user-console/ie/deployments`
The **Deployments** page is where you provision and manage dedicated endpoints.
* **Create Deployment** (top-right): launches the wizard for selecting a model, region, GPU type, and scaling.
* Once running, the page lists each endpoint with its status, model, region, replica count, and per-deployment actions.
Empty state:
> **You haven't deployed any models yet**
>
> Deploy an open source model from the Model Library.
Featured shortcut cards offer one-click starts for popular models like *Gemini 3.5 Flash*, *MiMo-V2.5-Pro*, *GPT-5.5*, and *DeepSeek-V4-Pro*. The **Explore more** link jumps to the full model catalog. For per-model API docs, see the [Text catalog](/model-quickstarts/text/overview).
## Create your Dedicated Inference Endpoint
### Deploy a dedicated inference model
Select a model from the list.
Click the "Dedicated" button to start deployment:
Alternatively, you can also click on the model card and then click the "Deploy" button on the top right:
### Review Configurations
Confirm your GPU type, deployment name, auto-scaling policy, and other system configurations:
Then click "Deploy".
### View Deployment Status
To view your deployment status click the "Deployment" tab on the top right.
| **Status** | **Description** |
| ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| **Queued** | The deployment task has been added to the queue. It will start once all higher-priority tasks have been processed. |
| **Deploying** | The system is allocating hardware resources and initializing the model endpoint. |
| **Running** | Deployment is complete, and the endpoint is active and ready for production use. |
| **Stopped** | The deployment has been manually stopped by the user. It can be restarted at any time. |
| **Archived** | The deployment has been terminated permanently. It cannot be restarted, but historical records are retained for reference. |
You will only be billed for the period of time in "Running" status.
### Invoke API Endpoint
Once deployment is in "Running" status, click the "\<>" symol to access endpoint URL:
You can then use this URL to send API requests. An example is provided. Remember to replace "API\_KEY" with your real API key.
# Serverless Endpoint
Source: https://docs.gmicloud.ai/inference-engine/marketplace/serverless
Run inference on serverless endpoints with OpenAI-compatible APIs.
We offer a range of serverless endpoints for popular open-source models.
## Access a Serverless inference model
Select a model from the list.
Click on the model card:
### Model Details
To access the serverless connection details for your model, click on *"Descriptions"*:
### Playground
To access the Playground for your model, click on *"Playground"*:
| **Option** | **Description** |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Temperature** | Controls how much randomness you want in the generated text. A higher temperature produces more *creative* results, while a temperature of **0** yields deterministic, repeatable outputs, useful for testing and debugging. |
| **Max Tokens** | Defines the maximum number of tokens the model can generate (default: **4096**). If the combined token count (prompt + output) exceeds the model’s context limit, the API automatically reduces the output to fit. |
| **Top K** | A sampling method that filters to the **k most probable tokens**, redistributing probability mass among them. This helps constrain randomness and focus generation on the most likely outputs. |
| **Top P (Nucleus Sampling)** | Instead of temperature sampling, Top-P considers only tokens whose **cumulative probability ≤ top\_p**. For example, `top_p = 0.1` limits generation to the top 10% of probability mass. |
| **Frequency Penalty** | Reduces repetition of words or phrases. A higher value discourages the model from reusing tokens already present in the output, helping maintain variety and avoid redundancy. |
| **Presence Penalty** | Encourages the introduction of **new ideas or topics**. A higher value pushes the model to generate novel concepts instead of reiterating existing ones. |
| **Stream** | Enables incremental, real-time output streaming, allowing responses to be processed and displayed as they are generated. |
| **System Prompt** | Provides a **high-level instruction or context** that guides the model’s tone, behavior, and responses throughout the interaction. |
# My Models
Source: https://docs.gmicloud.ai/inference-engine/my-models
Manage user-owned, fine-tuned, or custom models that your dedicated deployments can target.
The My Models page lists user-owned, fine-tuned, or custom models that your [Deployments](/inference-engine/marketplace/dedicated) can target.
URL: `https://console.gmicloud.ai/user-console/ie/my-models`
## Top-right actions
* **PerfLab**: opens GMI's external benchmarking tool in a new tab.
* **Create Model**: launches the create-model flow.
## Empty state
When no models are registered:
> **No models found**
>
> Start by creating a model to manage and deploy it here.
A primary **Create Model** CTA is offered in the empty state.
## Next steps
* Run a model interactively: [Playground](/inference-engine/playground).
* Provision a private endpoint: [Dedicated Endpoint](/inference-engine/marketplace/dedicated).
# Playground
Source: https://docs.gmicloud.ai/inference-engine/playground
Interactive testbed for every model in the catalog. Chat with LLMs, run multimodal models, and launch workflows.
The Playground is an interactive testbed for any model in the [Model Hub](/model-quickstarts/text/overview). Three modes are exposed as tabs at the top:
* **LLM**: text and chat models.
* **Multimodal**: image, video, audio, and vision models.
* **Workflow**: launches the visual workflow runner for saved [Studio workflows](/gmi-studio/gmi-studio-user-manual/introduction).
Top-right links: **Model Details** (jumps to the current model's catalog page) and **Tooling in docs** (this site).
URL: `https://console.gmicloud.ai/user-console/ie/playground/llm`
## LLM mode
A model selector above the chat (default *Gemini 3.5 Flash*). Selecting a new model routes to `/playground/llm/`.
The left settings panel exposes the common LLM controls:
| Control | Default | Notes |
| :---------------- | :---------------------------- | :--------------------- |
| Temperature | 0.5 | Sampling temperature |
| Max Tokens | 4096 | Per-response cap |
| Top K | 1 | Top-K sampling |
| Top P | 0.9 | Nucleus sampling |
| Frequency Penalty | 0 | |
| Presence Penalty | 0 | |
| Stream | On | Token streaming toggle |
| System Prompt | "You are a helpful assistant" | Editable |
The chat surface fills the rest of the screen with a "Type your message" composer at the bottom.
## Multimodal mode
Pick an image, video, audio, or vision model. The UI adapts per model: prompt textarea, asset upload slot, and model-specific parameters (e.g. duration for video, voice ID for TTS).
## Workflow mode
Opens an embedded workflow runner so you can execute saved Studio workflows without leaving the Playground.
## Next steps
* Browse the [Text catalog](/model-quickstarts/text/overview), [Image catalog](/model-quickstarts/image/overview), [Video catalog](/model-quickstarts/video/overview), or [Audio catalog](/model-quickstarts/audio/overview) for model IDs and API examples.
* Build a multi-step pipeline in [GMI Studio](/gmi-studio/gmi-studio-user-manual/introduction).
# Artifacts
Source: https://docs.gmicloud.ai/inference-engine/resources/artifacts
Inputs, outputs, and other files referenced by inference workflows.
Artifacts manage model artifacts and their dependencies, including Docker containers, model files, and associated scripts. They offer secure storage and versioning capabilities for all deployment components. After building artifacts, you can launch tasks for custom models.
## View Artifacts
1. Click "Resources Overview" in the upper right corner of the menu.
2. Click on "Artifacts" in the left-hand menu.You can view artifacts dashboard.
**Custom Models**: Custom Modes are built by you.
**Offical Modes**: Offical Models are provided by GMI Cloud.
## Create Artifacts from template
1. Click the arrow next to button "Create Custom Artifact".
2. You can view the template list, select a template, and then create a custom model artifact based on that template.
## Create Custom Artifacts
1. Click the button "Create Custom Artifact".
**Artifact Name** : Input artifact name.
**Description**: Input description.
**Upload Icon**: Upload Icon.
**Build File**: Upload a build ZIP file including Docker containers and associated scripts. E.g.
2. Click the "Create" button to create an artifact. You will then see the artifact in the artifact dashboard under custom models, along with its building status.
3. Upload model files by clicking button
4. Wait for the artifact to reach "Running" status (this may take several minutes), and then you can launch a task from the built artifact.
# Resources
Source: https://docs.gmicloud.ai/inference-engine/resources/resources
Overview of inference resources: artifacts, tasks, and storage.
A dedicated endpoint can be created by launching tasks from both official and custom models.
Official models are provided by GMI Cloud.\
Custom models are built by creating artifacts. Artifacts manage model components and their dependencies, including Docker containers, model files, and associated scripts, offering secure storage and versioning capabilities for all deployment elements.
Click "Resources Overview" in the upper right corner of the menu. Then you will see "Tasks" and "Artifacts" in the left-hand menu.
# Tasks
Source: https://docs.gmicloud.ai/inference-engine/resources/tasks
Track and manage asynchronous inference tasks.
Tasks are designed to create dedicated endpoints for the provided official models or for custom models derived from the artifacts you have built.
## View Tasks
1. Click "Resources Overview" in the upper right corner of the menu.
2. Click on "Tasks" in the left-hand menu.You can view tasks dashboard.
* **Name**: Task name.
* **Artifact**: Task created from which artifact.
* **Spec**: One replica required resources specification.
* **Access**: Service - dedicated endpoint URL
Dashboard - monitor task deployment
* **Schedule**: Task's scheduling, One-off or daily.
* **Created**: Task created time
* **Status**:\
Idle - The task is not currently running and is waiting for execution. No resources are being used.
In-queue - The task is waiting in line to be executed.
Starting - The task is in the process of initializing. Resources are being allocated, and the task is preparing to run.
Running - The task is currently executing. Resources are actively being used to perform the task.
Need Stop - The task is about to be terminated.
* **Actions**: Click button
to deactive the running task.
Click button
to active the idle task.
Click Edit menu to edit the task.
Click Archive menu to archive the task.
4. Click the status tab to review the tasks corresponding to each status.
## Launch Tasks
1. Click "Launch Task" button to launch task for provided models or customized artifacts.
2. Setting resource
The resource cannot be edited; click the "Next" button.
3. Setting and scheduling
**Task Name**: Define task name.
**File Path**: Specify the script file name to be executed in the Docker image(without the file extension). Fox example, if the image includes a script named serve.py, enter serve here.
**Deployment Name**: Specify the deployment name that will be exposed to the Ray cluster by the script. For example, you can use app as the deployment name.
**Type**: One-off or Daily
One-off - The task runs once as scheduled time.
Daily - The task runs at the first scheduled time and can update replica numbers at subsequent daily scheduled times. This option is designed for recurring, predictable workloads where scaling needs follow a consistent daily pattern.
**Timezone**: Select the timezone for scheduling.
**Time**: Select the time for scheduling.
**Replicas**: Select the Min replicas and Max replicas for schedule.
4. Summary
Review the information in the summary page. After confirmation, click the "Launch" button to launch task.
5. Active the Task
In the task list, locate the task and then click button
to active the idle task.
# 06/24/2026 Change Log
Source: https://docs.gmicloud.ai/inference/console-release-notes/06-24-2026-change-log--
This release includes updates to Playground History, Credit Bundle, and Tier Limit rules to improve usability, payment conversion, and account-level usage governance.
## **What’s New**
### **1. Playground History**
* Added a Playground History tab for multimodal generation history.
* Users can more easily review recent Playground activity.
* This update improves continuity during testing and iteration workflows.
### **2. Credit Bundle**
* Introduced a **first top-up** bonus:
* First top-up ≥ \$50 → +\$3 credit
* Available once per account lifetime
* Bonus expires in 90 days
* Introduced **cumulative** top-up grade rebates:
* \$200 cumulative top-up → +\$16 credit
* \$500 cumulative top-up → +\$50 credit
* \$2,500 cumulative top-up → +\$300 credit
* \$10,000 cumulative top-up → +\$1,500 credit
* This update is designed to improve first-payment conversion and reward continued deposits.
### **3. Tier Limit Updates**
* Updated account tier criteria based on cumulative top-up amount.
* Adjusted LLM TPM limits for different account tiers:
| **Tier** | **Cumulative Top-up** | **LLM RPM** | **LLM TPM** | **Multimodal RPM** | **Multimodal TPM** |
| :------- | :-------------------- | :---------- | :---------- | :----------------- | :----------------- |
| Tier 1 | \$0–\$50 | Unlimited | 1,000K | Unlimited | Unlimited |
| Tier 2 | \$50–\$500 | Unlimited | 3,000K | Unlimited | Unlimited |
| Tier 3 | \$500–\$1,000 | Unlimited | 50M | Unlimited | Unlimited |
| Tier 4 | \$1,000–\$5,000 | Unlimited | 100M | Unlimited | Unlimited |
| Tier 5 | \$5,000+ | Unlimited | 300M | Unlimited | Unlimited |
* LLM RPM, multimodal RPM, and multimodal TPM are unlimited for all tiers in this phase.
* LLM and multimodal tier limits are now aligned with the latest backend policy for this phase.
## **Notes**
* Some tier limits are currently enforced only at the backend level.
* UI and policy wording have been updated to better reflect the current account and billing logic.
* All credit purchases are final and non-refundable, except where required by applicable law.
* This release focuses on improving the core payment and usage framework for Console Phase 1.
# Migration Guides
Source: https://docs.gmicloud.ai/migration/index
Guides for moving data and workloads into GMI Cloud.
## Moving AI Workloads to GMI Cloud
**Welcome!**
You've made it. Moving to GMI Cloud is the best decision for your AI workloads, and we’re here to make the transition smooth, fast, and stress-free. Follow this guide, and you’ll be up and running in no time. Let’s get you settled into your new AI home.
# AWS S3 to GMI Cloud
Source: https://docs.gmicloud.ai/migration/s3-to-vast-migration
Move data from AWS S3 to GMI Cloud Cold Storage using S3-compatible tools and standard CLI workflows.
## Introduction
This guide walks through moving data from AWS S3 to GMI Cloud Cold Storage. GMI Cloud Cold Storage is built on VAST Storage and speaks the S3 protocol, so existing S3 tooling continues to work. Use this page as a reference when planning a migration, including method selection, the standard procedure, and post-migration checks.
## Why move from AWS S3
AWS S3 is the default for object storage: scalable, durable, and easy to use. As datasets grow, long-term storage and egress costs become the main concern, and teams start looking for a cheaper place to keep archival or rarely-accessed data. GMI Cloud Cold Storage targets that workload, S3-compatible APIs, lower per-GB cost, and high throughput for large objects.
## GMI Cloud Cold Storage
GMI Cloud Cold Storage uses VAST Storage under the hood. It speaks S3, NFS, and SMB, so most existing tools work without code changes. The S3 API surface is the same as AWS S3 for the operations you care about (`PutObject`, `GetObject`, `ListObjectsV2`, multipart upload), so `aws s3`, `rclone`, and any S3 SDK can target a Cold Storage bucket.
## Migration methods
VAST does not ship its own migration tool. Three approaches work today:
### 1. AWS CLI
Pull data down with `aws s3` and push up with `rclone`. Good for moderate datasets and when you have a fast staging machine with enough local disk.
```bash theme={null}
# Download from AWS S3 to local
aws s3 sync s3://your-source-bucket /local-storage-path
# Upload from local to GMI Cloud
rclone sync /local-storage-path gmi-cloud:your-destination-bucket
```
### 2. Direct transfer (S3-to-S3)
Skip the local staging step. `rclone` can read from AWS S3 and write to GMI Cloud in a single command. Best when both sides have good network throughput.
```bash theme={null}
rclone sync aws_s3:source-bucket gmi-cloud:destination-bucket
```
You can also mount Cold Storage over NFS or SMB and copy files with whatever tool you already use for local-to-LAN transfers.
### 3. Third-party migration tools
Several tools handle large-scale transfers with integrity checks, retries, and incremental sync:
* **AWS DataSync**
* **rclone** (recommended for most cases, simple config, supports both ends)
These add data integrity verification, incremental updates, and detailed logs you can keep for audit.
## Standard procedure
### 1. Plan and prepare
* **Assess the data.** Type, volume, access frequency. Decide what moves now and what stays put.
* **Set up credentials.** Create an AWS IAM user with S3 read access on the source buckets, and get API keys for GMI Cloud Cold Storage.
### 2. Configure the tools
```bash theme={null}
aws configure
rclone config
```
When prompted, paste the AWS IAM credentials and the GMI Cloud credentials.
### 3. Run the migration
Pick a method from above and start the copy:
```bash theme={null}
# CLI route
aws s3 sync s3://source-bucket /local
rclone sync /local gmi-cloud:destination-bucket
# Or direct
rclone sync aws_s3:source-bucket gmi-cloud:destination-bucket
```
Watch the run, log lines and exit codes catch most issues early.
### 4. Verify
Compare object counts and total bytes between the source and destination buckets. Spot-check a few large objects for byte-for-byte equality. Run smoke tests against any application that reads from the migrated data.
### 5. Cut over
Update application and service configs to point at the GMI Cloud Cold Storage endpoint. Re-run your normal application test suite to verify functionality.
## Operational best practices
* **Security.** Use HTTPS for transfers and rotate credentials after the migration completes.
* **Backups.** Keep a copy in AWS S3 until you've verified the migration in production.
* **Logs.** Capture rclone or DataSync output so you can audit the migration later.
* **Bandwidth.** Schedule big transfers off-hours to avoid impacting production traffic.
## Conclusion
Moving from AWS S3 to GMI Cloud Cold Storage lowers long-term storage cost without changing your tooling: the S3 API stays the same, and `aws`, `rclone`, and similar tools work out of the box. Plan the migration, pick the method that fits the dataset size, verify the copy, then cut over.
# hunyuan-3d-pro
Source: https://docs.gmicloud.ai/model-quickstarts/3d/hunyuan-3d-pro
API usage guide for hunyuan-3d-pro.
**Model ID**
```bash theme={null}
hunyuan-3d-pro
```
**Calling method:** async
# Hunyuan 3D Pro API Documentation
Hunyuan 3D Pro is Tencent's intelligent 3D content generation model. It creates high-quality 3D models from text descriptions or reference images with support for PBR materials.
## 1. API Endpoint & Authentication
**Base URL:** `https://console.gmicloud.ai`
**Endpoint:** `POST /api/v1/ie/requestqueue/apikey/requests`
**Header:**
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
## 2. Model Specifications
* **Pricing:** \$0.375 per 3D model
* **Concurrent Tasks:** Up to 3 simultaneous jobs
* **Output Format:** 3D model file
* **Face Count Range:** 40,000 - 1,500,000 polygons
## 3. Generation Modes
### Text-to-3D
Provide a text prompt describing the 3D object you want to create.
### Image-to-3D
Provide a reference image URL. Best results with:
* Simple/solid background
* Single object
* Object occupies >50% of frame
* No text overlays
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :-------------- | :------ | :---------- | :---------------------------------------------------- |
| `prompt` | string | Conditional | Text description for 3D generation. |
| `image_url` | string | Conditional | Reference image URL (mutually exclusive with prompt). |
| `enable_pbr` | boolean | No | Enable PBR material generation. |
| `face_count` | integer | No | Polygon count (40,000 - 1,500,000). |
| `generate_type` | string | No | Normal, LowPoly, Geometry, or Sketch. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "hunyuan-3d-pro",
"payload": {
"prompt": "A cute cartoon cat",
"enable_pbr": true,
"face_count": 500000
}
}'
```
## 6. Checking Request Status
**Endpoint:**
```bash theme={null}
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* **queued**: Waiting in line.
* **processing**: Generating 3D model.
* **success**: Completed. Find URL in `outcome.media_urls`.
* **failed**: Request failed.
# Audio Models
Source: https://docs.gmicloud.ai/model-quickstarts/audio/about
Audio models turn text into speech, clone or style voices, generate music, or edit audio. Capabilities and latency profiles differ by provider and tier.
## Technical topics
* **Text-to-speech (TTS)**, Natural speech from text; variants tuned for quality vs speed.
* **Voice cloning**, Reference audio to match timbre or style where supported.
* **Real-time / low-latency** Models optimized for interactive or live use cases.
* **Languages & prosody**, Multilingual support, emotion, and pacing depend on the specific model.
* **Music generation**, Lyrics- or prompt-driven music where available.
## Model API & platform docs
For serving modes (serverless vs dedicated), billing, rate limits, task polling, and unified API patterns, see the [**API Reference**](/api-reference/introduction) section.
# Chatterbox-tts
Source: https://docs.gmicloud.ai/model-quickstarts/audio/chatterbox-tts
API usage guide for Chatterbox-tts.
**Model ID**
```bash theme={null}
Chatterbox-tts
```
**Calling method:** sync
# Resemble AI Chatterbox TTS API Usage Guide
## Overview
**Chatterbox TTS** is Resemble AI's premier text-to-speech model. It generates high-quality audio from text or SSML.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Text-to-Speech Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Chatterbox-tts",
"payload": {
"voice_uuid": "your-voice-uuid",
"data": "Hello, this is a test of the Resemble AI TTS system.",
"output_format": "wav",
"sample_rate": 48000
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| --------------- | ------- | -------- | ------------------------------------------------------------------- | --------- |
| `voice_uuid` | string | Yes | Voice UUID to use for synthesis. | - |
| `data` | string | Yes | Text or SSML to synthesize. Maximum 3,000 characters. | - |
| `title` | string | No | Optional title for the generated clip. | - |
| `output_format` | enum | No | Audio output format (wav, mp3). | "wav" |
| `sample_rate` | enum | No | Audio sample rate in Hz. | 48000 |
| `precision` | enum | No | Audio precision for WAV output. | "PCM\_32" |
| `use_hd` | boolean | No | Enables higher-definition synthesis with a small latency trade-off. | false |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "Chatterbox-tts",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "Chatterbox-tts",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../resemble_output_0.wav"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Audio is currently being generated |
| `success` | Audio generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Per second
# Realtime-tts-1.5-max
Source: https://docs.gmicloud.ai/model-quickstarts/audio/inworld-tts-1-5-max
API usage guide for Realtime-tts-1.5-max.
**Model ID**
```bash theme={null}
inworld-tts-1.5-max
```
**Calling method:** sync
# Inworld TTS 1.5 Max API Usage Guide
## Overview
**Inworld TTS 1.5 Max** is a high-quality text-to-speech model with enhanced alignment data, including detailed phoneme-level timing and viseme symbols for lip-sync animation.
### Key Features:
* **65 Voices** across 16 languages
* **Enhanced Alignment**: Detailed `phoneticDetails` with phoneme-level timing
* **Viseme Symbols**: Direct lip-sync animation support (aei, o, bmp, fv, l, r, th, qw, ee, cdgknstxyz)
* **Multiple Formats**: MP3, WAV, OGG\_OPUS, FLAC, ALAW, MULAW
* **Text Normalization**: Automatic expansion of numbers, dates, abbreviations
## Available Voices (65 total)
### English (25 voices)
| Voice | Description | Tags |
| --------- | --------------------------- | ------------------------------ |
| Alex | Energetic mid-range male | friendly, expressive |
| Ashley | Warm, natural female | warm, mellow |
| Blake | Rich, intimate male | intimate, romantic |
| Carter | Radio announcer-style male | intense, motivational |
| Clive | British male, calm | calm, friendly, british |
| Craig | Older British male, refined | posh, raspy, british |
| Deborah | Gentle, elegant female | gentle, elegant |
| Dennis | Smooth, calm male | outgoing, upbeat |
| Dominus | Robotic, deep male | robotic, monotone |
| Edward | Fast-talking, emphatic male | emphatic, shouty |
| Elizabeth | Professional female | informative, calm |
| Hades | Commanding, gruff male | commanding, gruff |
| Hana | Bright, expressive female | bright, playful |
| Julia | Quirky, high-pitched female | childish, quirky |
| Luna | Calm, relaxing female | calm, relaxing |
| Mark | Energetic male, rapid-fire | articulate, engaging |
| Olivia | British female, upbeat | cute, upbeat, british |
| Pixie | Childlike female | cartoonish, high-pitched |
| Priya | Female, Indian accent | friendly, gentle |
| Ronald | British male, deep voice | confident, expressive, british |
| Sarah | Young adult female | upbeat, excited |
| Shaun | Friendly, dynamic male | calm, casual |
| Theodore | Gravelly male, elderly | elderly, wise |
| Timothy | Lively American male | hyped, upbeat |
| Wendy | British female, posh | pleasant, casual, british |
### Chinese 中文 (4 voices)
| Voice | Description | Tags |
| ------- | ----------- | ------------------ |
| Yichen | 年轻男声 | clear, friendly |
| Xiaoyin | 年轻女声, 温柔 | polite, kind |
| Xinyi | 女声, 中性 | professional, warm |
| Jing | 活力女声 | soft, clear |
### Japanese 日本語 (2 voices)
| Voice | Description | Tags |
| ------- | ----------- | ---------------- |
| Asuka | 若い女性 | energetic, clear |
| Satoshi | 男性, 表現力豊か | nervous, curious |
### Korean 한국어 (4 voices)
| Voice | Description | Tags |
| ------- | ----------- | ------------------- |
| Hyunwoo | 젊은 남성 | polite, warm |
| Minji | 젊은 여성 | light, bright |
| Seojun | 성숙 남성 | deep, authoritative |
| Yoona | 여성, 부드러움 | sad, clear |
### Other Languages
* **French (4)**: Alain, Hélène, Mathieu, Étienne
* **German (2)**: Johanna, Josef
* **Spanish (4)**: Diego, Lupita, Miguel, Rafael
* **Italian (2)**: Gianni, Orietta
* **Portuguese-BR (2)**: Heitor, Maitê
* **Russian (4)**: Svetlana, Elena, Dmitry, Nikolai
* **Dutch (4)**: Erik, Katrien, Lennart, Lore
* **Polish (2)**: Szymon, Wojciech
* **Hindi (2)**: Riya, Manoj
* **Hebrew (2)**: Yael, Oren
* **Arabic (2)**: Nour, Omar
## Authentication
All API requests require Basic authentication:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit TTS Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "inworld-tts-1.5-max",
"payload": {
"text": "Hello, world! What a wonderful day!",
"voice_id": "Dennis",
"audio_encoding": "MP3",
"sample_rate_hertz": 22050,
"speaking_rate": 1.0,
"temperature": 1.1,
"timestamp_type": "WORD"
}
}'
```
## Response
Inworld TTS is **synchronous** and returns results immediately.
```json theme={null}
{
"request_id": "abc123-def456",
"model": "inworld-tts-1.5-max",
"status": "success",
"outcome": {
"audio_url": "https://storage.googleapis.com/...",
"media": [{"type": "audio", "url": "https://..."}],
"usage": {
"processed_characters": 35,
"model_id": "inworld-tts-1.5-max"
},
"timestamp_info": {
"wordAlignment": {
"words": ["Hello,", "world!"],
"wordStartTimeSeconds": [0, 0.37],
"wordEndTimeSeconds": [0.37, 0.83],
"phoneticDetails": [...]
}
}
}
}
```
## Pricing
* **Pricing Type**: Per character
* **Price**: Contact for pricing
* **Unit**: Characters
# Realtime-tts-1.5-mini
Source: https://docs.gmicloud.ai/model-quickstarts/audio/inworld-tts-1-5-mini
API usage guide for Realtime-tts-1.5-mini.
**Model ID**
```bash theme={null}
inworld-tts-1.5-mini
```
**Calling method:** sync
# Inworld TTS 1.5 Mini API Usage Guide
## Overview
**Inworld TTS 1.5 Mini** is a fast and efficient text-to-speech model with enhanced alignment data, including detailed phoneme-level timing and viseme symbols for lip-sync animation. Optimized for lower latency and real-time applications.
### Key Features:
* **65 Voices** across 16 languages
* **Fast Processing**: Optimized for lower latency
* **Enhanced Alignment**: Detailed `phoneticDetails` with phoneme-level timing
* **Viseme Symbols**: Direct lip-sync animation support (aei, o, bmp, fv, l, r, th, qw, ee, cdgknstxyz)
* **Multiple Formats**: MP3, WAV, OGG\_OPUS, FLAC, ALAW, MULAW
* **Text Normalization**: Automatic expansion of numbers, dates, abbreviations
## Available Voices (65 total)
### English (25 voices)
| Voice | Description | Tags |
| --------- | --------------------------- | ------------------------------ |
| Alex | Energetic mid-range male | friendly, expressive |
| Ashley | Warm, natural female | warm, mellow |
| Blake | Rich, intimate male | intimate, romantic |
| Carter | Radio announcer-style male | intense, motivational |
| Clive | British male, calm | calm, friendly, british |
| Craig | Older British male, refined | posh, raspy, british |
| Deborah | Gentle, elegant female | gentle, elegant |
| Dennis | Smooth, calm male | outgoing, upbeat |
| Dominus | Robotic, deep male | robotic, monotone |
| Edward | Fast-talking, emphatic male | emphatic, shouty |
| Elizabeth | Professional female | informative, calm |
| Hades | Commanding, gruff male | commanding, gruff |
| Hana | Bright, expressive female | bright, playful |
| Julia | Quirky, high-pitched female | childish, quirky |
| Luna | Calm, relaxing female | calm, relaxing |
| Mark | Energetic male, rapid-fire | articulate, engaging |
| Olivia | British female, upbeat | cute, upbeat, british |
| Pixie | Childlike female | cartoonish, high-pitched |
| Priya | Female, Indian accent | friendly, gentle |
| Ronald | British male, deep voice | confident, expressive, british |
| Sarah | Young adult female | upbeat, excited |
| Shaun | Friendly, dynamic male | calm, casual |
| Theodore | Gravelly male, elderly | elderly, wise |
| Timothy | Lively American male | hyped, upbeat |
| Wendy | British female, posh | pleasant, casual, british |
### Chinese 中文 (4 voices)
| Voice | Description | Tags |
| ------- | ----------- | ------------------ |
| Yichen | 年轻男声 | clear, friendly |
| Xiaoyin | 年轻女声, 温柔 | polite, kind |
| Xinyi | 女声, 中性 | professional, warm |
| Jing | 活力女声 | soft, clear |
### Japanese 日本語 (2 voices)
| Voice | Description | Tags |
| ------- | ----------- | ---------------- |
| Asuka | 若い女性 | energetic, clear |
| Satoshi | 男性, 表現力豊か | nervous, curious |
### Korean 한국어 (4 voices)
| Voice | Description | Tags |
| ------- | ----------- | ------------------- |
| Hyunwoo | 젊은 남성 | polite, warm |
| Minji | 젊은 여성 | light, bright |
| Seojun | 성숙 남성 | deep, authoritative |
| Yoona | 여성, 부드러움 | sad, clear |
### Other Languages
* **French (4)**: Alain, Hélène, Mathieu, Étienne
* **German (2)**: Johanna, Josef
* **Spanish (4)**: Diego, Lupita, Miguel, Rafael
* **Italian (2)**: Gianni, Orietta
* **Portuguese-BR (2)**: Heitor, Maitê
* **Russian (4)**: Svetlana, Elena, Dmitry, Nikolai
* **Dutch (4)**: Erik, Katrien, Lennart, Lore
* **Polish (2)**: Szymon, Wojciech
* **Hindi (2)**: Riya, Manoj
* **Hebrew (2)**: Yael, Oren
* **Arabic (2)**: Nour, Omar
## Authentication
All API requests require Basic authentication:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit TTS Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "inworld-tts-1.5-mini",
"payload": {
"text": "Hello, world! What a wonderful day!",
"voice_id": "Dennis",
"audio_encoding": "MP3",
"sample_rate_hertz": 22050,
"speaking_rate": 1.0,
"temperature": 1.1,
"timestamp_type": "WORD"
}
}'
```
## Response
Inworld TTS is **synchronous** and returns results immediately.
```json theme={null}
{
"request_id": "abc123-def456",
"model": "inworld-tts-1.5-mini",
"status": "success",
"outcome": {
"audio_url": "https://storage.googleapis.com/...",
"media": [{"type": "audio", "url": "https://..."}],
"usage": {
"processed_characters": 35,
"model_id": "inworld-tts-1.5-mini"
},
"timestamp_info": {
"wordAlignment": {
"words": ["Hello,", "world!"],
"wordStartTimeSeconds": [0, 0.37],
"wordEndTimeSeconds": [0.37, 0.83],
"phoneticDetails": [...]
}
}
}
}
```
## Pricing
* **Pricing Type**: Per character
* **Price**: Contact for pricing
* **Unit**: Characters
# inworld-tts-2
Source: https://docs.gmicloud.ai/model-quickstarts/audio/inworld-tts-2
API usage guide for inworld-tts-2.
**Model ID**
```bash theme={null}
inworld-tts-2
```
**Calling method:** sync
# Inworld Realtime TTS 2 API Usage Guide
## Overview
**Inworld Realtime TTS 2** is Inworld's next-generation text-to-speech model, delivering higher quality audio with lower latency. It supports the same 282 voices across 200+ languages and locales as TTS 1.5, with enhanced naturalness and expressiveness. Includes phoneme-level timing and viseme symbols for lip-sync animation.
### Key Features:
* **282 Voices** across 200+ languages and locales
* **Higher Quality**: Improved naturalness and expressiveness over TTS 1.5
* **Lower Latency**: Optimized for real-time applications
* **Word & Character Timestamps**: Optional alignment metadata for captions and highlights
* **Multiple Formats**: MP3, WAV, OGG\_OPUS, FLAC, ALAW, MULAW
* **Text Normalization**: Automatic expansion of numbers, dates, abbreviations
## Available Voices (282 total)
### English (25 voices)
| Voice | Description | Tags |
| --------- | --------------------------- | ------------------------------ |
| Alex | Energetic mid-range male | friendly, expressive |
| Ashley | Warm, natural female | warm, mellow |
| Blake | Rich, intimate male | intimate, romantic |
| Carter | Radio announcer-style male | intense, motivational |
| Clive | British male, calm | calm, friendly, british |
| Craig | Older British male, refined | posh, raspy, british |
| Deborah | Gentle, elegant female | gentle, elegant |
| Dennis | Smooth, calm male | outgoing, upbeat |
| Dominus | Robotic, deep male | robotic, monotone |
| Edward | Fast-talking, emphatic male | emphatic, shouty |
| Elizabeth | Professional female | informative, calm |
| Hades | Commanding, gruff male | commanding, gruff |
| Hana | Bright, expressive female | bright, playful |
| Julia | Quirky, high-pitched female | childish, quirky |
| Luna | Calm, relaxing female | calm, relaxing |
| Mark | Energetic male, rapid-fire | articulate, engaging |
| Olivia | British female, upbeat | cute, upbeat, british |
| Pixie | Childlike female | cartoonish, high-pitched |
| Priya | Female, Indian accent | friendly, gentle |
| Ronald | British male, deep voice | confident, expressive, british |
| Sarah | Young adult female | upbeat, excited |
| Shaun | Friendly, dynamic male | calm, casual |
| Theodore | Gravelly male, elderly | elderly, wise |
| Timothy | Lively American male | hyped, upbeat |
| Wendy | British female, posh | pleasant, casual, british |
### Chinese 中文 (4 voices)
| Voice | Description | Tags |
| ------- | ----------- | ------------------ |
| Yichen | 年轻男声 | clear, friendly |
| Xiaoyin | 年轻女声, 温柔 | polite, kind |
| Xinyi | 女声, 中性 | professional, warm |
| Jing | 活力女声 | soft, clear |
### Japanese 日本語 (2 voices)
| Voice | Description | Tags |
| ------- | ----------- | ---------------- |
| Asuka | 若い女性 | energetic, clear |
| Satoshi | 男性, 表現力豊か | nervous, curious |
### Korean 한국어 (4 voices)
| Voice | Description | Tags |
| ------- | ----------- | ------------------- |
| Hyunwoo | 젊은 남성 | polite, warm |
| Minji | 젊은 여성 | light, bright |
| Seojun | 성숙 남성 | deep, authoritative |
| Yoona | 여성, 부드러움 | sad, clear |
### Other Languages
* **French (4)**: Alain, Hélène, Mathieu, Étienne
* **German (2)**: Johanna, Josef
* **Spanish (4)**: Diego, Lupita, Miguel, Rafael
* **Italian (2)**: Gianni, Orietta
* **Portuguese-BR (2)**: Heitor, Maitê
* **Russian (4)**: Svetlana, Elena, Dmitry, Nikolai
* **Dutch (4)**: Erik, Katrien, Lennart, Lore
* **Polish (2)**: Szymon, Wojciech
* **Hindi (2)**: Riya, Manoj
* **Hebrew (2)**: Yael, Oren
* **Arabic (2)**: Nour, Omar
## Authentication
All API requests require Bearer authentication:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit TTS Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "inworld-tts-2",
"payload": {
"text": "Hello, world! What a wonderful day!",
"voice_id": "Dennis",
"audio_encoding": "MP3",
"sample_rate_hertz": 48000,
"speaking_rate": 1.0,
"temperature": 1.1,
"timestamp_type": "WORD"
}
}'
```
## Response
Inworld TTS 2 is **synchronous** and returns results immediately.
```json theme={null}
{
"request_id": "abc123-def456",
"model": "inworld-tts-2",
"status": "success",
"outcome": {
"audio_url": "https://storage.googleapis.com/...",
"media": [{"type": "audio", "url": "https://..."}],
"usage": {
"processed_characters": 35,
"model_id": "inworld-tts-2"
},
"timestamp_info": {
"wordAlignment": {
"words": ["Hello,", "world!"],
"wordStartTimeSeconds": [0, 0.37],
"wordEndTimeSeconds": [0.37, 0.83],
"phoneticDetails": [...]
}
}
}
}
```
## Pricing
* **Pricing Type**: Per character
* **Price**: Contact for pricing
* **Unit**: Characters
# inworld-tts-2-flash
Source: https://docs.gmicloud.ai/model-quickstarts/audio/inworld-tts-2-flash
API usage guide for inworld-tts-2-flash.
**Model ID**
```bash theme={null}
inworld-tts-2-flash
```
**Calling method:** sync
# Inworld Realtime TTS-2 Flash API Usage Guide
## Overview
**Realtime TTS-2 Flash** (`inworld-tts-2-flash`) is Inworld's fastest and lowest-cost voice
model, built for latency-critical, high-volume workloads such as realtime agents, support
lines, and game characters.
It shares the Realtime TTS-2 voice inventory and language coverage with `inworld-tts-2`,
trading natural-language steering for roughly 2.5x lower end-to-end latency and a lower
price per character.
### Key features
* **282 built-in voices** across 15 language groups, 200+ languages and locales supported
* **Lowest latency** in the Inworld family: 20 ms P90 time-to-first-byte server-side;
measured \~0.7 s end-to-end for a short line versus \~1.7 s on `inworld-tts-2`
* **Word and character timestamps** with phoneme-level timing and viseme symbols for lip-sync
* **Eight audio formats**: MP3, LINEAR16, WAV, PCM, OGG\_OPUS, FLAC, ALAW, MULAW
* **Inline non-verbals**: `[laugh]`, `[breathe]`, `[sigh]`, `[cough]`, `[yawn]` and more render
as real sounds rather than spoken words
* **SSML pause control**: `` anywhere in the text, up to 20 breaks per request
* **Verbatim spelling**: `AHAA7771Z` reads alphanumerics character by character
* **Text normalization**: automatic expansion of currency, dates, phone numbers, emails, symbols
### Choosing between TTS-2 and TTS-2 Flash
| | `inworld-tts-2` | `inworld-tts-2-flash` |
| ------------------------------------------------------------ | -------------------- | ------------------------------------ |
| Natural-language steering (`instruction`, `[shouting]` tags) | Yes | **No, instruction tags are ignored** |
| Delivery mode (STABLE / BALANCED / CREATIVE) | Yes | No |
| Latency (short line, end to end) | \~1.7 s | **\~0.7 s** |
| Price | \$25 / 1M characters | **\$15 / 1M characters** |
Use `inworld-tts-2` when delivery has to be directed. Use `inworld-tts-2-flash` when latency
and cost dominate and the voice itself carries the performance.
## Request notes
* **`text` is capped at 2,000 characters** per request; longer input returns HTTP 400.
Markup tags count toward the limit, and toward billing.
* **`voice_id` is required.** All 282 voices work with this model.
* **`sample_rate_hertz` is codec dependent.** MP3 accepts 16000, 22050, 24000, 32000, 44100
and 48000, but **not 8000**. ALAW and MULAW are 8000 only. LINEAR16, WAV, PCM and OGG\_OPUS
accept 8000 through 48000.
* **`bit_rate` applies to MP3 and OGG\_OPUS only** (32000-320000). Low bit rates force the
encoder down to a lower output sample rate.
* **Steering is not available on this model.** `[shouting]`, `[whisper]` and the request-level
`instruction` field are accepted but produce no audible change; the tags are stripped from
the text and never spoken. Non-verbal sound tags such as `[laugh]` do work. Use
`inworld-tts-2` when you need directed delivery.
* **`temperature`** (0-2) is available on this model. Inworld's docs list temperature as
unsupported on `inworld-tts-2`, not on Flash. It has no default here: omit it and the
vendor applies its own default of 1.0.
* **`enhance_generation`** applies denoising to the output to reduce background noise
and artifacts. Defaults to false.
* **`pitch` and `seed` are real fields that Inworld does not document publicly.**
`audioConfig.pitch` is validated server-side (out-of-range returns "audioConfig.pitch
should be within the range of -5.0 to 5.0.") and `seed` is a recognised request field.
Because they are undocumented, Inworld may change or remove them without notice, and
`seed` in particular does not make output reproducible.
## Output
Audio is returned as a GCS URL in `outcome.audio_url`, with `outcome.medias[0].url` carrying
the same URL in the unified media format. When `timestamp_type` is `WORD` or `CHARACTER`,
alignment data is returned as an additional `medias` entry under `timestampInfo`.
## Pricing
\$15 per 1,000,000 characters (on-demand) = 15,000 micro-USD per 1,000 characters.
Billed on input text length counted in Unicode characters, including markup tags.
Source: [https://inworld.ai/pricing](https://inworld.ai/pricing) (verified 2026-08-31).
# kling-custom-voice
Source: https://docs.gmicloud.ai/model-quickstarts/audio/kling-custom-voice
API usage guide for kling-custom-voice.
**Model ID**
```bash theme={null}
kling-custom-voice
```
**Calling method:** sync
# Kling Custom Voice Integration Guide
| Model | Model ID | Mode |
| ------------------ | -------------------- | ------------------------------------------------------------------------------------------- |
| Kling Custom Voice | `kling-custom-voice` | **Asynchronous** — final result delivered via webhook (and persisted on the request record) |
`kling-custom-voice` clones a target speaker into a reusable Kling voice profile. Submit a clean 5–30 second voice sample (an audio file URL **or** a previously generated Kling video ID), and Kling returns a globally unique `voice_id` that can be reused as the speaker for downstream Kling models such as `kling-lip-sync` or any avatar pipeline that accepts a `voice_id`.
***
## `kling-custom-voice`
**Asynchronous.** The `SubmitRequest` response returns immediately with `status: "dispatched"`; the final result arrives via the webhook (and is also persisted on the request record).
### Parameters
| Parameter | Type | Required | Description |
| ------------ | ------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `voice_name` | string | Yes | Display name for the voice profile. **Max 20 characters.** Must be unique within your Kling account. Voices that are no longer needed can be deleted via Kling's delete-voice API. |
| `voice_url` | URL | Conditional | Public URL of the source clip. Accepts `.mp3` / `.wav` audio or `.mp4` / `.mov` video. The clip must be 5–30 seconds, contain only one human voice, and be free of background noise/music. |
| `video_id` | string | Conditional | ID of a previously generated Kling video to use as the voice source. Eligible videos are those generated on the V2.6 model with `sound` enabled, via the Avatar API, or via the Lip-Sync API. The referenced clip must satisfy the same 5–30 second / single-voice / clean-audio constraints. |
> **Provide exactly one of `voice_url` or `video_id`.** They are mutually exclusive — submitting both, or neither, will be rejected by Kling.
### Submit Request — using `voice_url`
```json theme={null}
{
"webhook": {
"url": "YOUR_WEBHOOK_URL_HERE"
},
"model": "kling-custom-voice",
"payload": {
"voice_name": "ada",
"voice_url": "https://p1-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/voice-sample.mp3"
}
}
```
### Submit Request — using `video_id`
```json theme={null}
{
"webhook": {
"url": "YOUR_WEBHOOK_URL_HERE"
},
"model": "kling-custom-voice",
"payload": {
"voice_name": "ada",
"video_id": "kling-video-id-9876"
}
}
```
note: the `webhook` field in the request body is optional.
### Final Outcome
`outcome.voices` is an array — typically of length 1 — describing the cloned voice profile:
```json theme={null}
{
"request_id": "req-uuid-1234",
"model": "kling-custom-voice",
"status": "success",
"outcome": {
"voices": [
{
"voice_id": "kling-voice-id-2468",
"voice_name": "ada",
"trial_url": "https://cdn.klingai.com/.../trial.mp3"
}
]
}
}
```
| Field | Description |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `voice_id` | Globally unique. Pass this into other Kling models (e.g. as the speaker for `kling-lip-sync` or avatar generation) to use the cloned voice. |
| `voice_name` | Echoes the `voice_name` you submitted. |
| `trial_url` | Short audio sample of the cloned voice for quick QA/preview. |
If Kling reports success but returns no voices (rare), the outcome instead carries:
```json theme={null}
"outcome": {
"error": "No voices found in the task result"
}
```
### Pricing
| Field | Value |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Pre-charge | **\$0.07 per request**, deducted at submission. |
| Post-charge adjustment | After the success callback arrives, the charge is reconciled to Kling's reported `final_unit_deduction` (converted from Kling resource-pack units to micro-USD at the video-generation rate). The delta is applied as a single positive (charge) or negative (refund) adjustment against your account. |
The reconciliation is idempotent — duplicate success callbacks for the same task will not double-charge.
### Failure & Refund
If Kling reports the task as failed (or our pipeline classifies the response as a failure), the request status becomes `failed` and the **full pre-charge is refunded**. No post-charge adjustment is applied.
***
## End-to-End Flow
1. `POST /requests` with `kling-custom-voice`, providing exactly one of `voice_url` or `video_id`.
2. Wait for the webhook (or poll `GET /requests/{request_id}`).
3. On success, capture `outcome.voices[0].voice_id`.
4. Reuse that `voice_id` as the speaker in subsequent Kling generation requests (e.g. `kling-lip-sync`, avatar pipelines).
# minimax-audio-voice-clone-speech-2.6-hd
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-audio-voice-clone-speech-2-6-hd
API usage guide for minimax-audio-voice-clone-speech-2.6-hd.
**Model ID**
```bash theme={null}
minimax-audio-voice-clone-speech-2.6-hd
```
**Calling method:** sync
# Minimax Audio Voice Clone API Usage Guide
## Overview
**Minimax Audio Voice Clone** allows you to **clone any voice from an audio sample** and use it to generate custom speech. Simply provide URLs to your audio files, and the system will automatically handle downloading, processing, and voice cloning. The cloned voice can then speak any text you provide.
### Key Features:
* **Synchronous Operation**: Get results immediately in 5-15 seconds
* **URL-Based Input**: Provide audio URLs — backend handles all processing
* **Style Control**: Optional prompt audio to define speaking style, tone, and emotion
* **Audio Enhancement**: Built-in noise reduction and volume normalization
* **High-Quality Audio**: Supports MP3, M4A, and WAV formats
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Voice Clone Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.6-hd",
"payload": {
"text": "Hello! This is my cloned voice speaking.",
"source_audio": "https://your_reference_voice.mp3",
"voice_id": "my_custom_voice_001",
"prompt_audio": "https://your_prompt_aduio.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------ |
| `model` | string | Yes | Model identifier | - | `"minimax-audio-voice-clone-speech-2.6-hd"` |
| `payload.text` | string | Yes | Text content to be synthesized using the cloned voice | - | Required, non-empty string |
| `payload.source_audio` | string | Yes | **URL** of the source audio file for voice cloning. Backend downloads automatically. | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav |
| `payload.voice_id` | string | No | The voice\_id of the cloned voice. Length range:\[8:256], must start with an English letter, must not duplicated | Auto-generated (request ID) | Alphanumeric string, underscores allowed |
| `payload.prompt_audio` | string | No | **URL** of the prompt audio file. Defines speaking style/emotion. Must be used with `prompt_text`(less than 8s). | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav, flac |
| `payload.prompt_text` | string | No | Description of the prompt audio (e.g., "This voice sounds natural and pleasant") | - | Required if `prompt_audio` is provided |
| `payload.need_noise_reduction` | boolean | No | Apply noise reduction to the generated audio | `false` | `true` or `false` |
| `payload.need_volumn_normalization` | boolean | No | Apply volume normalization to the generated audio | `false` | `true` or `false` |
***
## Response
Voice Clone is **synchronous** and returns the result immediately (typically within 5-15 seconds).
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-audio-voice-clone-speech-2.6-hd",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/your_request_id" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"org_id": "637abcde-1870-4ff4-80b0-d485980abcde",
"user_id": "5edabcde-4eed-4dcd-b732-996a956abcde",
"model": "minimax-audio-voice-clone-speech-2.6-hd",
"status": "success",
"is_public": false,
"payload": {
"need_noise_reduction": true,
"need_volumn_normalization": true,
"source_audio": "https://your_source_audio.wav",
"text": "Attention! This is a test.",
"voice_id": "thisistestNov"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_cloned_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Request Status Values
Voice Clone is **synchronous**, so the response will immediately return one of these statuses:
| Status | Description |
| --------- | ---------------------------------------- |
| `success` | Voice cloning completed successfully |
| `failed` | Voice cloning failed (see error message) |
***
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.6-hd
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.6-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.6-hd
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.6-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-audio-voice-clone-speech-2.6-hd",
"minimax-audio-voice-clone-speech-2.6-turbo"
]
}
```
***
## Example Use Cases
### Basic Voice Clone (Minimal Required Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.6-hd",
"payload": {
"text": "Welcome to the world of AI-powered voice cloning!",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3"
}
}'
```
### Advanced Voice Clone (All Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.6-hd",
"payload": {
"text": "This message is delivered with a warm, friendly tone that makes listeners feel welcomed and valued.",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3",
"voice_id": "friendly_host_voice1",
"prompt_audio": "https://storage.googleapis.com/my-bucket/friendly-style.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
# minimax-audio-voice-clone-speech-2.6-turbo
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-audio-voice-clone-speech-2-6-turbo
API usage guide for minimax-audio-voice-clone-speech-2.6-turbo.
**Model ID**
```bash theme={null}
minimax-audio-voice-clone-speech-2.6-turbo
```
**Calling method:** sync
# Minimax Audio Voice Clone API Usage Guide
## Overview
**Minimax Audio Voice Clone** allows you to **clone any voice from an audio sample** and use it to generate custom speech. Simply provide URLs to your audio files, and the system will automatically handle downloading, processing, and voice cloning. The cloned voice can then speak any text you provide.
### Key Features:
* **Synchronous Operation**: Get results immediately in 5-15 seconds
* **URL-Based Input**: Provide audio URLs — backend handles all processing
* **Style Control**: Optional prompt audio to define speaking style, tone, and emotion
* **Audio Enhancement**: Built-in noise reduction and volume normalization
* **High-Quality Audio**: Supports MP3, M4A, and WAV formats
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Voice Clone Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.6-turbo",
"payload": {
"text": "Hello! This is my cloned voice speaking.",
"source_audio": "https://your_reference_voice.mp3",
"voice_id": "my_custom_voice_001",
"prompt_audio": "https://your_prompt_aduio.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------ |
| `model` | string | Yes | Model identifier | - | `"minimax-audio-voice-clone-speech-2.6-turbo"` |
| `payload.text` | string | Yes | Text content to be synthesized using the cloned voice | - | Required, non-empty string |
| `payload.source_audio` | string | Yes | **URL** of the source audio file for voice cloning. Backend downloads automatically. | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav |
| `payload.voice_id` | string | No | The voice\_id of the cloned voice. Length range:\[8:256], must start with an English letter, must not duplicated | Auto-generated (request ID) | Alphanumeric string, underscores allowed |
| `payload.prompt_audio` | string | No | **URL** of the prompt audio file. Defines speaking style/emotion. Must be used with `prompt_text`(less than 8s). | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav, flac |
| `payload.prompt_text` | string | No | Description of the prompt audio (e.g., "This voice sounds natural and pleasant") | - | Required if `prompt_audio` is provided |
| `payload.need_noise_reduction` | boolean | No | Apply noise reduction to the generated audio | `false` | `true` or `false` |
| `payload.need_volumn_normalization` | boolean | No | Apply volume normalization to the generated audio | `false` | `true` or `false` |
***
## Response
Voice Clone is **synchronous** and returns the result immediately (typically within 5-15 seconds).
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-audio-voice-clone-speech-2.6-turbo",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/your_request_id" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"org_id": "637abcde-1870-4ff4-80b0-d485980abcde",
"user_id": "5edabcde-4eed-4dcd-b732-996a956abcde",
"model": "minimax-audio-voice-clone-speech-2.6-turbo",
"status": "success",
"is_public": false,
"payload": {
"need_noise_reduction": true,
"need_volumn_normalization": true,
"source_audio": "https://your_source_audio.wav",
"text": "Attention! This is a test.",
"voice_id": "thisistestNov"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_cloned_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Request Status Values
Voice Clone is **synchronous**, so the response will immediately return one of these statuses:
| Status | Description |
| --------- | ---------------------------------------- |
| `success` | Voice cloning completed successfully |
| `failed` | Voice cloning failed (see error message) |
***
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.6-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.6-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.6-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.6-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-audio-voice-clone-speech-2.6-hd",
"minimax-audio-voice-clone-speech-2.6-turbo"
]
}
```
***
## Example Use Cases
### Basic Voice Clone (Minimal Required Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.6-turbo",
"payload": {
"text": "Welcome to the world of AI-powered voice cloning!",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3"
}
}'
```
### Advanced Voice Clone (All Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.6-turbo",
"payload": {
"text": "This message is delivered with a warm, friendly tone that makes listeners feel welcomed and valued.",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3",
"voice_id": "friendly_host_voice1",
"prompt_audio": "https://storage.googleapis.com/my-bucket/friendly-style.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
# minimax-audio-voice-clone-speech-2.8-hd
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-audio-voice-clone-speech-2-8-hd
API usage guide for minimax-audio-voice-clone-speech-2.8-hd.
**Model ID**
```bash theme={null}
minimax-audio-voice-clone-speech-2.8-hd
```
**Calling method:** sync
# Minimax Audio Voice Clone API Usage Guide
## Overview
**Minimax Audio Voice Clone** allows you to **clone any voice from an audio sample** and use it to generate custom speech. Simply provide URLs to your audio files, and the system will automatically handle downloading, processing, and voice cloning. The cloned voice can then speak any text you provide.
### Key Features:
* **Synchronous Operation**: Get results immediately in 5-15 seconds
* **URL-Based Input**: Provide audio URLs — backend handles all processing
* **Style Control**: Optional prompt audio to define speaking style, tone, and emotion
* **Audio Enhancement**: Built-in noise reduction and volume normalization
* **High-Quality Audio**: Supports MP3, M4A, and WAV formats
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Voice Clone Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.8-hd",
"payload": {
"text": "Hello! This is my cloned voice speaking.",
"source_audio": "https://your_reference_voice.mp3",
"voice_id": "my_custom_voice_001",
"prompt_audio": "https://your_prompt_aduio.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------ |
| `model` | string | Yes | Model identifier | - | `"minimax-audio-voice-clone-speech-2.8-hd"` |
| `payload.text` | string | Yes | Text content to be synthesized using the cloned voice | - | Required, non-empty string |
| `payload.source_audio` | string | Yes | **URL** of the source audio file for voice cloning. Backend downloads automatically. | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav |
| `payload.voice_id` | string | No | The voice\_id of the cloned voice. Length range:\[8:256], must start with an English letter, must not duplicated | Auto-generated (request ID) | Alphanumeric string, underscores allowed |
| `payload.prompt_audio` | string | No | **URL** of the prompt audio file. Defines speaking style/emotion. Must be used with `prompt_text`(less than 8s). | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav, flac |
| `payload.prompt_text` | string | No | Description of the prompt audio (e.g., "This voice sounds natural and pleasant") | - | Required if `prompt_audio` is provided |
| `payload.need_noise_reduction` | boolean | No | Apply noise reduction to the generated audio | `false` | `true` or `false` |
| `payload.need_volumn_normalization` | boolean | No | Apply volume normalization to the generated audio | `false` | `true` or `false` |
***
## Response
Voice Clone is **synchronous** and returns the result immediately (typically within 5-15 seconds).
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-audio-voice-clone-speech-2.8-hd",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/your_request_id" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"org_id": "637abcde-1870-4ff4-80b0-d485980abcde",
"user_id": "5edabcde-4eed-4dcd-b732-996a956abcde",
"model": "minimax-audio-voice-clone-speech-2.8-hd",
"status": "success",
"is_public": false,
"payload": {
"need_noise_reduction": true,
"need_volumn_normalization": true,
"source_audio": "https://your_source_audio.wav",
"text": "Attention! This is a test.",
"voice_id": "thisistestNov"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_cloned_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Request Status Values
Voice Clone is **synchronous**, so the response will immediately return one of these statuses:
| Status | Description |
| --------- | ---------------------------------------- |
| `success` | Voice cloning completed successfully |
| `failed` | Voice cloning failed (see error message) |
***
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.8-hd
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.8-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.8-hd
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.8-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-audio-voice-clone-speech-2.8-hd",
"minimax-audio-voice-clone-speech-2.8-turbo"
]
}
```
***
## Example Use Cases
### Basic Voice Clone (Minimal Required Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.8-hd",
"payload": {
"text": "Welcome to the world of AI-powered voice cloning!",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3"
}
}'
```
### Advanced Voice Clone (All Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.8-hd",
"payload": {
"text": "This message is delivered with a warm, friendly tone that makes listeners feel welcomed and valued.",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3",
"voice_id": "friendly_host_voice1",
"prompt_audio": "https://storage.googleapis.com/my-bucket/friendly-style.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
# minimax-audio-voice-clone-speech-2.8-turbo
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-audio-voice-clone-speech-2-8-turbo
API usage guide for minimax-audio-voice-clone-speech-2.8-turbo.
**Model ID**
```bash theme={null}
minimax-audio-voice-clone-speech-2.8-turbo
```
**Calling method:** sync
# Minimax Audio Voice Clone API Usage Guide
## Overview
**Minimax Audio Voice Clone** allows you to **clone any voice from an audio sample** and use it to generate custom speech. Simply provide URLs to your audio files, and the system will automatically handle downloading, processing, and voice cloning. The cloned voice can then speak any text you provide.
### Key Features:
* **Synchronous Operation**: Get results immediately in 5-15 seconds
* **URL-Based Input**: Provide audio URLs — backend handles all processing
* **Style Control**: Optional prompt audio to define speaking style, tone, and emotion
* **Audio Enhancement**: Built-in noise reduction and volume normalization
* **High-Quality Audio**: Supports MP3, M4A, and WAV formats
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Voice Clone Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.8-turbo",
"payload": {
"text": "Hello! This is my cloned voice speaking.",
"source_audio": "https://your_reference_voice.mp3",
"voice_id": "my_custom_voice_001",
"prompt_audio": "https://your_prompt_aduio.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------ |
| `model` | string | Yes | Model identifier | - | `"minimax-audio-voice-clone-speech-2.8-turbo"` |
| `payload.text` | string | Yes | Text content to be synthesized using the cloned voice | - | Required, non-empty string |
| `payload.source_audio` | string | Yes | **URL** of the source audio file for voice cloning. Backend downloads automatically. | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav |
| `payload.voice_id` | string | No | The voice\_id of the cloned voice. Length range:\[8:256], must start with an English letter, must not duplicated | Auto-generated (request ID) | Alphanumeric string, underscores allowed |
| `payload.prompt_audio` | string | No | **URL** of the prompt audio file. Defines speaking style/emotion. Must be used with `prompt_text`(less than 8s). | - | Valid HTTP/HTTPS URL. Supported formats: mp3, m4a, wav, flac |
| `payload.prompt_text` | string | No | Description of the prompt audio (e.g., "This voice sounds natural and pleasant") | - | Required if `prompt_audio` is provided |
| `payload.need_noise_reduction` | boolean | No | Apply noise reduction to the generated audio | `false` | `true` or `false` |
| `payload.need_volumn_normalization` | boolean | No | Apply volume normalization to the generated audio | `false` | `true` or `false` |
***
## Response
Voice Clone is **synchronous** and returns the result immediately (typically within 5-15 seconds).
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-audio-voice-clone-speech-2.8-turbo",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/your_request_id" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"org_id": "637abcde-1870-4ff4-80b0-d485980abcde",
"user_id": "5edabcde-4eed-4dcd-b732-996a956abcde",
"model": "minimax-audio-voice-clone-speech-2.8-turbo",
"status": "success",
"is_public": false,
"payload": {
"need_noise_reduction": true,
"need_volumn_normalization": true,
"source_audio": "https://your_source_audio.wav",
"text": "Attention! This is a test.",
"voice_id": "thisistestNov"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_cloned_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
***
## Request Status Values
Voice Clone is **synchronous**, so the response will immediately return one of these statuses:
| Status | Description |
| --------- | ---------------------------------------- |
| `success` | Voice cloning completed successfully |
| `failed` | Voice cloning failed (see error message) |
***
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.8-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-audio-voice-clone-speech-2.8-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.8-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/minimax-audio-voice-clone-speech-2.8-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
***
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-audio-voice-clone-speech-2.8-hd",
"minimax-audio-voice-clone-speech-2.8-turbo"
]
}
```
***
## Example Use Cases
### Basic Voice Clone (Minimal Required Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.8-turbo",
"payload": {
"text": "Welcome to the world of AI-powered voice cloning!",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3"
}
}'
```
### Advanced Voice Clone (All Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-audio-voice-clone-speech-2.8-turbo",
"payload": {
"text": "This message is delivered with a warm, friendly tone that makes listeners feel welcomed and valued.",
"source_audio": "https://storage.googleapis.com/my-bucket/reference-voice.mp3",
"voice_id": "friendly_host_voice1",
"prompt_audio": "https://storage.googleapis.com/my-bucket/friendly-style.mp3",
"prompt_text": "The transcript corresponding to the sample audio. It must match the audio content, and end with punctuation.",
"need_noise_reduction": true,
"need_volumn_normalization": true
}
}'
```
# minimax-music-2.5
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-music-2-5
API usage guide for minimax-music-2.5.
**Model ID**
```bash theme={null}
minimax-music-2.5
```
**Calling method:** sync
# Minimax Music Generation API Usage Guide
## Overview
**Minimax Music 2.5** is an AI-powered music generation model that creates complete songs from lyrics and style descriptions. Simply provide your lyrics and an optional style prompt, and the model will compose and produce a full audio track.
### Key Features:
* **Lyrics-Based Generation**: Create songs from your custom lyrics (1-3500 characters)
* **Style Control**: Optional prompt to specify music genre, mood, and style (0-2000 characters)
* **Structure Tags**: Support for song structure tags like \[Verse], \[Chorus], \[Bridge], etc.
* **High-Quality Audio**: Output in MP3, WAV, or PCM formats
* **Synchronous Operation**: Get results immediately (typically 30-60 seconds)
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Music Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-2.5",
"payload": {
"lyrics": "[verse]\nStreetlights flicker, the night breeze sighs\nShadows stretch as I walk alone\nAn old coat wraps my silent sorrow\nWandering, longing, where should I go\n[chorus]\nPushing the wooden door, the aroma spreads\nIn a familiar corner, a stranger gazes",
"prompt": "Indie folk, melancholic, introspective, longing, solitary walk, coffee shop",
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------- | ------- | ---------------------------- |
| `model` | string | Yes | Model identifier | - | `"minimax-music-2.5"` |
| `payload.lyrics` | string | Yes | Song lyrics. Use `\n` for line breaks. Support structure tags like \[Verse], \[Chorus], \[Bridge], etc. | - | 1-3500 characters |
| `payload.prompt` | string | No | Music style description (genre, mood, scenario) | - | 0-2000 characters |
| `payload.sample_rate` | integer | No | Audio sample rate in Hz | 44100 | 16000, 24000, 32000, 44100 |
| `payload.bitrate` | integer | No | Audio bitrate in bps | 256000 | 32000, 64000, 128000, 256000 |
| `payload.format` | string | No | Output audio format | "mp3" | "mp3", "wav", "pcm" |
### Supported Structure Tags
You can use the following tags in your lyrics to control song structure:
* `[Intro]` - Introduction section
* `[Verse]` - Verse section
* `[Pre Chorus]` - Pre-chorus section
* `[Chorus]` - Chorus/refrain section
* `[Bridge]` - Bridge section
* `[Outro]` - Outro/ending section
* `[Interlude]` - Instrumental interlude
* `[Hook]` - Hook section
* `[Inst]` - Instrumental section
* `[Solo]` - Solo section
***
## Response
Music Generation is **synchronous** and returns the result immediately (typically within 30-60 seconds).
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-music-2.5",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215640,
"queued_at": 1762215580
}
```
***
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/your_request_id" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"org_id": "637abcde-1870-4ff4-80b0-d485980abcde",
"user_id": "5edabcde-4eed-4dcd-b732-996a956abcde",
"model": "minimax-music-2.5",
"status": "success",
"is_public": false,
"payload": {
"lyrics": "[verse]\nStreetlights flicker...",
"prompt": "Indie folk, melancholic",
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"outcome": {
"audio_url": "https://storage.googleapis.com/your_generated_music.mp3",
"status": "music_generated_successfully",
"duration_ms": 25364,
"sample_rate": 44100,
"channels": 2,
"bitrate": 256000,
"medias": [
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"id": "0",
"url": "https://storage.googleapis.com/your_generated_music.mp3",
"type": "audio",
"format": "mp3"
}
],
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_generated_music.mp3"
}
]
},
"created_at": 1762215580,
"updated_at": 1762215640,
"queued_at": 1762215580
}
```
***
## Request Status Values
Music Generation is **synchronous**, so the response will immediately return one of these statuses:
| Status | Description |
| --------- | ------------------------------------------- |
| `success` | Music generation completed successfully |
| `failed` | Music generation failed (see error message) |
***
## Example Use Cases
### Basic Music Generation (Minimal Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-2.5",
"payload": {
"lyrics": "[verse]\nHello world, this is my song\nSinging along, all day long\n[chorus]\nLa la la, feeling free\nThis is where I want to be"
}
}'
```
### Full Music Generation (All Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-2.5",
"payload": {
"lyrics": "[intro]\n(Soft guitar strumming)\n\n[verse]\nWalking down the empty street\nMemories dancing at my feet\nThe autumn leaves fall all around\nWhispering without a sound\n\n[chorus]\nBut I remember when you smiled\nAnd everything felt worthwhile\nNow the silence fills the air\nWishing you were still here\n\n[bridge]\nTime keeps moving on\nBut my heart stays where you belong\n\n[outro]\n(Fade out with gentle piano)",
"prompt": "Acoustic ballad, emotional, nostalgic, autumn, lost love, gentle guitar and piano, male vocals, slow tempo",
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
}
}'
```
***
## Tips for Best Results
1. **Use Structure Tags**: Adding tags like \[Verse], \[Chorus], \[Bridge] helps the model understand song structure
2. **Descriptive Prompts**: Be specific about genre, mood, instruments, and tempo in your prompt
3. **Appropriate Lyrics Length**: Aim for 500-2000 characters for optimal song length
4. **Clear Line Breaks**: Use `\n` to separate lines properly
5. **Avoid Special Characters**: Stick to standard punctuation in lyrics
# minimax-music-3.0
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-music-3-0
API usage guide for minimax-music-3.0.
**Model ID**
```bash theme={null}
minimax-music-3.0
```
**Calling method:** sync
# Minimax Music Generation API Usage Guide
## Overview
**Minimax Music 3.0** is an AI-powered music generation model that creates complete songs from lyrics and style descriptions. Simply provide your lyrics and an optional style prompt, and the model will compose and produce a full audio track.
### Key Features:
* **Lyrics-Based Generation**: Create songs from your custom lyrics (1-3500 characters)
* **Style Control**: Optional prompt to specify music genre, mood, and style (0-2000 characters)
* **Structure Tags**: Support for song structure tags like \[Verse], \[Chorus], \[Bridge], etc.
* **High-Quality Audio**: Output in MP3, WAV, or PCM formats
* **Synchronous Operation**: Get results immediately (typically 30-60 seconds)
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Music Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-3.0",
"payload": {
"lyrics": "[verse]\nStreetlights flicker, the night breeze sighs\nShadows stretch as I walk alone\nAn old coat wraps my silent sorrow\nWandering, longing, where should I go\n[chorus]\nPushing the wooden door, the aroma spreads\nIn a familiar corner, a stranger gazes",
"prompt": "Indie folk, melancholic, introspective, longing, solitary walk, coffee shop",
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------- | ------- | ---------------------------- |
| `model` | string | Yes | Model identifier | - | `"minimax-music-3.0"` |
| `payload.lyrics` | string | Yes | Song lyrics. Use `\n` for line breaks. Support structure tags like \[Verse], \[Chorus], \[Bridge], etc. | - | 1-3500 characters |
| `payload.prompt` | string | No | Music style description (genre, mood, scenario) | - | 0-2000 characters |
| `payload.sample_rate` | integer | No | Audio sample rate in Hz | 44100 | 16000, 24000, 32000, 44100 |
| `payload.bitrate` | integer | No | Audio bitrate in bps | 256000 | 32000, 64000, 128000, 256000 |
| `payload.format` | string | No | Output audio format | "mp3" | "mp3", "wav", "pcm" |
### Supported Structure Tags
You can use the following tags in your lyrics to control song structure:
* `[Intro]` - Introduction section
* `[Verse]` - Verse section
* `[Pre Chorus]` - Pre-chorus section
* `[Chorus]` - Chorus/refrain section
* `[Bridge]` - Bridge section
* `[Outro]` - Outro/ending section
* `[Interlude]` - Instrumental interlude
* `[Hook]` - Hook section
* `[Inst]` - Instrumental section
* `[Solo]` - Solo section
***
## Response
Music Generation is **synchronous** and returns the result immediately (typically within 30-60 seconds).
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-music-3.0",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215640,
"queued_at": 1762215580
}
```
***
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/your_request_id" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"org_id": "637abcde-1870-4ff4-80b0-d485980abcde",
"user_id": "5edabcde-4eed-4dcd-b732-996a956abcde",
"model": "minimax-music-3.0",
"status": "success",
"is_public": false,
"payload": {
"lyrics": "[verse]\nStreetlights flicker...",
"prompt": "Indie folk, melancholic",
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"outcome": {
"audio_url": "https://storage.googleapis.com/your_generated_music.mp3",
"status": "music_generated_successfully",
"duration_ms": 25364,
"sample_rate": 44100,
"channels": 2,
"bitrate": 256000,
"medias": [
{
"request_id": "5c3abcde-d669-4a25-8151-de6d602abcde",
"id": "0",
"url": "https://storage.googleapis.com/your_generated_music.mp3",
"type": "audio",
"format": "mp3"
}
],
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_generated_music.mp3"
}
]
},
"created_at": 1762215580,
"updated_at": 1762215640,
"queued_at": 1762215580
}
```
***
## Request Status Values
Music Generation is **synchronous**, so the response will immediately return one of these statuses:
| Status | Description |
| --------- | ------------------------------------------- |
| `success` | Music generation completed successfully |
| `failed` | Music generation failed (see error message) |
***
## Example Use Cases
### Basic Music Generation (Minimal Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-3.0",
"payload": {
"lyrics": "[verse]\nHello world, this is my song\nSinging along, all day long\n[chorus]\nLa la la, feeling free\nThis is where I want to be"
}
}'
```
### Full Music Generation (All Parameters)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-3.0",
"payload": {
"lyrics": "[intro]\n(Soft guitar strumming)\n\n[verse]\nWalking down the empty street\nMemories dancing at my feet\nThe autumn leaves fall all around\nWhispering without a sound\n\n[chorus]\nBut I remember when you smiled\nAnd everything felt worthwhile\nNow the silence fills the air\nWishing you were still here\n\n[bridge]\nTime keeps moving on\nBut my heart stays where you belong\n\n[outro]\n(Fade out with gentle piano)",
"prompt": "Acoustic ballad, emotional, nostalgic, autumn, lost love, gentle guitar and piano, male vocals, slow tempo",
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
}
}'
```
***
## Tips for Best Results
1. **Use Structure Tags**: Adding tags like \[Verse], \[Chorus], \[Bridge] helps the model understand song structure
2. **Descriptive Prompts**: Be specific about genre, mood, instruments, and tempo in your prompt
3. **Appropriate Lyrics Length**: Aim for 500-2000 characters for optimal song length
4. **Clear Line Breaks**: Use `\n` to separate lines properly
5. **Avoid Special Characters**: Stick to standard punctuation in lyrics
# minimax-tts-speech-2.6-hd
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-tts-speech-2-6-hd
API usage guide for minimax-tts-speech-2.6-hd.
**Model ID**
```bash theme={null}
minimax-tts-speech-2.6-hd
```
**Calling method:** sync
# Minimax TTS Speech 2.6 HD API Usage Guide
## Overview
**Minimax TTS Speech 2.6 HD** is MiniMax’s latest high-performance text-to-speech model, capable of turning text into ultra-fast, natural, expressive speech, even mimicking a target voice from a short reference clip with zero-shot voice cloning and emotional nuance.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-tts-speech-2.6-hd",
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------- |
| `text` | string | Yes | Text content to be converted to speech. | - | Required |
| `voice_id` | string | No | Voice ID for speech synthesis. | "English\_expressive\_narrator" | Alphanumeric string, underscores allowed |
| `speed` | float | No | Speech speed multiplier. | 1 | 0.5 to 2 with step 0.1 |
| `vol` | float | No | Volume level multiplier. | 1 | 0 to 10 with step 0.1 |
| `pitch` | integer | No | Pitch adjustment in semitones. | 0 | -12 to 12 with step 1 |
| `emotion` | string | No | Emotion control for synthesized speech. By default, the model automatically selects the most natural emotion based on text. Manual specification is only recommended when explicitly needed. | "auto" | Options: "auto", "calm", "happy", "sad", "angry", "fearful", "disgusted", "surprised" |
| `language_boost` | string | No | Controls whether recognition for specific minority languages and dialects is enhanced. If the language type is unknown, set to 'auto' and the model will automatically detect it. | "auto" | - |
| `format` | string | No | Specifies the format of the generated audio. Default is mp3. | "mp3" | Options: "mp3", "flac" |
| `audio_sample_rate` | string | No | Specifies the sampling rate of the generated audio. Default is 32000 Hz. | "32000" | Options: "8000", "16000", "22050", "24000", "32000", "44100" |
| `bitrate` | string | No | Specifies the bitrate of the generated audio. Default is 128000. Note: This parameter only applies to audio in mp3 format. | "128000" | Options: "32000", "64000", "128000", "256000" |
| `channel` | string | No | Specifies the number of audio channels. 1 = mono, 2 = stereo. Default is 2 (stereo). | "2" | Options: "1", "2" |
| `vm_pitch` | integer | No | Voice modification pitch adjustment. Adjusts the pitch of the synthesized voice for voice-changing effects. Range: -100 (lower) to 100 (higher). | 0 | -100 to 100 with step 1 |
| `intensity` | integer | No | Voice intensity adjustment. Controls the strength/power of the voice. Range: -100 (weaker) to 100 (stronger). | 0 | -100 to 100 with step 1 |
| `timbre` | integer | No | Voice timbre adjustment. Modifies the tonal quality and character of the voice. Range: -100 to 100. | 0 | -100 to 100 with step 1 |
| `sound_effects` | string | No | Applies special sound effects to the synthesized voice. These effects can create atmospheric or stylistic variations. | "" | Options: "", "spacious\_echo", "auditorium\_echo", "lofi\_telephone", "robotic" |
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-tts-speech-2.6-hd",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/5c30b275-d669-4a25-8151-de6d60214853" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"org_id": "your-org-id",
"model": "minimax-tts-speech-2.6-hd",
"status": "success",
"is_public": false,
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_tts_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.6-hd
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.6-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-tts-speech-2.6-hd
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/minimax-tts-speech-2.6-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-tts-speech-2.6-hd",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Audio length based pricing
* **Unit Price**: \$0.10 per audio (per one thousand character)
# minimax-tts-speech-2.6-turbo
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-tts-speech-2-6-turbo
API usage guide for minimax-tts-speech-2.6-turbo.
**Model ID**
```bash theme={null}
minimax-tts-speech-2.6-turbo
```
**Calling method:** sync
# Minimax TTS Speech 2.6 Turbo API Usage Guide
## Overview
**Minimax TTS Speech 2.6 Turbo** is MiniMax's latest high-performance text-to-speech model, capable of turning text into ultra-fast, natural, expressive speech, even mimicking a target voice from a short reference clip with zero-shot voice cloning and emotional nuance.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-tts-speech-2.6-turbo",
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------- |
| `text` | string | Yes | Text content to be converted to speech. | - | Required |
| `voice_id` | string | No | Voice ID for speech synthesis. | "English\_expressive\_narrator" | Alphanumeric string, underscores allowed |
| `speed` | float | No | Speech speed multiplier. | 1 | 0.5 to 2 with step 0.1 |
| `vol` | float | No | Volume level multiplier. | 1 | 0 to 10 with step 0.1 |
| `pitch` | integer | No | Pitch adjustment in semitones. | 0 | -12 to 12 with step 1 |
| `emotion` | string | No | Emotion control for synthesized speech. By default, the model automatically selects the most natural emotion based on text. Manual specification is only recommended when explicitly needed. | "auto" | Options: "auto", "calm", "happy", "sad", "angry", "fearful", "disgusted", "surprised" |
| `language_boost` | string | No | Controls whether recognition for specific minority languages and dialects is enhanced. If the language type is unknown, set to 'auto' and the model will automatically detect it. | "auto" | - |
| `format` | string | No | Specifies the format of the generated audio. Default is mp3. | "mp3" | Options: "mp3", "flac" |
| `audio_sample_rate` | string | No | Specifies the sampling rate of the generated audio. Default is 32000 Hz. | "32000" | Options: "8000", "16000", "22050", "24000", "32000", "44100" |
| `bitrate` | string | No | Specifies the bitrate of the generated audio. Default is 128000. Note: This parameter only applies to audio in mp3 format. | "128000" | Options: "32000", "64000", "128000", "256000" |
| `channel` | string | No | Specifies the number of audio channels. 1 = mono, 2 = stereo. Default is 2 (stereo). | "2" | Options: "1", "2" |
| `vm_pitch` | integer | No | Voice modification pitch adjustment. Adjusts the pitch of the synthesized voice for voice-changing effects. Range: -100 (lower) to 100 (higher). | 0 | -100 to 100 with step 1 |
| `intensity` | integer | No | Voice intensity adjustment. Controls the strength/power of the voice. Range: -100 (weaker) to 100 (stronger). | 0 | -100 to 100 with step 1 |
| `timbre` | integer | No | Voice timbre adjustment. Modifies the tonal quality and character of the voice. Range: -100 to 100. | 0 | -100 to 100 with step 1 |
| `sound_effects` | string | No | Applies special sound effects to the synthesized voice. These effects can create atmospheric or stylistic variations. | "" | Options: "", "spacious\_echo", "auditorium\_echo", "lofi\_telephone", "robotic" |
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-tts-speech-2.6-turbo",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/5c30b275-d669-4a25-8151-de6d60214853" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"org_id": "your-org-id",
"model": "minimax-tts-speech-2.6-turbo",
"status": "success",
"is_public": false,
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_tts_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.6-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.6-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-tts-speech-2.6-turbo
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/minimax-tts-speech-2.6-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-tts-speech-2.6-turbo",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Audio length based pricing
* **Unit Price**: \$0.06 per audio (per one thousand character)
# minimax-tts-speech-2.8-hd
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-tts-speech-2-8-hd
API usage guide for minimax-tts-speech-2.8-hd.
**Model ID**
```bash theme={null}
minimax-tts-speech-2.8-hd
```
**Calling method:** sync
# Minimax TTS Speech 2.8 HD API Usage Guide
## Overview
**Minimax TTS Speech 2.8 HD** is MiniMax's latest high-performance text-to-speech model, capable of turning text into ultra-fast, natural, expressive speech, even mimicking a target voice from a short reference clip with zero-shot voice cloning and emotional nuance.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-tts-speech-2.8-hd",
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------- |
| `text` | string | Yes | Text content to be converted to speech. | - | Required |
| `voice_id` | string | No | Voice ID for speech synthesis. | "English\_expressive\_narrator" | Alphanumeric string, underscores allowed |
| `speed` | float | No | Speech speed multiplier. | 1 | 0.5 to 2 with step 0.1 |
| `vol` | float | No | Volume level multiplier. | 1 | 0 to 10 with step 0.1 |
| `pitch` | integer | No | Pitch adjustment in semitones. | 0 | -12 to 12 with step 1 |
| `emotion` | string | No | Emotion control for synthesized speech. By default, the model automatically selects the most natural emotion based on text. Manual specification is only recommended when explicitly needed. | "auto" | Options: "auto", "calm", "happy", "sad", "angry", "fearful", "disgusted", "surprised" |
| `language_boost` | string | No | Controls whether recognition for specific minority languages and dialects is enhanced. If the language type is unknown, set to 'auto' and the model will automatically detect it. | "auto" | - |
| `format` | string | No | Specifies the format of the generated audio. Default is mp3. | "mp3" | Options: "mp3", "flac" |
| `audio_sample_rate` | string | No | Specifies the sampling rate of the generated audio. Default is 32000 Hz. | "32000" | Options: "8000", "16000", "22050", "24000", "32000", "44100" |
| `bitrate` | string | No | Specifies the bitrate of the generated audio. Default is 128000. Note: This parameter only applies to audio in mp3 format. | "128000" | Options: "32000", "64000", "128000", "256000" |
| `channel` | string | No | Specifies the number of audio channels. 1 = mono, 2 = stereo. Default is 2 (stereo). | "2" | Options: "1", "2" |
| `vm_pitch` | integer | No | Voice modification pitch adjustment. Adjusts the pitch of the synthesized voice for voice-changing effects. Range: -100 (lower) to 100 (higher). | 0 | -100 to 100 with step 1 |
| `intensity` | integer | No | Voice intensity adjustment. Controls the strength/power of the voice. Range: -100 (weaker) to 100 (stronger). | 0 | -100 to 100 with step 1 |
| `timbre` | integer | No | Voice timbre adjustment. Modifies the tonal quality and character of the voice. Range: -100 to 100. | 0 | -100 to 100 with step 1 |
| `sound_effects` | string | No | Applies special sound effects to the synthesized voice. These effects can create atmospheric or stylistic variations. | "" | Options: "", "spacious\_echo", "auditorium\_echo", "lofi\_telephone", "robotic" |
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-tts-speech-2.8-hd",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/5c30b275-d669-4a25-8151-de6d60214853" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"org_id": "your-org-id",
"model": "minimax-tts-speech-2.8-hd",
"status": "success",
"is_public": false,
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_tts_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.8-hd
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.8-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-tts-speech-2.8-hd
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/minimax-tts-speech-2.8-hd" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-tts-speech-2.8-hd",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Audio length based pricing
* **Unit Price**: \$0.10 per audio (per one thousand character)
# minimax-tts-speech-2.8-turbo
Source: https://docs.gmicloud.ai/model-quickstarts/audio/minimax-tts-speech-2-8-turbo
API usage guide for minimax-tts-speech-2.8-turbo.
**Model ID**
```bash theme={null}
minimax-tts-speech-2.8-turbo
```
**Calling method:** sync
# Minimax TTS Speech 2.8 Turbo API Usage Guide
## Overview
**Minimax TTS Speech 2.8 Turbo** is MiniMax's latest high-performance text-to-speech model, capable of turning text into ultra-fast, natural, expressive speech, even mimicking a target voice from a short reference clip with zero-shot voice cloning and emotional nuance.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-tts-speech-2.8-turbo",
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------- |
| `text` | string | Yes | Text content to be converted to speech. | - | Required |
| `voice_id` | string | No | Voice ID for speech synthesis. | "English\_expressive\_narrator" | Alphanumeric string, underscores allowed |
| `speed` | float | No | Speech speed multiplier. | 1 | 0.5 to 2 with step 0.1 |
| `vol` | float | No | Volume level multiplier. | 1 | 0 to 10 with step 0.1 |
| `pitch` | integer | No | Pitch adjustment in semitones. | 0 | -12 to 12 with step 1 |
| `emotion` | string | No | Emotion control for synthesized speech. By default, the model automatically selects the most natural emotion based on text. Manual specification is only recommended when explicitly needed. | "auto" | Options: "auto", "calm", "happy", "sad", "angry", "fearful", "disgusted", "surprised" |
| `language_boost` | string | No | Controls whether recognition for specific minority languages and dialects is enhanced. If the language type is unknown, set to 'auto' and the model will automatically detect it. | "auto" | - |
| `format` | string | No | Specifies the format of the generated audio. Default is mp3. | "mp3" | Options: "mp3", "flac" |
| `audio_sample_rate` | string | No | Specifies the sampling rate of the generated audio. Default is 32000 Hz. | "32000" | Options: "8000", "16000", "22050", "24000", "32000", "44100" |
| `bitrate` | string | No | Specifies the bitrate of the generated audio. Default is 128000. Note: This parameter only applies to audio in mp3 format. | "128000" | Options: "32000", "64000", "128000", "256000" |
| `channel` | string | No | Specifies the number of audio channels. 1 = mono, 2 = stereo. Default is 2 (stereo). | "2" | Options: "1", "2" |
| `vm_pitch` | integer | No | Voice modification pitch adjustment. Adjusts the pitch of the synthesized voice for voice-changing effects. Range: -100 (lower) to 100 (higher). | 0 | -100 to 100 with step 1 |
| `intensity` | integer | No | Voice intensity adjustment. Controls the strength/power of the voice. Range: -100 (weaker) to 100 (stronger). | 0 | -100 to 100 with step 1 |
| `timbre` | integer | No | Voice timbre adjustment. Modifies the tonal quality and character of the voice. Range: -100 to 100. | 0 | -100 to 100 with step 1 |
| `sound_effects` | string | No | Applies special sound effects to the synthesized voice. These effects can create atmospheric or stylistic variations. | "" | Options: "", "spacious\_echo", "auditorium\_echo", "lofi\_telephone", "robotic" |
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"model": "minimax-tts-speech-2.8-turbo",
"status": "success",
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/5c30b275-d669-4a25-8151-de6d60214853" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "5c30b275-d669-4a25-8151-de6d60214853",
"org_id": "your-org-id",
"model": "minimax-tts-speech-2.8-turbo",
"status": "success",
"is_public": false,
"payload": {
"text": "Let's convert text to speech.",
"voice_id": "English_expressive_narrator",
"speed": "1",
"vol": "1",
"pitch": "0",
"emotion": "auto",
"language_boost": "auto",
"format": "mp3",
"audio_sample_rate": "32000",
"bitrate": "128000",
"channel": "2",
"vm_pitch": 0,
"intensity": 0,
"timbre": 0,
"sound_effects": "spacious_echo"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/your_tts_result.mp3"
}
],
"voice_id": ""
},
"created_at": 1762215580,
"updated_at": 1762215606,
"queued_at": 1762215580
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.8-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=minimax-tts-speech-2.8-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/minimax-tts-speech-2.8-turbo
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/minimax-tts-speech-2.8-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"minimax-tts-speech-2.8-turbo",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Audio length based pricing
* **Unit Price**: \$0.06 per audio (per one thousand character)
# Image Models
Source: https://docs.gmicloud.ai/model-quickstarts/image/about
Image models support creation from text, edits and fills, style transfer, and high-volume batch jobs. Exact parameters (size, guidance, masks) are documented per model.
## Technical topics
* **Text-to-image (T2I)**, Prompt-based generation with optional negative prompts and seeds.
* **Image-to-image & editing**, Inpainting, outpainting, relight, recolor, and instruction-based edits.
* **Control & structure**, ControlNet, sketches, or reference-guided generation where supported.
* **Batch & async**, Higher-throughput or deferred processing for large job counts.
* **Resolution & formats**, Output dimensions and file types vary by model and API surface.
## Model API & platform docs
For serving modes (serverless vs dedicated), billing, rate limits, task polling, and unified API patterns, see the [**API Reference**](/api-reference/introduction) section.
## Full model list (39)
| Model | Model ID | Organization |
| :------------------------------------- | :------------------------------------- | :--------------- |
| bria-eraser | bria-eraser | bria |
| bria-fibo | bria-fibo | bria |
| bria-fibo-edit | bria-fibo-edit | bria |
| bria-fibo-image-blend | bria-fibo-image-blend | bria |
| bria-fibo-recolor | bria-fibo-recolor | bria |
| bria-fibo-relight | bria-fibo-relight | bria |
| bria-fibo-reseason | bria-fibo-reseason | bria |
| bria-fibo-restore | bria-fibo-restore | bria |
| bria-fibo-restyle | bria-fibo-restyle | bria |
| bria-fibo-sketch-to-image | bria-fibo-sketch-to-image | bria |
| bria-genfill | bria-genfill | bria |
| flux-kontext-pro | flux-kontext-pro | bfl |
| Flux2-Dev | Flux2-Dev | Black-Forest-Lab |
| Flux2-Klein | Flux2-Klein | Black-Forest-Lab |
| gemini-2.5-flash-image | gemini-2.5-flash-image | vertex |
| gemini-3-pro-image-preview | gemini-3-pro-image-preview | vertex |
| gemini-3.1-flash-image-preview | gemini-3.1-flash-image-preview | vertex |
| Gemini-batch-inference | Gemini-batch-inference | vertex-batch |
| GLM-Image | GLM-Image | zai-org |
| gpt-image-1.5 | gpt-image-1.5 | openai |
| gpt-image-2 | gpt-image-2 | openai |
| gpt-image-2-edit | gpt-image-2-edit | openai |
| gpt-image-2-generate | gpt-image-2-generate | openai |
| hunyuan-image-to-image | hunyuan-image-to-image | tencent |
| Qwen-Image-2512 | Qwen-Image-2512 | Qwen |
| reve-create-20250915 | reve-create-20250915 | reve |
| reve-edit-20250915 | reve-edit-20250915 | reve |
| reve-edit-fast-20251030 | reve-edit-fast-20251030 | reve |
| reve-remix-20250915 | reve-remix-20250915 | reve |
| reve-remix-fast-20251030 | reve-remix-fast-20251030 | reve |
| seededit-3-0-i2i-250628 | seededit-3-0-i2i-250628 | bytedance |
| seedream-3-0-t2i-250415 | seedream-3-0-t2i-250415 | byteplus |
| seedream-4-0-250828 | seedream-4-0-250828 | byteplus |
| seedream-5.0-lite | seedream-5.0-lite | byteplus |
| wan2.7-image | wan2.7-image | wan-ai |
| wan2.7-image-pro | wan2.7-image-pro | wan-ai |
| Z-Image | Z-Image | Tongyi-MAI |
| Z-Image-Turbo | Z-Image-Turbo | alibaba-pai |
| Z-Image-Turbo-Fun-Controlnet-Union-2.1 | Z-Image-Turbo-Fun-Controlnet-Union-2.1 | alibaba-pai |
# bria-eraser
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-eraser
API usage guide for bria-eraser.
**Model ID**
```bash theme={null}
bria-eraser
```
**Calling method:** sync
Erase objects from images
# bria-fibo-edit-1.5
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-fibo-edit-1-5
API usage guide for bria-fibo-edit-1.5.
**Model ID**
```bash theme={null}
bria-fibo-edit-1.5
```
**Calling method:** sync
Will be updated
# bria-fibo
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-fibo-generate-1-5
API usage guide for bria-fibo.
**Model ID**
```bash theme={null}
bria-fibo-generate-1.5
```
**Calling method:** sync
Bria Fibo Image Generation Model 1.5
# bria-genfill
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-genfill
API usage guide for bria-genfill.
**Model ID**
```bash theme={null}
bria-genfill
```
**Calling method:** sync
Fill masked regions with prompt-guided content
# bria-image-increase-resolution
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-image-increase-resolution
API usage guide for bria-image-increase-resolution.
**Model ID**
```bash theme={null}
bria-image-increase-resolution
```
**Calling method:** sync
# Bria Increase Resolution API Documentation
The Increase Resolution route upscales an input image, increasing its resolution by either 2x or 4x while preserving detail. It is powered by Bria's image enhancement model.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: \$0.020 per image
* Input Formats: JPEG, PNG (Base64 string or URL)
* Upscaling Factors: 2x (default) or 4x
* Output: Upscaled image at the selected multiplier
## 3. How It Works
### Resolution Upscaling
Provide a single source image and select a multiplier. The model upscales the image by the chosen factor (2x or 4x), reconstructing detail to keep the enlarged result sharp rather than simply stretching the pixels.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :---------------- | :---- | :------- | :----------------------------------------------- |
| image | image | Yes | Input image (Base64 string or URL; JPEG or PNG). |
| desired\_increase | enum | No | Upscaling multiplier: 2 or 4. Default: 2. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bria-image-increase-resolution",
"payload": {
"image": "https://example.com/source_image.jpg",
"desired_increase": 2
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Image processing is currently in progress.
* success: Processing completed. URLs available in outcome.media\_urls.
* failed: Processing failed. Check logs for details.
# bria-image-remove-background
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-image-remove-background
API usage guide for bria-image-remove-background.
**Model ID**
```bash theme={null}
bria-image-remove-background
```
**Calling method:** sync
# Bria Remove Background API Documentation
The Remove Background route removes the background from an input image, returning the foreground subject isolated on a transparent background. It is powered by Bria's RMBG 2.0 model.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: \$0.018 per image
* Model: RMBG 2.0
* Input Formats: JPEG, PNG (Base64 string or URL)
* Output: Image with the background removed (transparent background)
## 3. How It Works
### Background Removal
Provide a single source image and the model detects the primary foreground subject, segments it, and removes everything behind it. The result is returned with the background made transparent, suitable for compositing onto a new background.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :-------- | :---- | :------- | :----------------------------------------------- |
| image | image | Yes | Input image (Base64 string or URL; JPEG or PNG). |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bria-image-remove-background",
"payload": {
"image": "https://example.com/source_image.jpg"
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Image processing is currently in progress.
* success: Processing completed. URLs available in outcome.media\_urls.
* failed: Processing failed. Check logs for details.
# bria-product-dimensions
Source: https://docs.gmicloud.ai/model-quickstarts/image/bria-product-dimensions
API usage guide for bria-product-dimensions.
**Model ID**
```bash theme={null}
bria-product-dimensions
```
**Calling method:** sync
# Bria Product Dimensions API Documentation
The Product Dimensions route turns a product photo and real-world measurements into a marketplace-ready dimension image, overlaying styled callouts for height, width, weight, and capacity onto a clean canvas.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: \$0.040 per image
* Input Formats: JPEG, PNG, WEBP (Base64 string or URL)
* Output: Square image, PNG (default) or JPEG, 256-2200 px per edge
* Styles: Default, Childlike, Elegant
* Required measurement: At least one of Height, Bottom Width, or Top Width must be provided
## 3. How It Works
### Dimension Callouts
Provide a product photo along with its real-world measurements. The model places styled dimension callouts around the product on a clean canvas, sized and positioned according to the values you supply.
### Required Measurements
**At least one of the three dimension attributes must be provided: height\_value, width\_bottom\_value, or width\_top\_value.** A request supplying none of them will not produce a valid dimension image. Each measurement value must be greater than 0, and should be paired with its corresponding unit (height\_unit, width\_bottom\_unit, width\_top\_unit). Weight and capacity are entirely optional and do not satisfy this requirement on their own.
### Callout Placement & Units
Each dimension has a position parameter controlling which side of the product its callout sits on (top, bottom, left, or right). The units\_display setting controls how primary and secondary units appear on the labels: a single unit, or dual units joined by a bullet, slash, or parentheses. Enabling proportional\_lines scales each callout line's length to its measurement.
### Presentation
The style parameter selects the callout geometry and typography. The canvas background accepts a hex color (e.g. #0F766E) or one of the named presets: white, cream, or charcoal. An optional title (max 80 chars) can be placed along the top of the image.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :---------------------- | :------ | :------- | :----------------------------------------------------------------------------------------------------------------------------- |
| image | image | Yes | Source product photo (URL or Base64; JPEG, PNG, WEBP). |
| style | enum | Yes | Callout geometry and typography: 'default', 'childlike', or 'elegant'. Default: "default". |
| height\_value | float | No\* | Height measurement (must be > 0). At least one of height\_value, width\_bottom\_value, or width\_top\_value is required. |
| height\_unit | enum | No | Unit for height: 'mm', 'cm', 'm', 'in', 'ft'. Default: "cm". |
| height\_position | enum | No | Side for the height callout: 'top', 'bottom', 'left', 'right'. Default: "left". |
| width\_bottom\_value | float | No\* | Bottom width measurement (must be > 0). At least one of height\_value, width\_bottom\_value, or width\_top\_value is required. |
| width\_bottom\_unit | enum | No | Unit for bottom width: 'mm', 'cm', 'm', 'in', 'ft'. Default: "cm". |
| width\_bottom\_position | enum | No | Side for the bottom-width callout: 'top', 'bottom', 'left', 'right'. Default: "bottom". |
| width\_top\_value | float | No\* | Top width measurement (must be > 0). At least one of height\_value, width\_bottom\_value, or width\_top\_value is required. |
| width\_top\_unit | enum | No | Unit for top width: 'mm', 'cm', 'm', 'in', 'ft'. Default: "cm". |
| width\_top\_position | enum | No | Side for the top-width callout: 'top', 'bottom', 'left', 'right'. Default: "top". |
| weight\_value | float | No | Optional weight measurement (must be > 0). |
| weight\_unit | enum | No | Unit for weight: 'lb', 'oz', 'g', 'kg'. Default: "kg". |
| weight\_label | enum | No | Label for the weight callout: 'Weight' or 'Net Weight'. Default: "Weight". |
| capacity\_value | float | No | Optional capacity measurement (must be > 0). |
| capacity\_unit | enum | No | Unit for capacity: 'fl\_oz', 'ml', 'l', 'qt', 'gal', 'cups'. Default: "ml". |
| units\_display | enum | No | Label unit format: 'single', 'dual\_bullet', 'dual\_slash', 'dual\_parens'. Default: "single". |
| background | string | No | Canvas background: hex (e.g. #0F766E) or white, cream, charcoal. Default: "white". |
| title | string | No | Optional headline above the product (max 80 chars). |
| title\_position | enum | No | Title placement: 'top\_left', 'top\_center', 'top\_right'. Default: "top\_center". |
| output\_format | enum | No | Output image format: 'png' or 'jpeg'. Default: "png". |
| output\_size | integer | No | Square output edge length in pixels (256-2200). Default: 2200. |
| proportional\_lines | boolean | No | Scale callout line length to the measurement. Default: true. |
\*At least one of height\_value, width\_bottom\_value, or width\_top\_value must be provided.
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bria-product-dimensions",
"payload": {
"image": "https://example.com/product_photo.jpg",
"style": "default",
"height_value": 24.5,
"height_unit": "cm",
"height_position": "left",
"width_bottom_value": 12,
"width_bottom_unit": "cm",
"width_bottom_position": "bottom",
"background": "white",
"output_format": "png",
"output_size": 2200
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Image processing is currently in progress.
* success: Processing completed. URLs available in outcome.media\_urls.
* failed: Processing failed. Check logs for details.
# flux-kontext-pro
Source: https://docs.gmicloud.ai/model-quickstarts/image/flux-kontext-pro
API usage guide for flux-kontext-pro.
**Model ID**
```bash theme={null}
flux-kontext-pro
```
**Calling method:** sync
# Flux Kontext Pro API Usage Guide
## Overview
**Flux Kontext Pro** is a production-grade text-to-image model optimized for quality, speed, and controllability. It supports common aspect ratios, guidance scaling, seed control, step tuning, and flexible response formats. Designed for creative generation and enterprise workflows, it produces consistent, detailed images from natural language prompts.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-kontext-pro",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"aspect_ratio": "16:9",
"prompt_upsampling": false,
"safety_tolerance": "2",
"seed": 0
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------- |
| `prompt` | string | Yes | Text description of the desired image (max 2000 characters). | - | Required |
| `aspect_ratio` | string | No | Desired aspect ratio of the generated image (e.g., 16:9). Supported Range: Aspect ratios can range from 3:7 (portrait) to 7:3 (landscape). All outputs are approximately 1MP total. Use null to let the system decide. | "1:1" | Options: "1:1", "16:9", "9:16", "4:3", "3:7", "7:3" |
| `seed` | integer | No | Random seed for reproducible results (0 for random). | 0 | 0 to 2147483647 |
| `prompt_upsampling` | boolean | No | If true, performs upsampling/enhancement on the prompt for improved detail and adherence. | false | Optional |
| `safety_tolerance` | integer | No | Moderation level for inputs and outputs. 0 is most strict, 6 is more permissive. | 2 | 0 to 6 |
| `output_format` | string | No | Desired format of the output image. | "jpeg" | Options: "jpeg", "png" |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "flux-kontext-pro",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "flux-kontext-pro",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"aspect_ratio": "16:9",
"prompt_upsampling": false,
"safety_tolerance": "2",
"seed": 0
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../output_0.jpg"
},
]
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=flux-kontext-pro
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=flux-kontext-pro" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Veo3
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/flux-kontext-pro" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"flux-kontext-pro",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Per-image request
* **Price**: \$0.05 per image
* **Unit**: Image
## Tips for Better Results
1. **Prompt Clarity**: Use detailed, specific prompts for precise results.
2. **Seed Usage**: Use the same seed with identical parameters for reproducible results
# Flux2-Dev
Source: https://docs.gmicloud.ai/model-quickstarts/image/flux2-dev
API usage guide for Flux2-Dev.
**Model ID**
```bash theme={null}
Flux2-Dev
```
**Calling method:** sync
A Typical Image generation model
# Flux2-Klein
Source: https://docs.gmicloud.ai/model-quickstarts/image/flux2-klein
API usage guide for Flux2-Klein.
**Model ID**
```bash theme={null}
Flux2-Klein
```
**Calling method:** sync
A lightweight image generation model.
# gemini-2.5-flash-image
Source: https://docs.gmicloud.ai/model-quickstarts/image/gemini-2-5-flash-image
API usage guide for gemini-2.5-flash-image.
**Model ID**
```bash theme={null}
gemini-2.5-flash-image
```
**Calling method:** sync
# Gemini 2.5 Flash Image API Usage Guide
## Overview
**Gemini 2.5 Flash Image** is optimized for image understanding and generation, offering a balance of price and performance. It uses the speed and cost-effectiveness of Gemini 2.5 Flash to provide fast and efficient image generation and editing capabilities. Supports text-to-image, image editing, and multi-turn conversations. Each generated image consumes 1290 tokens.
Reference: [https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/2-5-flash-image](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/2-5-flash-image)
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash-image",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg"
],
"aspect_ratio": "4:5"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| -------------- | ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the desired image. | - | Required |
| `image` | string/array | No | Optional reference image URLs (up to 3). Supported formats: PNG, JPEG, WebP, HEIC, HEIF. Max 7MB inline or 30MB from GCS. | - | Max 3 images |
| `aspect_ratio` | string | No | Aspect ratio of the generated image. | "1:1" | Options: "1:1", "3:2", "2:3", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9" |
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-2.5-flash-image",
"status": "queued",
"created_at": 1761763441,
"updated_at": 1761763441,
"queued_at": 1761763441
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/7eaa77fc-bc67-4021-9f1b-96b3fd832314" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-2.5-flash-image",
"status": "success",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg"
],
"aspect_ratio": "4:5"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../gemini_output_0.png"
}
]
},
"created_at": 1761763441,
"updated_at": 1761763451,
"queued_at": 1761763441
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Image generation is in progress |
| `success` | Image generation completed successfully |
| `failed` | Image generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=gemini-2.5-flash-image
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=gemini-2.5-flash-image" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/gemini-2.5-flash-image
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/gemini-2.5-flash-image" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"gemini-2.5-flash-image",
"gemini-3-pro-image-preview",
"other-model-1"
]
}
```
## Multi-turn Conversation (Iterative Image Editing)
This model supports multi-turn conversations for iterative image editing. After generating an image, you can continue refining it by providing additional instructions.
### How It Works
1. **First Turn**: Send a regular request with `prompt` (and optional `image`)
2. **Response**: The response includes `next_turn_contents` - a pre-formatted conversation history
3. **Next Turn**: Copy `next_turn_contents` to your payload's `contents` field, then add your new instruction to the last user turn
4. **Repeat**: Continue iterating until satisfied
### First Turn Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash-image",
"payload": {
"prompt": "A panda making latte art in a cozy cafe",
"aspect_ratio": "1:1"
}
}'
```
### First Turn Response (with next\_turn\_contents)
```json theme={null}
{
"request_id": "abc123",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/.../generated.png"}],
"next_turn_contents": [
{
"role": "user",
"parts": [{"text": "A panda making latte art in a cozy cafe"}]
},
{
"role": "model",
"parts": [
{"text": "Here is the generated image."},
{"fileData": {"mimeType": "image/png", "fileUri": "gs://bucket/generated.png"}}
]
},
{
"role": "user",
"parts": [{"text": ""}, {"fileData": {"mimeType": "image/png", "fileUri": ""}}]
}
]
}
}
```
### Second Turn Request (Using next\_turn\_contents)
Copy `next_turn_contents` to `contents`, then fill in the last user turn with your new instruction:
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash-image",
"payload": {
"contents": [
{
"role": "user",
"parts": [{"text": "A panda making latte art in a cozy cafe"}]
},
{
"role": "model",
"parts": [
{"text": "Here is the generated image."},
{"fileData": {"mimeType": "image/png", "fileUri": "gs://bucket/generated.png"}}
]
},
{
"role": "user",
"parts": [{"text": "Change the panda to a brown bear and make the cup blue"}]
}
],
"aspect_ratio": "1:1"
}
}'
```
### Multi-turn Tips
* **Text-only edits**: Just fill in the `text` field in the last user turn
* **Add reference image**: Include a `fileData` with `fileUri` pointing to a GCS or HTTP URL
* **Empty fields are ignored**: Empty `text` or `fileUri` are automatically filtered out
* **Conversation history**: Each response includes updated `next_turn_contents` for the next iteration
## Model Specifications
| Specification | Value |
| ---------------------------- | --------------------------- |
| Model ID | gemini-2.5-flash-image |
| Max input tokens | 32,768 |
| Max output tokens | 32,768 |
| Max input images | 3 |
| Max output images per prompt | 10 |
| Tokens per output image | 1,290 |
| Supported image types | PNG, JPEG, WebP, HEIC, HEIF |
| Max file size (inline) | 7 MB |
| Max file size (GCS) | 30 MB |
| Temperature | 0.0–2.0 (default 1.0) |
| topP | 0.0–1.0 (default 0.95) |
| topK | 64 (fixed) |
## Pricing
* **Input (text, image, video)**: \$0.30 per 1M tokens
* **Image output**: $30 per 1M tokens (1290 tokens per image ≈ **$0.0387 per image\*\*)
* **Text output**: \$2.50 per 1M tokens
## Tips for Better Results
1. **Prompt Clarity**: Use detailed, specific prompts for precise results.
2. **Multi-turn Iteration**: For complex edits, use multi-turn mode to refine the image step by step.
3. **Reference Images**: Provide up to 3 reference images to guide style and composition.
# gemini-3.1-flash-image
Source: https://docs.gmicloud.ai/model-quickstarts/image/gemini-3-1-flash-image
API usage guide for gemini-3.1-flash-image.
**Model ID**
```bash theme={null}
gemini-3.1-flash-image
```
**Calling method:** sync
# Gemini 3.1 Flash Image API Usage Guide
## Overview
**Gemini 3.1 Flash Image** is optimized for image understanding and generation, balancing speed and cost. It supports text-to-image, image-guided editing, and multi-turn iterative workflows via `contents`.
Reference: [https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-flash-image](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-flash-image)
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"image_size": "1K",
"aspect_ratio": "4:5"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------- | ------------ | ----------------- | ------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------- |
| `prompt` | string | Yes (single-turn) | Text description of the target image. | - | Required when `contents` is not provided |
| `image` | string/array | No | Optional reference image URLs for image-guided generation/editing. | - | Max 14 images; PNG/JPEG/WebP/HEIC/HEIF; 7MB inline upload, 30MB via GCS |
| `image_size` | string | No | Output resolution preset for generated image. | "1K" | Options: "512", "1K", "2K", "4K" |
| `aspect_ratio` | string | No | Aspect ratio of the generated image. | "1:1" | Options: "1:1", "3:2", "2:3", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9" |
| `image_output_format` | string | No | Output image format. | "png" | Options: "png", "jpeg" |
| `contents` | array | No | Multi-turn conversation payload for iterative editing. | - | When provided, `prompt` and `image` are ignored |
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-3.1-flash-image",
"status": "queued",
"created_at": 1761763441,
"updated_at": 1761763441,
"queued_at": 1761763441
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/7eaa77fc-bc67-4021-9f1b-96b3fd832314" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-3.1-flash-image",
"status": "success",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"image_size": "1K",
"aspect_ratio": "4:5"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../gemini_output_0.png"
}
]
},
"created_at": 1761763441,
"updated_at": 1761763451,
"queued_at": 1761763441
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Image generation is in progress |
| `success` | Image generation completed successfully |
| `failed` | Image generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=gemini-3.1-flash-image
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=gemini-3.1-flash-image" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/gemini-3.1-flash-image
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/gemini-3.1-flash-image" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Gemini Native Interface (alternative)
In addition to the GMI-shape `/requests` endpoint above, this model accepts
the **Vertex-native `generateContent` shape** — request body matches what
Google's [`generateContent`](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/model-reference/generate-content)
uses. Customers already running on `google-genai` SDK or any HTTP client
that follows Google's REST contract can plug in by changing only the
`base_url` and `Authorization` header.
### Endpoint
```
POST https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/models/gemini-3.1-flash-image:generateContent
```
### Curl example
```bash theme={null}
curl --request POST \
--url 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/models/gemini-3.1-flash-image:generateContent' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "A serene mountain lake at dawn, photorealistic, soft mist over the water"}]
}
],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K",
"imageOutputOptions": {"mimeType": "image/png"}
}
}
}'
```
### google-genai SDK example
```python theme={null}
from google import genai
from google.genai import types
MODEL = "gemini-3.1-flash-image"
ENDPOINT = (
"https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests"
f"/v1/models/{MODEL}:generateContent"
)
client = genai.Client(
vertexai=True,
http_options={
"base_url": ENDPOINT,
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
},
)
response = client.models.generate_content(
model=MODEL,
contents="A serene mountain lake at dawn, photorealistic, soft mist over the water",
config=types.GenerateContentConfig(
image_config=types.ImageConfig(
aspect_ratio="16:9",
image_size="1K",
image_output_options=types.ImageConfigImageOutputOptions(
mime_type="image/png",
),
),
),
)
# Typed access — SDK auto-decodes inlineData base64 to bytes
print("model_version:", response.model_version)
for c in response.candidates:
for p in c.content.parts:
if p.inline_data:
print(f"got {len(p.inline_data.data)} bytes of {p.inline_data.mime_type}")
```
### Multi-turn
Pass `contents` as user/model/user alternation. The last turn must be
`role: "user"`. Reference images on user turns go in
`parts[].inlineData` (base64) — same field shape as Google's
`generateContent`.
```json theme={null}
{
"contents": [
{"role": "user", "parts": [{"text": "Generate a cyberpunk cityscape"}]},
{"role": "model", "parts": [{"text": "Here is a neon-lit city at night."}]},
{"role": "user", "parts": [{"text": "Make it rainy with a lone figure walking under neon lights"}]}
]
}
```
## Multi-turn Conversation (Iterative Image Editing)
This model supports multi-turn conversations for iterative image editing. After generating an image, you can continue refining it by providing additional instructions.
### How It Works
1. **First Turn**: Send a regular request with `prompt` (and optional `image`)
2. **Response**: The response includes `next_turn_contents` with prior conversation context
3. **Next Turn**: Copy `next_turn_contents` into payload `contents`, then append your new user instruction
4. **Repeat**: Continue until the result is satisfactory
## Model Specifications
| Specification | Value |
| ----------------------------- | --------------------------------------------------------- |
| Model ID | gemini-3.1-flash-image |
| Max input tokens | 131,072 |
| Max output tokens | 32,768 |
| Max input images | 14 |
| Max file size (inline upload) | 7 MB |
| Max file size (GCS) | 30 MB |
| Max input size | 500 MB |
| Supported image MIME types | image/png, image/jpeg, image/webp, image/heic, image/heif |
| Supported aspect ratios | 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
| Temperature | 0.0-2.0 (default 1.0) |
| topP | 0.0-1.0 (default 0.95) |
| candidateCount | 1 |
## Capabilities
* **Supported**: System instructions, Count Tokens, Thinking
* **Not supported**: Code execution, Function calling, Gemini Live API, implicit/explicit context caching, Vertex AI RAG Engine, Chat completions
## Pricing
* **Input (text, image)**: \$0.50 per 1M tokens
* **Text output (response/reasoning)**: \$3.00 per 1M tokens
* **Image output**: \$60 per 1M tokens
* 512 output image: 747 tokens (about \$0.045/image)
* 1K output image: 1120 tokens (about \$0.067/image)
* 2K output image: 1680 tokens (about \$0.101/image)
* 4K output image: 2520 tokens (about \$0.15/image)
## Tips for Better Results
1. Use specific and descriptive prompts for stable outputs.
2. For complex edits, use multi-turn mode with `contents` for iterative refinement.
3. Use high-quality reference images and keep composition/style instructions explicit.
# gemini-3.1-flash-lite-image
Source: https://docs.gmicloud.ai/model-quickstarts/image/gemini-3-1-flash-lite-image
API usage guide for gemini-3.1-flash-lite-image.
**Model ID**
```bash theme={null}
gemini-3.1-flash-lite-image
```
**Calling method:** sync
# Gemini 3.1 Flash-Lite Image (Nano Banana 2 Lite)
## Overview
**Gemini 3.1 Flash-Lite Image** generates and edits images from text and reference images, optimized for speed and cost. Output is 1K resolution.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit a request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-lite-image",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": ["https://example.com/ref1.jpg"],
"aspect_ratio": "4:5",
"thinking": "high"
}
}'
```
### Request parameters
| Parameter | Type | Required | Description |
| --------------------- | ------------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt` | string | Yes (single-turn) | Text description of the target image. Required unless `contents` is provided. |
| `image` | string/array | No | Reference image URLs for image-guided generation/editing. |
| `aspect_ratio` | enum | No | `1:1` (default), `3:2`, `2:3`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`. |
| `image_output_format` | enum | No | `png` (default) or `jpeg`. |
| `contents` | array | No | Multi-turn conversation payload for iterative editing. When provided, `prompt`/`image` are ignored. |
| `thinking` | enum | No | Reasoning effort: `minimal` or `high`. Higher improves quality on complex prompts at a small extra reasoning-token cost. Omit for the model default. |
## Check status
```bash theme={null}
curl "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/{request_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
```
On success, `outcome.media_urls[0].url` is the generated image.
## Pricing
* \*\*Image output: $30 per 1M tokens** (1K image ≈ 1120 tokens ≈ $0.034/image).
* Input (text, image, video): \$0.25 per 1M tokens.
* Text output (response/reasoning): \$1.50 per 1M tokens.
## Notes
* Output resolution is fixed at 1K (720p-class) in this release.
* `thinking` accepts only `minimal` or `high` for this model (other levels are rejected).
# gemini-3-pro-image
Source: https://docs.gmicloud.ai/model-quickstarts/image/gemini-3-pro-image
API usage guide for gemini-3-pro-image.
**Model ID**
```bash theme={null}
gemini-3-pro-image
```
**Calling method:** sync
# Gemini 3 Pro Image API Usage Guide
## Overview
**Gemini 3 Pro Image** creates high-quality images from descriptive prompts and can blend in multiple reference images supplied as URLs. You can control aspect ratio, output resolution (1K/2K/4K) and the number of images per request. This model is hosted on Google AI Studio and requires a Google API key.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"image_size": "2K",
"aspect_ratio": "4:5"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------- | ------------ | -------- | ------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------ |
| `prompt` | string | Yes | Text description of the desired image (max 2000 characters). | - | Required |
| `image` | string/array | No | Optional reference image URLs (up to 14). Supported: PNG, JPEG, WebP, HEIC, HEIF. Max 7MB inline. | - | Optional |
| `image_size` | string | No | Target resolution for generated images. | "1K" | Options: "1K", "2K", "4K" |
| `aspect_ratio` | string | No | Aspect ratio of the generated image. | "1:1" | Options: "1:1", "4:5", "5:4", "3:4", "4:3", "9:16", "16:9", "21:9" |
| `image_output_format` | string | No | Output image format. | "png" | Options: "png", "jpeg" |
| `contents` | array | No | Multi-turn conversation payload for iterative editing. When provided, `prompt` and `image` are ignored. | - | See multi-turn section |
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-3-pro-image",
"status": "queued",
"created_at": 1761763441,
"updated_at": 1761763441,
"queued_at": 1761763441
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/7eaa77fc-bc67-4021-9f1b-96b3fd832314" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-3-pro-image",
"status": "success",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"image_size": "2K",
"aspect_ratio": "4:5"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../gemini_output_0.jpg"
},
]
},
"created_at": 1761763441,
"updated_at": 1761763451,
"queued_at": 1761763441
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=gemini-3-pro-image
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=gemini-3-pro-image" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/gemini-3-pro-image
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/gemini-3-pro-image" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"gemini-3-pro-image",
"other-model-1",
"other-model-2"
]
}
```
## Gemini Native Interface (alternative)
In addition to the GMI-shape `/requests` endpoint above, this model accepts
the **Vertex-native `generateContent` shape** — request body matches what
Google's [`generateContent`](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/model-reference/generate-content)
uses. Customers already running on `google-genai` SDK or any HTTP client
that follows Google's REST contract can plug in by changing only the
`base_url` and `Authorization` header.
### Endpoint
```
POST https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/models/gemini-3-pro-image:generateContent
```
### Curl example
```bash theme={null}
curl --request POST \
--url 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/models/gemini-3-pro-image:generateContent' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "A hyperrealistic portrait of a snow leopard on a moonlit cliff, cinematic"}]
}
],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K",
"imageOutputOptions": {"mimeType": "image/png"}
}
}
}'
```
### google-genai SDK example
```python theme={null}
from google import genai
from google.genai import types
MODEL = "gemini-3-pro-image"
ENDPOINT = (
"https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests"
f"/v1/models/{MODEL}:generateContent"
)
client = genai.Client(
vertexai=True,
http_options={
"base_url": ENDPOINT,
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
},
)
response = client.models.generate_content(
model=MODEL,
contents="A hyperrealistic portrait of a snow leopard on a moonlit cliff, cinematic",
config=types.GenerateContentConfig(
image_config=types.ImageConfig(
aspect_ratio="16:9",
image_size="1K",
image_output_options=types.ImageConfigImageOutputOptions(
mime_type="image/png",
),
),
),
)
# Typed access — SDK auto-decodes inlineData base64 to bytes
print("model_version:", response.model_version)
for c in response.candidates:
for p in c.content.parts:
if p.inline_data:
print(f"got {len(p.inline_data.data)} bytes of {p.inline_data.mime_type}")
```
### Multi-turn
Pass `contents` as user/model/user alternation. The last turn must be
`role: "user"`. Reference images on user turns go in
`parts[].inlineData` (base64) — same field shape as Google's
`generateContent`.
```json theme={null}
{
"contents": [
{"role": "user", "parts": [{"text": "Generate a cyberpunk cityscape"}]},
{"role": "model", "parts": [{"text": "Here is a neon-lit city at night."}]},
{"role": "user", "parts": [{"text": "Make it rainy with a lone figure walking under neon lights"}]}
]
}
```
## Multi-turn Conversation (Iterative Image Editing)
This model supports multi-turn conversations for iterative image editing. After generating an image, you can continue refining it by providing additional instructions.
### How It Works
1. **First Turn**: Send a regular request with `prompt` (and optional `image`)
2. **Response**: The response includes `next_turn_contents` - a pre-formatted conversation history
3. **Next Turn**: Copy `next_turn_contents` to your payload's `contents` field, then add your new instruction to the last user turn
4. **Repeat**: Continue iterating until satisfied
### First Turn Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"payload": {
"prompt": "A panda making latte art in a cozy cafe",
"image_size": "1K",
"aspect_ratio": "1:1"
}
}'
```
### First Turn Response (with next\_turn\_contents)
```json theme={null}
{
"request_id": "abc123",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/.../generated.png"}],
"next_turn_contents": [
{
"role": "user",
"parts": [{"text": "A panda making latte art in a cozy cafe"}]
},
{
"role": "model",
"parts": [
{"text": "Here is the generated image."},
{"fileData": {"mimeType": "image/png", "fileUri": "gs://bucket/generated.png"}}
]
},
{
"role": "user",
"parts": [{"text": ""}, {"fileData": {"mimeType": "image/png", "fileUri": ""}}]
}
]
}
}
```
### Second Turn Request (Using next\_turn\_contents)
Copy `next_turn_contents` to `contents`, then fill in the last user turn with your new instruction:
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"payload": {
"contents": [
{
"role": "user",
"parts": [{"text": "A panda making latte art in a cozy cafe"}]
},
{
"role": "model",
"parts": [
{"text": "Here is the generated image."},
{"fileData": {"mimeType": "image/png", "fileUri": "gs://bucket/generated.png"}}
]
},
{
"role": "user",
"parts": [{"text": "Change the panda to a brown bear and make the cup blue"}]
}
],
"image_size": "1K",
"aspect_ratio": "1:1"
}
}'
```
### Multi-turn Tips
* **Text-only edits**: Just fill in the `text` field in the last user turn
* **Add reference image**: Include a `fileData` with `fileUri` pointing to a GCS or HTTP URL
* **Empty fields are ignored**: Empty `text` or `fileUri` are automatically filtered out
* **Conversation history**: Each response includes updated `next_turn_contents` for the next iteration
## Pricing
* **Pricing Type**: Per-image request
* **Price**: \$0.134 per image
* **Unit**: Image
## Tips for Better Results
1. **Prompt Clarity**: Use detailed, specific prompts for precise results.
2. **Multi-turn Iteration**: For complex edits, use multi-turn mode to refine the image step by step.
# Gemini-batch-inference
Source: https://docs.gmicloud.ai/model-quickstarts/image/gemini-batch-inference
API usage guide for Gemini-batch-inference.
**Model ID**
```bash theme={null}
Gemini-batch-inference
```
**Calling method:** sync
# Gemini Batch Inference API Usage Guide
## Overview
**Gemini Batch Inference** allows you to process large volumes of requests asynchronously at approximately 50% lower cost than online inference. Ideal for batch processing tasks like document analysis, image labeling, or bulk content generation.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Batch Job
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-batch",
"payload": {
"model": "gemini-3-flash-preview",
"input_data": "{\"request\":{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"What is 2+2?\"}]}]}}\n{\"request\":{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"What is the capital of France?\"}]}]}}"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------ | ------ | -------- | --------------------------------------------------------------------------------------------- | ---------------------- | ------------------------------------ |
| `model` | enum | Yes | Target Gemini model for batch prediction. | gemini-3-flash-preview | See supported models below |
| `input_data` | string | Yes | JSONL content where each line is a request object. Can be raw JSONL string or base64 encoded. | - | Max 1GB file size, max 200K requests |
### Supported Models
| Model | Description | Best For |
| ---------------------------- | ---------------------------------- | ------------------------- |
| `gemini-3-flash-preview` | Fast, efficient Gemini 3 Flash | High-volume, simple tasks |
| `gemini-3-pro-preview` | Most capable Gemini 3 Pro | Complex reasoning tasks |
| `gemini-3-pro-image-preview` | Gemini 3 Pro with image generation | Batch image generation |
### JSONL Input Format
Each line must be a valid JSON object with a `request` field containing `contents`:
**Text-only requests:**
```jsonl theme={null}
{"request":{"contents":[{"role":"user","parts":[{"text":"What is the capital of France?"}]}]}}
{"request":{"contents":[{"role":"user","parts":[{"text":"Summarize quantum computing in 3 sentences."}]}]}}
{"request":{"contents":[{"role":"user","parts":[{"text":"Write a haiku about mountains."}]}]}}
```
**Multimodal requests (with images):**
```jsonl theme={null}
{"request":{"contents":[{"role":"user","parts":[{"text":"Describe this image"},{"file_data":{"file_uri":"gs://bucket/image.jpg","mime_type":"image/jpeg"}}]}]}}
```
### Response (Immediate)
After submitting, you receive a `request_id` to track the job:
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-batch",
"status": "processing",
"outcome": {
"batch_job_state": "JOB_STATE_QUEUED"
},
"created_at": 1761763441,
"updated_at": 1761763441
}
```
## Check Job Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/7eaa77fc-bc67-4021-9f1b-96b3fd832314" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response (In Progress)
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-batch",
"status": "processing",
"outcome": {
"batch_job_state": "JOB_STATE_RUNNING"
},
"created_at": 1761763441,
"updated_at": 1761764441
}
```
### Response (Completed)
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "gemini-batch",
"status": "success",
"outcome": {
"batch_job_state": "JOB_STATE_SUCCEEDED",
"output_url": "https://storage.googleapis.com/.../predictions.jsonl",
"output_download_urls": [
"https://storage.googleapis.com/.../predictions-00000-of-00001.jsonl"
],
"batch_job_completion_stats": {
"successful_count": "100",
"failed_count": "2"
},
"token_usage": {
"total_prompt_tokens": 5000,
"total_candidates_tokens": 8000,
"successful_requests": 100,
"failed_requests": 2
},
"actual_cost_usd": "$0.001234"
},
"created_at": 1761763441,
"updated_at": 1761765441
}
```
## Download and Parse Output
The output is a JSONL file where each line corresponds to one input request:
```json theme={null}
{
"status": "",
"processed_time": "2024-01-15T10:30:00.000+00:00",
"request": {"contents": [{"role": "user", "parts": [{"text": "What is 2+2?"}]}]},
"response": {
"candidates": [{
"content": {"parts": [{"text": "4"}], "role": "model"},
"finishReason": "STOP"
}],
"usageMetadata": {
"promptTokenCount": 5,
"candidatesTokenCount": 1,
"totalTokenCount": 6
}
}
}
```
**Note:** An empty `status` field indicates success. Failed requests will have an error message in `status`.
## List Your Batch Jobs
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=gemini-batch
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=gemini-batch" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Request Status Values
| Status | Description |
| ------------ | -------------------------------------------------------------- |
| `queued` | Job is waiting to be submitted to Vertex AI |
| `processing` | Batch job is running (may take minutes to hours) |
| `success` | Job completed (check `batch_job_completion_stats` for details) |
| `failed` | Job failed (check error message in outcome) |
## Batch Job States (Vertex AI)
| State | Description |
| ------------------------------- | ------------------------------------- |
| `JOB_STATE_QUEUED` | Waiting for resources |
| `JOB_STATE_PENDING` | Job is being prepared |
| `JOB_STATE_RUNNING` | Processing requests |
| `JOB_STATE_SUCCEEDED` | All requests completed |
| `JOB_STATE_PARTIALLY_SUCCEEDED` | Some requests failed |
| `JOB_STATE_FAILED` | Job failed |
| `JOB_STATE_CANCELLED` | Job was cancelled (e.g., 24h timeout) |
## Pricing
| Model | Online Price | Batch Price (50% off) |
| ------------------ | ------------------------------------ | ----------------------------------------- |
| Gemini 3 Flash | $0.10/1M input, $0.40/1M output | **$0.05/1M input, $0.20/1M output** |
| Gemini 3 Pro | $1.25/1M input, $5.00/1M output | **$0.625/1M input, $2.50/1M output** |
| Gemini 3 Pro Image | $0.0011/input img, $0.134/output img | **$0.00055/input img, $0.067/output img** |
## Limits
| Limit | Value |
| -------------------- | ----------------------------------- |
| Max input file size | 1 GB |
| Max requests per job | 200,000 |
| Max processing time | 24 hours (after job starts running) |
| Max queue time | 72 hours |
## Tips for Best Results
1. **Batch Size**: Ideal for 100+ requests. For fewer requests, consider online inference.
2. **File References**: Use `gs://` URIs for images/documents stored in Google Cloud Storage.
3. **Processing Time**: Jobs typically complete within minutes to hours depending on volume.
4. **Cost Optimization**: Use batch for non-time-sensitive workloads to save \~50%.
5. **Error Handling**: Check `batch_job_completion_stats` for failed request counts.
6. **Partial Results**: Even if some requests fail, successful ones are still billed and available.
# GLM-Image
Source: https://docs.gmicloud.ai/model-quickstarts/image/glm-image
API usage guide for GLM-Image.
**Model ID**
```bash theme={null}
GLM-Image
```
**Calling method:** sync
GLM-Image is a image-generation model with strong text rendering and supports image-to-image tasks (editing, style transfer, identity-preserving generation, multi-subject consistency).
# gpt-image-2-edit
Source: https://docs.gmicloud.ai/model-quickstarts/image/gpt-image-2-edit
API usage guide for gpt-image-2-edit.
**Model ID**
```bash theme={null}
gpt-image-2-edit
```
**Calling method:** sync
# gpt-image-2-edit API Usage Guide
## Overview
**gpt-image-2-edit** uses OpenAI's GPT Image 2 model to edit or transform an existing image based on a text prompt. It supports two modes:
* **Image Edit**: Modify an image according to a prompt (e.g. change background, style transfer)
* **Inpainting**: Edit a specific region of an image using a mask (white pixels are edited, black pixels are preserved)
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Edit Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Image Edit (no mask)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-edit",
"payload": {
"prompt": "Replace the background with a snowy mountain scene",
"image": "",
"size": "1024x1024",
"quality": "medium"
}
}'
```
### Inpainting (with mask)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-edit",
"payload": {
"prompt": "Paint a rainbow in the sky",
"image": "",
"mask": "",
"size": "1024x1024",
"quality": "medium"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------------- | -------- | --------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"gpt-image-2-edit"` |
| `payload.prompt` | string | Yes | Text instruction describing the desired edit | - | - |
| `payload.image` | string | Yes | Input image as base64-encoded string or publicly accessible URL | - | Must be a valid image |
| `payload.mask` | string | No | Mask image for inpainting. White pixels are edited, black pixels are preserved. Must match the dimensions of `image`. | - | Same size as input image |
| `payload.size` | string (enum) | No | Dimensions of the output image | `"1024x1024"` | `"1024x1024"`, `"1024x1536"`, `"1536x1024"` |
| `payload.quality` | string (enum) | No | Image quality level — affects detail and cost | `"medium"` | `"low"`, `"medium"`, `"high"`, `"auto"` |
| `payload.n` | integer | No | Number of images to generate | `1` | Min: 1, Max: 10 |
### Response
```json theme={null}
{
"request_id": "cd5b59d5-1b3f-4fd5-9899-15ecea1f28ba",
"model": "gpt-image-2-edit",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/..."}],
"thumbnail_image_url": "https://storage.googleapis.com/..."
}
}
```
## Pricing
Billing is based on the **actual token consumption** reported by OpenAI for each request. Users are charged according to the real usage of input text tokens, cached input text tokens, input image tokens, cached input image tokens, and output image tokens.
The final cost may vary depending on prompt length, whether input images are provided, image size, quality, number of generated images, and other request parameters.
### Token Pricing
Prices below are charged **per 1M tokens**:
| Token Type | Price |
| ------------------------- | ------------------- |
| Text input tokens | \$5.00 / 1M tokens |
| Cached text input tokens | \$1.25 / 1M tokens |
| Image input tokens | \$8.00 / 1M tokens |
| Cached image input tokens | \$2.00 / 1M tokens |
| Image output tokens | \$30.00 / 1M tokens |
### Billing Formula
```text theme={null}
Total cost =
(text_input_tokens × $5.00 / 1,000,000)
+ (cached_text_input_tokens × $1.25 / 1,000,000)
+ (image_input_tokens × $8.00 / 1,000,000)
+ (cached_image_input_tokens × $2.00 / 1,000,000)
+ (image_output_tokens × $30.00 / 1,000,000)
```
### Estimated Price Reference (per image)
The following table is provided as a **reference only** for common quality and resolution combinations. These are estimated per-image prices and may differ from the final billed amount, which is always based on actual token usage.
| Quality | 1024x1024 | 1024x1536 | 1536x1024 |
| ------- | --------- | --------- | --------- |
| Low | \$0.006 | \$0.005 | \$0.005 |
| Medium | \$0.053 | \$0.041 | \$0.041 |
| High | \$0.211 | \$0.165 | \$0.165 |
## Check Request Status
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
## Native OpenAI Format (Raw API)
Use the native OpenAI-compatible endpoint for direct integration with the OpenAI SDK or clients.
### Base URL
```
https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1
```
### Edit Image (multipart)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/images/edits" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=Replace the background with mountains" \
-F "image=@photo.jpg" \
-F "size=1024x1024" \
-F "quality=medium"
```
### Edit Image (JSON + base64)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/images/edits" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Replace the background with mountains",
"image": "data:image/jpeg;base64,...",
"size": "1024x1024",
"quality": "medium"
}'
```
### Native Parameters
| Parameter | Type | Required | Description | Default | Notes |
| -------------------- | ------------- | -------- | ----------------------------------------------------------------- | ------------- | -------------------------------------------------------- |
| `model` | string | **Yes** | Must be `"gpt-image-2"` | - | No other value accepted |
| `prompt` | string | **Yes** | Text instruction for the edit | - | - |
| `image` | file / string | **Yes** | Input image — binary file (multipart) or base64 data URI (JSON) | - | Up to 16 images via `image[]` |
| `mask` | file / string | No | Inpainting mask — white pixels are edited, black pixels preserved | - | Same dimensions as input image |
| `size` | string | No | `WxH` format | `"1024x1024"` | Both dimensions must be multiples of 16; max edge 3840px |
| `quality` | string | No | `low` / `medium` / `high` / `auto` | `"medium"` | - |
| `n` | integer | No | Number of images (1–10) | `1` | Each image billed separately |
| `output_format` | string | No | `png` / `jpeg` | `"png"` | - |
| `output_compression` | integer | No | Compression level 0–100 | null | Only valid for `jpeg` |
### Native Response Format
```json theme={null}
{
"created": 1780943967,
"size": "1024x1024",
"quality": "medium",
"output_format": "png",
"data": [
{ "b64_json": "" }
],
"usage": {
"input_tokens": 592,
"input_tokens_details": { "text_tokens": 16, "image_tokens": 576 },
"output_tokens": 256,
"output_tokens_details": { "image_tokens": 256, "text_tokens": 0 },
"total_tokens": 848
}
}
```
### OpenAI SDK Usage
```python theme={null}
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1"
)
with open("photo.jpg", "rb") as f:
response = client.images.edit(
model="gpt-image-2",
image=f,
prompt="Replace the background with mountains",
size="1024x1024",
quality="medium"
)
print(response.data[0].b64_json)
```
# gpt-image-2-generate
Source: https://docs.gmicloud.ai/model-quickstarts/image/gpt-image-2-generate
API usage guide for gpt-image-2-generate.
**Model ID**
```bash theme={null}
gpt-image-2-generate
```
**Calling method:** sync
# gpt-image-2-generate API Usage Guide
## Overview
**gpt-image-2-generate** is OpenAI's latest text-to-image model. It excels at following complex prompts, rendering accurate text within images, and producing photorealistic outputs across a wide range of styles.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-generate",
"payload": {
"prompt": "A photograph of a red fox in an autumn forest",
"size": "1920x1080",
"quality": "medium",
"output_format": "png",
"n": 1
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| ----------------------- | ------------- | -------- | --------------------------------------------- | ------------- |
| `model` | string | Yes | Model identifier | - |
| `payload.prompt` | string | Yes | Text description of the image to generate | - |
| `payload.size` | string (enum) | No | Output resolution and aspect ratio | `"1920x1080"` |
| `payload.quality` | string (enum) | No | Image quality level — affects detail and cost | `"medium"` |
| `payload.n` | integer | No | Number of images to generate | `1` |
| `payload.output_format` | string (enum) | No | File format of the generated image | `"png"` |
### Response
```json theme={null}
{
"request_id": "cd5b59d5-1b3f-4fd5-9899-15ecea1f28ba",
"model": "gpt-image-2-generate",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/..."}],
"thumbnail_image_url": "https://storage.googleapis.com/..."
}
}
```
## Pricing
Billing is based on the **actual token consumption** reported by OpenAI for each request. Users are charged according to the real usage of input text tokens, cached input text tokens, input image tokens, cached input image tokens, and output image tokens.
The final cost may vary depending on prompt length, whether input images are provided, image size, quality, number of generated images, and other request parameters.
### Token Pricing
Prices below are charged **per 1M tokens**:
| Token Type | Price |
| ------------------------- | ------------------- |
| Text input tokens | \$5.00 / 1M tokens |
| Cached text input tokens | \$1.25 / 1M tokens |
| Image input tokens | \$8.00 / 1M tokens |
| Cached image input tokens | \$2.00 / 1M tokens |
| Image output tokens | \$30.00 / 1M tokens |
### Billing Formula
```text theme={null}
Total cost =
(text_input_tokens × $5.00 / 1,000,000)
+ (cached_text_input_tokens × $1.25 / 1,000,000)
+ (image_input_tokens × $8.00 / 1,000,000)
+ (cached_image_input_tokens × $2.00 / 1,000,000)
+ (image_output_tokens × $30.00 / 1,000,000)
```
### Estimated Price Reference (per image)
The following table is provided as a **reference only** for common quality and resolution combinations. These are estimated per-image prices and may differ from the final billed amount, which is always based on actual token usage.
| Quality | 1024x1024 | 1024x1536 | 1536x1024 |
| ------- | --------- | --------- | --------- |
| Low | \$0.006 | \$0.005 | \$0.005 |
| Medium | \$0.053 | \$0.041 | \$0.041 |
| High | \$0.211 | \$0.165 | \$0.165 |
## Check Request Status
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
## Native OpenAI Format (Raw API)
Use the native OpenAI-compatible endpoint for direct integration with the OpenAI SDK or clients.
### Base URL
```
https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1
```
### Generate Image
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A red fox in an autumn forest",
"size": "1024x1024",
"quality": "medium",
"output_format": "png",
"n": 1
}'
```
### Native Parameters
| Parameter | Type | Required | Description | Default | Notes |
| -------------------- | ------- | -------- | ---------------------------------- | ------------- | ---------------------------------------------------------------------------- |
| `model` | string | **Yes** | Must be `"gpt-image-2"` | - | No other value accepted |
| `prompt` | string | **Yes** | Text description | - | - |
| `size` | string | No | `WxH` format | `"1024x1024"` | Both dimensions must be multiples of 16; max edge 3840px; aspect ratio ≤ 3:1 |
| `quality` | string | No | `low` / `medium` / `high` / `auto` | `"medium"` | - |
| `n` | integer | No | Number of images (1–10) | `1` | Each image billed separately |
| `output_format` | string | No | `png` / `jpeg` | `"png"` | - |
| `output_compression` | integer | No | Compression level 0–100 | null | Only valid for `jpeg` |
| `background` | string | No | `auto` / `opaque` | `"auto"` | - |
| `moderation` | string | No | `auto` / `low` | `"auto"` | - |
### Native Response Format
```json theme={null}
{
"created": 1780943845,
"size": "1024x1024",
"quality": "low",
"output_format": "png",
"data": [
{ "b64_json": "" }
],
"usage": {
"input_tokens": 16,
"input_tokens_details": { "text_tokens": 16, "image_tokens": 0 },
"output_tokens": 196,
"output_tokens_details": { "image_tokens": 196, "text_tokens": 0 },
"total_tokens": 212
}
}
```
### OpenAI SDK Usage
```python theme={null}
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/v1"
)
response = client.images.generate(
model="gpt-image-2",
prompt="A red fox in an autumn forest",
size="1024x1024",
quality="medium"
)
print(response.data[0].b64_json)
```
# hunyuan-image-to-image
Source: https://docs.gmicloud.ai/model-quickstarts/image/hunyuan-image-to-image
API usage guide for hunyuan-image-to-image.
**Model ID**
```bash theme={null}
hunyuan-image-to-image
```
**Calling method:** sync
# Tencent Hunyuan Image-to-Image API Documentation
## Overview
Tencent Cloud's Hunyuan AI Art Image-to-Image model allows users to edit, restyle, or transform an existing image based on textual prompts. It supports detailed positive and negative text guidance to ensure the generated output aligns with user intentions.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image-to-Image Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "hunyuan-image-to-image",
"payload": {
"image": "https://example.com/source_image.jpg",
"prompt": "Turn the landscape into a snowy winter scene, highly detailed.",
"negative_prompt": "people, animals, blurry, distorted"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| ----------------- | ------ | -------- | ---------------------------------------- | ------- |
| `image` | string | Yes | Input image to be edited. | null |
| `prompt` | string | No | Text description or editing instruction. | "" |
| `negative_prompt` | string | No | What to avoid in the generated image. | "" |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "hunyuan-image-to-image",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "hunyuan-image-to-image",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../hunyuan_output_0.jpg"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Image is currently being generated |
| `success` | Image generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Per generation
* **Price**: \$0.08 per generation
# luma-uni-1.1
Source: https://docs.gmicloud.ai/model-quickstarts/image/luma-uni-1-1
API usage guide for luma-uni-1.1.
**Model ID**
```bash theme={null}
luma-uni-1.1
```
**Calling method:** sync
# Luma Uni-1.1 API Documentation
Luma Uni-1.1 is a decoder-only autoregressive transformer where text and image tokens share a single sequence — reasoning and image generation run in the same model. Ranked top-3 on Image Arena across Text-to-Image and Image Edit. Generation time \~30s per image.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: $0.0404/image (T2I) | $0.0434/image (edit)
* Output: 2048px (2K) resolution, PNG or JPEG
* Generation time: \~30 seconds
* Features: Text-to-Image, Natural-language Image Editing
## 3. Generation Modes
### Text-to-Image
Provide `prompt` and optional `aspect_ratio`. The model generates a new image from your description.
### Image Editing
Provide `prompt` and an `image` (URL). Describe changes in plain language — swap backgrounds, shift lighting, apply styles — without prompt scaffolding.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :------------ | :----- | :------- | :-------------------------------------------------------- |
| prompt | string | Yes | Describe the image or the edit you want (plain language). |
| aspect\_ratio | enum | No | Output aspect ratio. Default: 1:1. |
| image | image | No | Source image URL for editing mode. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "luma-uni-1.1",
"payload": {
"prompt": "A glass of iced coffee on a marble countertop, morning light streaming through a window",
"aspect_ratio": "16:9"
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed.
* processing: Image generation is in progress (\~30s).
* success: Generation completed. URL available in outcome.media\_urls.
* failed: Image generation failed.
# Qwen-Image-2512
Source: https://docs.gmicloud.ai/model-quickstarts/image/qwen-image-2512
API usage guide for Qwen-Image-2512.
**Model ID**
```bash theme={null}
Qwen-Image-2512
```
**Calling method:** sync
A high-resolution text-to-image generation model (up to 2512px).
# reve-2-1
Source: https://docs.gmicloud.ai/model-quickstarts/image/reve-2-1
API usage guide for reve-2-1.
**Model ID**
```bash theme={null}
reve-2-1
```
**Calling method:** sync
# reve-2-1 API Usage Guide
## Overview
**reve-2-1** is Reve AI's unified v2 image model. A single endpoint covers text-to-image generation, single-image editing, and multi-image remixing — which workflow runs is determined by how many reference images are included in the request. Output resolution is significantly higher than Reve's prior v1 models, and every response includes a structured layout describing the generated regions.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format — text-to-image (no reference images)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "reve-2-1",
"payload": {
"prompt": "A serene mountain landscape at sunset",
"aspect_ratio": "16:9"
}
}'
```
### Request Format — single-image edit
Pass one URL in `reference_image`. The prompt is treated as a plain edit instruction — no special syntax needed.
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "reve-2-1",
"payload": {
"prompt": "make the background bright blue",
"reference_image": "https://example.com/photo.jpg"
}
}'
```
### Request Format — multi-image remix
Pass 2-8 URLs in `reference_images`. Reference each one from the prompt by position, 0-based: `0`, `1`, etc.
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "reve-2-1",
"payload": {
"prompt": "combine the subject from 0 with the background from 1",
"reference_images": ["https://example.com/a.jpg", "https://example.com/b.jpg"]
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| --------------------------- | --------------------- | -------- | ------------------------------------------------------------------------------------------------------ | -------- |
| `model` | string | Yes | Model identifier | - |
| `payload.prompt` | string | Yes | Text description, or edit/remix instruction. Max 4000 characters | - |
| `payload.reference_image` | string (URL) | No | Single image to edit (max 1) | - |
| `payload.reference_images` | array of string (URL) | No | 1-8 ordered images to remix | - |
| `payload.aspect_ratio` | string (enum) | No | One of `4:1, 3:1, 21:9, 2:1, 17:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16, 1:2, 1:3, 1:4, auto` | `"auto"` |
| `payload.postprocessing` | array | No | Operations applied after generation — see Postprocessing below | none |
| `payload.test_time_scaling` | integer | No | Spend more compute for a better image (1-15). Higher values cost more credits | `1` |
| `payload.breadcrumb` | string | No | Request-tracking tag, searchable in Reve's own Usage page | - |
### Postprocessing
`payload.postprocessing` is a list of operations, applied in order:
* `{"process": "upscale", "upscale_factor": 2}` — factor 1-4
* `{"process": "remove_background"}` — makes the background transparent
* `{"process": "fit_image", "max_dim": 512}` — resize to fit (use `max_dim`, `max_width`, or `max_height`); no extra cost
* `{"process": "effect", "effect_name": "grain"}` — apply a named effect preset configured in the Reve app
All operations except `fit_image` add a small amount of extra credit cost.
### Response
```json theme={null}
{
"request_id": "cd5b59d5-1b3f-4fd5-9899-15ecea1f28ba",
"model": "reve-2-1",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/..."}],
"thumbnail_image_url": "https://storage.googleapis.com/...",
"credits_used": 150,
"credits_remaining": 264636,
"model_version": "reve-v2-create@260601"
}
}
```
## Pricing
Reve bills in **credits**, not tokens or time. Verified 2026-07-14 by measuring the live API directly: text-to-image, single-image edit, and multi-image remix all consume the same flat **150 credits** per call. `postprocessing` and `test_time_scaling` add credits on top of that baseline.
### Credit Pricing
| Operation | Credits |
| ---------------------------------------------- | -------------------------------------------- |
| Base generation (any of create / edit / remix) | 150 |
| `postprocessing: fit_image` | +0 |
| `postprocessing: upscale` | +1 |
| `postprocessing: remove_background` | +2 |
| `postprocessing: effect` | +3 |
| `test_time_scaling` | scales linearly (value 5 → 5x total credits) |
Conversion rate: \~1333.33 micro-USD per credit, so the 150-credit baseline is \*\*$0.20 per image**. This rate is derived from the pricing of Reve's earlier v1 models (consistent across all 5 existing v1 price entries) since Reve's own pricing page is a JS-rendered app that can't be fetched programmatically; independently cross-checked against a third-party pricing writeup ($10/7500 credits ≈ $1.33/1000 credits — the same rate) and against the measured 150-credit baseline (both sources agree the result is ~$0.20/image).
## Check Request Status
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
# seededit-3-0-i2i-250628
Source: https://docs.gmicloud.ai/model-quickstarts/image/seededit-3-0-i2i-250628
API usage guide for seededit-3-0-i2i-250628.
**Model ID**
```bash theme={null}
seededit-3-0-i2i-250628
```
**Calling method:** sync
# SeedEdit-3-0-i2i-250628 API Usage Guide
## Overview
**SeedEdit-3-0-i2i-250628** is an advanced image-to-image (I2I) editing model that enables high-quality transformations of input images using natural language prompts. It supports fine-grained control over style, lighting, and semantic structure while preserving the subject’s original composition. Designed for creative editing, stylization, and realistic retouching, SeedEdit offers a balance of precision and artistic flexibility.
### Key Features:
* **High-Fidelity Image Editing**: Maintains subject realism while applying expressive transformations
* **Prompt-Guided Control**: Edit lighting, composition, or mood through natural language
* **Reproducibility**: Generate consistent results using a random seed
* **Optional Watermarking**: Embed watermark for brand-safe outputs
* **Fast Inference**: Optimized for real-time generation on GMI Cloud’s GPU clusters
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seededit-3-0-i2i-250628",
"payload": {
"image": "https://example.com/source.jpg",
"prompt": "A cinematic portrait of a woman with dramatic lighting and soft shadows",
"guidance_scale": 7.5,
"seed": 123456,
"add_watermark": true,
"response_format": "url"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | ------- | -------- | ------------------------------------- | ------- | -------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"seededit-3-0-i2i-250628"` |
| `payload.image` | string | Yes | URL or Base64-encoded input image | - | Must be accessible via HTTPS or valid Base64 |
| `payload.prompt` | string | Yes | Text prompt describing desired edit | - | Required |
| `payload.guidance_scale` | float | No | Prompt adherence strength (CFG scale) | `7.5` | Range: 1–15 |
| `payload.seed` | integer | No | Random seed for reproducible results | Random | Positive integer |
| `payload.add_watermark` | boolean | No | Whether to add a GMI watermark | `true` | `true` / `false` |
| `payload.response_format` | string | No | Output format for generated image | `"url"` | Options: `url`, `base64`, `json` |
### Response
```json theme={null}
{
"request_id": "6c96fe63-d1ca-4dc1-90c5-c866bbbd9521",
"model": "seededit-3-0-i2i-250628",
"status": "queued",
"created_at": 1761763441,
"updated_at": 1761763441,
"queued_at": 1761763441
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "6c96fe63-d1ca-4dc1-90c5-c866bbbd9521",
"org_id": "cbbb8914-5ff2-4fa3-977c-214b90d9dd9d",
"model": "seededit-3-0-i2i-250628",
"status": "success",
"payload": {
"add_watermark": true,
"guidance_scale": 7.5,
"image": "https://example.com/source.jpg",
"prompt": "A cinematic portrait of a woman with dramatic lighting and soft shadows",
"response_format": "url",
"seed": 123456
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-video-assests-prod/user-assets/cbbb8914-5ff2-4fa3-977c-214b90d9dd9d/1bd73ebe-2ad9-40c9-89c8-dc64204e7106/gmi-videogen/generated/source_image_6c96fe63-d1ca-4dc1-90c5-c866bbbd95216eca5274-4901-48b4-a812-5e0882983f8f.jpg"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 4056,
"total_tokens": 4056
}
},
"created_at": 1761763441,
"updated_at": 1761763451,
"queued_at": 1761763441
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Image generation is in progress |
| `success` | Image generation completed successfully |
| `failed` | Image generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=seededit-3-0-i2i-250628
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=seededit-3-0-i2i-250628" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seededit-3-0-i2i-250628
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/seededit-3-0-i2i-250628" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"seededit-3-0-i2i-250628",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Per-image request
* **Price**: \$0.05 per image
* **Unit**: Image
Example cost calculation:
* 1 image = \$0.05
* 10 images = \$0.50
* 100 images = \$5.00
## Image Specifications
* **Resolution**: Up to 1024×1024 pixels
* **Format**: PNG or JPEG
* **Output**: Downloadable via signed URL
* **Watermark**: Optional (default: false)
## Tips for Better Results
1. Use descriptive prompts: e.g., “cinematic portrait with warm lighting and shallow depth of field”
2. Lower guidance\_scale (5–7) for subtle, realistic edits
3. Higher guidance\_scale (8–10) for strong artistic transformations
4. Set seed to reproduce identical results
5. Disable watermark (add\_watermark=false) for raw creative assets
6. Ensure image URLs are accessible via HTTPS
## Parameter Examples
### Cinematic Portrait
```json theme={null}
{
"image": "https://example.com/portrait.jpg",
"prompt": "A cinematic portrait with soft light and shallow depth of field",
"guidance_scale": 7.5,
"seed": 12345,
"add_watermark": false
}
```
### Artistic Style Transfer
```json theme={null}
{
"image": "https://example.com/sketch.jpg",
"prompt": "Transform this sketch into a realistic oil painting with vibrant colors",
"guidance_scale": 9.0,
"add_watermark": true
}
```
### Lighting Enhancement
```json theme={null}
{
"image": "https://example.com/interior.jpg",
"prompt": "Enhance indoor lighting for a cinematic atmosphere with warm tones",
"guidance_scale": 6.5,
"seed": 67890,
"add_watermark": false
}
```
# seedream-3-0-t2i-250415
Source: https://docs.gmicloud.ai/model-quickstarts/image/seedream-3-0-t2i-250415
API usage guide for seedream-3-0-t2i-250415.
**Model ID**
```bash theme={null}
seedream-3-0-t2i-250415
```
**Calling method:** sync
# Seedream-3-0-t2i-250415 API Usage Guide
## Overview
**Seedream 3.0** is a foundational image generation model that supports native high-resolution output. With comprehensive capabilities comparable to GPT-4o, it ranks among the world's top-tier models. It offers faster response times, more accurate fine text generation with improved typographic effects, stronger instruction adherence, as well as enhanced fidelity and detail performance.
### Key Features:
* **High Resolution Output**: Generates images up to 1024×1024 resolution
* **Prompt-based Control**: Translates natural text into precise, detailed visuals
* **Guidance Scale Adjustment**: Fine-tune prompt adherence from creative to literal
* **Seed Reproducibility**: Generate consistent images using the same seed value
* **Optional Watermark**: Embed watermark for brand or platform compliance
* **Fast and Cost-Effective**: Optimized for real-time image generation on GPU clusters
***
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-3-0-t2i-250415",
"payload": {
"prompt": "A futuristic city skyline at sunset, ultra-realistic lighting, detailed reflections",
"size": "1024x1024",
"seed": 42,
"guidance_scale": 2.5,
"add_watermark": false,
"response_format": "url"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | ------- | -------- | -------------------------------------------- | ------------- | ------------------------------------------------ |
| `model` | string | Yes | Model identifier | - | Must be `"seedream-3-0-t2i-250415"` |
| `payload.prompt` | string | Yes | Text prompt describing the image to generate | - | Required |
| `payload.size` | string | No | Output resolution | `"1024x1024"` | Options: `"512x512"`, `"768x768"`, `"1024x1024"` |
| `payload.seed` | integer | No | Random seed for reproducibility | `-1` | Any integer; `-1` = random |
| `payload.guidance_scale` | float | No | Controls how closely image follows prompt | `2.5` | Recommended: 1.0–7.5 |
| `payload.add_watermark` | boolean | No | Whether to include a watermark | `false` | `true` / `false` |
| `payload.response_format` | string | No | Format of the returned result | `"url"` | `url`, `base64`, `json` |
| | | | | | |
### Response
```json theme={null}
{
"request_id": "afc23b91-1f45-43a7-9175-4d6d39e1ab13",
"model": "seedream-3-0-t2i-250415",
"status": "queued",
"created_at": 1761763441,
"updated_at": 1761763441,
"queued_at": 1761763441
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "afc23b91-1f45-43a7-9175-4d6d39e1ab13",
"model": "seedream-3-0-t2i-250415",
"status": "success",
"payload": {
"prompt": "A futuristic city skyline at sunset, ultra-realistic lighting, detailed reflections",
"size": "1024x1024",
"seed": 42,
"guidance_scale": 2.5,
"add_watermark": false,
"response_format": "url"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-images/user-assets/.../seedream3_generated_image_afc23b91.jpg"
}
],
"usage": {
"generated_images": 1
}
},
"created_at": 1761763441,
"updated_at": 1761763451,
"queued_at": 1761763441
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Image generation is in progress |
| `success` | Image generation completed successfully |
| `failed` | Image generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=seedream-3-0-t2i-250415
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=seedream-3-0-t2i-250415" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedream-3-0-t2i-250415
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/seedream-3-0-t2i-250415" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"seedream-3-0-t2i-250415",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Per-image request
* **Price**: \$0.05 per image
* **Unit**: Image
Example cost calculation:
* 1 image = \$0.05
* 10 images = \$0.50
* 100 images = \$5.00
## Image Specifications
* **Resolution**: Up to 1024×1024 pixels
* **Format**: PNG or JPEG
* **Output**: Downloadable via signed URL
* **Watermark**: Optional (default: false)
* **Default CFG (Guidance Scale)**: 2.5
## Tips for Better Results
1. Use clear, descriptive prompts — e.g., “A fantasy landscape with floating islands, golden lighting, detailed textures.”
2. Adjust guidance scale —
* 1.5–3.0 for creative freedom
* 3.5–6.0 for stronger prompt adherence
3. Keep seeds consistent for reproducible output.
4. Disable watermark for raw production assets.
5. Optimize size — 1024×1024 for best detail, 512×512 for fast previews.
## Parameter Examples
### Realistic Photography
```json theme={null}
{
"prompt": "A portrait of an astronaut walking on a beach at sunrise, realistic lighting and reflections",
"size": "1024x1024",
"guidance_scale": 3.0,
"seed": 123
}
```
### Stylized Illustration
```json theme={null}
{
"prompt": "A whimsical watercolor painting of a cat wearing sunglasses and sipping coffee",
"size": "1024x1024",
"guidance_scale": 4.5,
"add_watermark": true
}
```
### Cinematic Concept Art
```json theme={null}
{
"prompt": "A cyberpunk alley illuminated by neon lights in the rain, cinematic composition",
"size": "1024x1024",
"guidance_scale": 2.8,
"seed": 777,
"add_watermark": false
}
```
# seedream-4-0-250828
Source: https://docs.gmicloud.ai/model-quickstarts/image/seedream-4-0-250828
API usage guide for seedream-4-0-250828.
**Model ID**
```bash theme={null}
seedream-4-0-250828
```
**Calling method:** sync
# Seedream-4-0-250828 API Usage Guide
## Overview
**Seedream-4-0-250828** is a **multimodal image generation model** supporting text, single-image, and multi-image inputs. It delivers high-fidelity, stylistically consistent outputs with flexible composition control. With features like **multi-image blending**, **image editing**, and **subject-consistent sequential generation**, Seedream 4.0 gives creators unprecedented freedom and control in digital image creation.
**Key Features:**
**Text-to-Image & Image-to-Image Support:** Accepts text-only, single image, or multiple images as input.
**Multi-Image Blending:** Combine several reference images to synthesize coherent outputs.
**Image Editing:** Modify or restyle existing images using textual guidance.
Sequential Batch Generation: Generate consistent image sequences maintaining the same subject or composition.
**High Resolution:** Outputs up to 1024×1024 pixels.
**Watermark Option:** Easily toggle watermark for brand or compliance purposes.
Fast & Reliable Inference: Optimized for high-throughput GPU acceleration in GMI Cloud’s infrastructure.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Image Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4-0-250828",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"size": "1024x1024",
"max_images": 2,
"sequential_image_generation": "auto",
"seed": -1,
"watermark": true,
"response_format": "url"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ------------------------------------------------------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the desired image (max 2000 characters). | - | Required |
| `image` | string | No | Reference image URL or an array of URLs (jpeg/png). | - | Up to 10 images are supported. |
| `size` | string | No | Output size preset (supports 1K/2K/4K or custom WxH). | "2048x2048" | Options: "1K", "2K", "4K", "1024x1024", "1440x2560", "1664x2496", "1728x2304", "2048x2048", "2304x1728", "2496x1664", "2560x1440", "3024x1296", "4096x4096" |
| `max_images` | integer | No | Total (reference+generated) ≤ 15. | 1 | Optional |
| `sequential_image_generation` | string | No | Generate a sequence of related images automatically. | disabled | Options: "disabled", "auto" |
| `seed` | integer | No | Random seed. Use -1 for random. | -1 | -1 to 2147483647 |
| `watermark` | boolean | No | Whether to include watermark in the output. | false | Optional |
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "seedream-4-0-250828",
"status": "queued",
"created_at": 1761763441,
"updated_at": 1761763441,
"queued_at": 1761763441
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/7eaa77fc-bc67-4021-9f1b-96b3fd832314" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7eaa77fc-bc67-4021-9f1b-96b3fd832314",
"model": "seedream-4-0-250828",
"status": "success",
"payload": {
"prompt": "A hyperrealistic portrait of a cyberpunk woman under neon lights",
"image": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"size": "1024x1024",
"max_images": 2,
"sequential_image_generation": "auto",
"seed": -1,
"watermark": true,
"response_format": "url"
},
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../seedream4_output_0.jpg"
},
{
"id": "1",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../seedream4_output_1.jpg"
}
]
},
"created_at": 1761763441,
"updated_at": 1761763451,
"queued_at": 1761763441
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=seedream-4-0-250828
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=seedream-4-0-250828" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedream-4-0-250828
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/seedream-4-0-250828" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"seedream-4-0-250828",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Per-image request
* **Price**: \$0.05 per image
* **Unit**: Image
## Example Use Cases
### Text-to-Image (Prompt Only)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4-0-250828",
"payload": {
"prompt": "A fantasy castle floating above clouds, golden sunlight, cinematic tone",
"size": "1024x1024",
"max_images": 1,
"watermark": false
}
}'
```
### Multi-Image Blending
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4-0-250828",
"payload": {
"prompt": "Merge visual styles of both references into one cohesive fantasy artwork",
"image": [
"https://example.com/portrait1.jpg",
"https://example.com/portrait2.jpg"
],
"max_images": 1,
"watermark": true
}
}'
```
### Sequential Consistent Image Generation
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4-0-250828",
"payload": {
"prompt": "A cat exploring a futuristic city street at night, cinematic perspective",
"size": "1024x1024",
"max_images": 3,
"sequential_image_generation": "auto",
"watermark": false
}
}'
```
## Tips for Better Results
1. **Prompt Clarity**: Use detailed, specific prompts for precise results.
2. **Reference Image Control**: Include 1–3 clear, high-quality images for better blending.
3. **Sequential Mode**: Enables consistent subjects across a batch of generated images.
4. **Watermark Toggle**: Disable watermark for professional or internal use.
5. **Seed Usage**: Set a fixed seed for reproducible output.
# seedream-5.0-lite
Source: https://docs.gmicloud.ai/model-quickstarts/image/seedream-5-0-lite
API usage guide for seedream-5.0-lite.
**Model ID**
```bash theme={null}
seedream-5.0-lite
```
**Calling method:** sync
# Seedream-5.0-lite API Documentation
Seedream-5.0-lite is a next-generation multimodal image generation model by Byteplus. It supports text, single-image, and multi-image inputs, offering high-fidelity outputs with consistent subject generation.
## 1. API Endpoint & Authentication
**Base URL:** `https://console.gmicloud.ai`
**Endpoint:** `POST /api/v1/ie/requestqueue/apikey/requests`
**Header:**
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
## 2. Model Specifications
* **Pricing:** \$0.035 per output image
* **Max Input Images:** 14 reference images
* **Max Output Images:** 15 (Total of reference + generated)
* **Output Formats:** jpeg (default), png (Exclusive to 5.0-lite)
***
## 3. Image Dimension Methods (Mutually Exclusive)
### Method 1: Intelligence Presets
Specify a preset and describe the desired aspect ratio/shape in the text prompt.
* **Options:** `2K`, `3K`
### Method 2: Custom Pixel Dimensions
Specify exact width and height (e.g., "3750x1250"). Constraints:
* **Total Pixels (W x H):** Must be between 3,686,400 and 10,404,496.
* **Aspect Ratio (W / H):** Must be between 0.0625 (1:16) and 16.0 (16:1).
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :---------------------------- | :------ | :------- | :--------------------------------------------------- |
| `prompt` | string | Yes | Text description (\< 600 words recommended). |
| `image` | array | No | Array of reference image URLs (up to 14). |
| `size` | string | No | Preset (2K, 3K) or custom (WxH). Default: 2048x2048. |
| `output_format` | string | No | `jpeg` or `png`. |
| `max_images` | integer | No | Total images allowed (up to 15). |
| `sequential_image_generation` | string | No | `auto` (for consistency) or `disabled`. |
| `watermark` | boolean | No | Toggle "AI Generated" watermark. Default: false. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "[https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests](https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests)" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-lite",
"payload": {
"prompt": "A cinematic widescreen shot of a futuristic neon city",
"size": "2560x1440",
"output_format": "png",
"max_images": 1,
"watermark": false
}
}'
```
## 6. Checking Request Status
**Endpoint:** `GET /api/v1/ie/requestqueue/apikey/requests/{request_id}`
* **queued**: Waiting in line.
* **processing**: Generating image.
* **success**: Completed. Find URLs in `outcome.media_urls`.
* **failed**: Request failed.
# seedream-5.0-pro
Source: https://docs.gmicloud.ai/model-quickstarts/image/seedream-5-0-pro
API usage guide for seedream-5.0-pro.
**Model ID**
```bash theme={null}
seedream-5.0-pro
```
**Calling method:** sync
# Seedream 5.0 Pro API Documentation
Seedream 5.0 Pro is Byteplus's next-generation image generation model. It supports text-to-image, single-image, and multi-image (up to 14 reference images) inputs, high-resolution output up to 3K, and optional sequential generation of related images.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: \$0.085 per image
* Input: Text prompt (required), plus up to 14 optional reference images
* Resolution: 2K / 3K presets, or explicit WxH (total pixels 3.6M-10.4M; aspect ratio 1/16 to 16)
* Output Formats: JPEG (default) or PNG
* Features: Multi-image reference, sequential image generation, optional AI-generated watermark
## 3. How It Works
### Text-to-Image & Image-to-Image
Provide a text prompt (recommended under 600 words) to generate an image from scratch. Optionally supply one or more reference images to guide the output. Up to 14 reference images are supported, passed as a single URL or an array of URLs.
### Size Control
Output size can be set two ways: a preset tier ('2K' or '3K'), or an explicit 'WxH' dimension. Explicit dimensions must total between 3.6M and 10.4M pixels with an aspect ratio between 1/16 and 16. The default is 2048x2048.
### Sequential Image Generation
When set to 'auto', the model can generate a sequence of related images in one request rather than a single image. The max\_images value caps the total, where reference images plus generated images must not exceed 15.
### Output Format & Watermark
Choose JPEG or PNG output. When watermark is enabled, an 'AI Generated' label is added to the bottom-right corner of each image.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :---------------------------- | :------ | :------- | :------------------------------------------------------------------- |
| prompt | string | Yes | Text prompt for image generation (recommended under 600 words). |
| image | image | No | Reference image URL or array of URLs (JPEG/PNG). Up to 14 supported. |
| size | enum | No | '2K'/'3K' preset, or 'WxH'. Default: "2048x2048". |
| sequential\_image\_generation | enum | No | 'disabled' or 'auto'. Default: "disabled". |
| max\_images | integer | No | Total (reference + generated) less than or equal to 15. Default: 1. |
| output\_format | enum | No | 'jpeg' or 'png'. Default: "jpeg". |
| watermark | boolean | No | Add an 'AI Generated' watermark. Default: false. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-pro",
"payload": {
"prompt": "A cinematic shot of a dragon taking flight from a cliffside.",
"size": "2K",
"output_format": "jpeg",
"watermark": false
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Image generation is currently in progress.
* success: Generation completed. URLs available in outcome.media\_urls.
* failed: Generation failed. Check logs for details.
# wan2.7-image
Source: https://docs.gmicloud.ai/model-quickstarts/image/wan2-7-image
API usage guide for wan2.7-image.
**Model ID**
```bash theme={null}
wan2.7-image
```
**Calling method:** sync
# Wan 2.7 Image API Documentation
Wan 2.7 is an image generation model supporting both text-to-image and image-to-image capabilities.
## 1. API Endpoint & Authentication
**Base URL:** `https://console.gmicloud.ai`
**Endpoint:** `POST /api/v1/ie/requestqueue/apikey/requests`
**Header:**
```text theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
## 2. Model Specifications
* **Pricing:** \$0.03 per image
* **Output Format:** Image (JPEG, PNG, WEBP, etc.)
* **Resolution:** 1K or 2K
## 3. Generation Modes
### Text-to-Image
Provide a text prompt describing the desired image.
### Image-to-Image
Provide reference images (up to 9) along with optional text prompts. Aspect ratio matches the input image.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :-------- | :------ | :------- | :------------------------------------------------ |
| `text` | string | Yes | Text prompt (max 5,000 characters). |
| `image` | image | No | Reference image URL or Base64. |
| `size` | string | No | Output resolution (1K or 2K). Default is 2K. |
| `n` | integer | No | Number of images to generate (1-4). Default is 1. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-image",
"payload": {
"text": "A futuristic cityscape at sunset",
"size": "2K",
"n": 1
}
}'
```
## 6. Checking Request Status
**Endpoint:** `GET /api/v1/ie/requestqueue/apikey/requests/{request_id}`
* **queued**: Waiting in line.
* **processing**: Generating image.
* **success**: Completed. Find URL in `outcome.media_urls`.
* **failed**: Request failed.
# wan2.7-image-pro
Source: https://docs.gmicloud.ai/model-quickstarts/image/wan2-7-image-pro
API usage guide for wan2.7-image-pro.
**Model ID**
```bash theme={null}
wan2.7-image-pro
```
**Calling method:** sync
# Wan 2.7 Image Pro API Documentation
Wan 2.7 Pro is an advanced image generation model supporting text-to-image and image-to-image capabilities up to 4K resolution.
## 1. API Endpoint & Authentication
**Base URL:** `https://console.gmicloud.ai`
**Endpoint:** `POST /api/v1/ie/requestqueue/apikey/requests`
**Header:**
```text theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
## 2. Model Specifications
* **Pricing:** \$0.075 per image
* **Output Format:** Image (JPEG, PNG, WEBP, etc.)
* **Resolution:** 1K, 2K, or 4K
## 3. Generation Modes
### Text-to-Image
Provide a text prompt describing the desired image.
### Image-to-Image
Provide reference images (up to 9) along with optional text prompts. Aspect ratio matches the input image.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :-------- | :------ | :------- | :------------------------------------------------ |
| `text` | string | Yes | Text prompt (max 5,000 characters). |
| `image` | image | No | Reference image URL or Base64. |
| `size` | string | No | Output resolution (1K, 2K, or 4K). Default is 2K. |
| `n` | integer | No | Number of images to generate (1-4). Default is 1. |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-image-pro",
"payload": {
"text": "A futuristic cityscape at sunset",
"size": "4K",
"n": 1
}
}'
```
## 6. Checking Request Status
**Endpoint:** `GET /api/v1/ie/requestqueue/apikey/requests/{request_id}`
* **queued**: Waiting in line.
* **processing**: Generating image.
* **success**: Completed. Find URL in `outcome.media_urls`.
* **failed**: Request failed.
# Z-Image
Source: https://docs.gmicloud.ai/model-quickstarts/image/z-image
API usage guide for Z-Image.
**Model ID**
```bash theme={null}
Z-Image
```
**Calling method:** sync
A fast 6B parameter text-to-image model with bilingual text rendering support.
# Z-Image-Turbo
Source: https://docs.gmicloud.ai/model-quickstarts/image/z-image-turbo
API usage guide for Z-Image-Turbo.
**Model ID**
```bash theme={null}
Z-Image-Turbo
```
**Calling method:** sync
A fast Image generation model with Fun Controlnet Union 2.1
# Z-Image-Turbo-Fun-Controlnet-Union-2.1
Source: https://docs.gmicloud.ai/model-quickstarts/image/z-image-turbo-fun-controlnet-union-2-1
API usage guide for Z-Image-Turbo-Fun-Controlnet-Union-2.1.
**Model ID**
```bash theme={null}
Z-Image-Turbo-Fun-Controlnet-Union-2.1
```
**Calling method:** sync
A fast Image generation model with Fun Controlnet Union 2.1
# Model Library
Source: https://docs.gmicloud.ai/model-quickstarts/model-library
Models are grouped by **what they produce** (text, audio, video, image, or 3D assets) so you can jump straight to the modality you care about. Each category page explains typical **technical topics** and lists **every model** in that group with links to detailed pages.
## Browse by modality
| Modality | What it covers | Start here |
| :----------- | :---------------------------------------------- | :------------------------------------------------ |
| **Language** | Chat, code, reasoning, OCR / vision-language | [LLM models](/model-quickstarts/text/overview) |
| **Audio** | TTS, voice cloning, music | [Audio models](/model-quickstarts/audio/overview) |
| **Video** | Text-to-video, image-to-video, editing, avatars | [Video models](/model-quickstarts/video/overview) |
| **Image** | Generation, editing, batch inference | [Image models](/model-quickstarts/image/overview) |
## Model API (serving, pricing, limits)
Individual model pages describe **that model's** inputs and examples. For **how to call the platform** end-to-end (marketplace, serverless vs dedicated deployments, LLM and video API references, SDKs, rate limits, billing, tasks, and artifacts), use the [**API Reference**](/api-reference/introduction) in the sidebar.
## Choosing a model
* **Match modality**, Pick LLM vs audio vs video vs image vs 3D first; hybrid needs may use multiple APIs.
* **Read constraints on the model page**, Context length, resolution, duration, and rate limits vary.
* **Start with defaults**, Official examples on each page reflect supported parameters today.
# Claude Haiku 4.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-haiku-4-5
Claude Haiku 4.5 is Anthropic's fastest and most cost-effective model, optimized for speed and efficiency.
**Model ID**
```bash theme={null}
anthropic/claude-haiku-4.5
```
## Table of Contents
* [API Usage](#api-usage)
* [API Examples](#api-examples)
* [Create chat completion](#create-chat-completion)
* [Default](#default)
* [Streaming](#streaming)
* [Image Input](#image-input)
* [Functions](#functions)
* [Python](#python)
* [Create a message](#create-a-message)
* [Default (Messages)](#default-messages)
* [Streaming (Messages)](#streaming-messages)
* [Extended Thinking](#extended-thinking)
* [Functions (Messages)](#functions-messages)
* [Image Input (Messages)](#image-input-messages)
* [PDF Input](#pdf-input)
* [Anthropic SDK (Python)](#anthropic-sdk-python)
* [Claude Code](#claude-code)
Claude Haiku 4.5 is Anthropic's fastest and most cost-effective model, optimized for speed and efficiency. It delivers excellent performance for everyday tasks including quick responses, simple analysis, classification, and high-throughput applications.
Designed for maximum speed and cost efficiency, Claude Haiku 4.5 excels at rapid responses, straightforward queries, and tasks where low latency matters. It offers an ideal balance of capability and efficiency for chat interfaces, customer support, content moderation, and high-volume processing where speed is critical.
## API Usage
You can interact with the Anthropic Claude Haiku 4.5 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Haiku 4.5.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-haiku-4.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default (Messages)
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming (Messages)
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions (Messages)
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input (Messages)
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY", # Or set ANTHROPIC_API_KEY environment variable
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-haiku-4.5",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-haiku-4.5",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-haiku-4.5"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Opus 4.1
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-opus-4-1
Claude Opus 4.1 is an incremental upgrade over Claude Opus 4, released August 2025.
**Model ID**
```bash theme={null}
anthropic/claude-opus-4.1
```
Designed as a drop-in replacement for Opus 4, Claude Opus 4.1 delivers notable gains in multi-file code refactoring, debugging, and agentic search workflows. It achieves a 74.5% score on SWE-bench Verified (up from 72.5%), with improved detail tracking and consistency across long-context tasks.
## API Usage
You can interact with the Anthropic Claude Opus 4.1 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Opus 4.1.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-opus-4.1",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.1",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-opus-4.1",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-opus-4.1",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-opus-4.1"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Opus 4.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-opus-4-5
Claude Opus 4.5 is Anthropic's most powerful and capable flagship model, representing the pinnacle of AI reasoning and intelligence.
**Model ID**
```bash theme={null}
anthropic/claude-opus-4.5
```
Designed for maximum capability without compromise, Claude Opus 4.5 excels at deep reasoning, nuanced analysis, and tasks requiring extensive world knowledge. It offers unparalleled depth for research, strategic planning, and complex problem-solving where quality matters most.
## API Usage
You can interact with the Anthropic Claude Opus 4.5 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Opus 4.5.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-opus-4.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-opus-4.5",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-opus-4.5",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-opus-4.5"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Opus 4.6
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-opus-4-6
Claude Opus 4.6 is Anthropic's most powerful and capable flagship model, representing the pinnacle of AI reasoning and intelligence.
**Model ID**
```bash theme={null}
anthropic/claude-opus-4.6
```
Designed for maximum capability without compromise, Claude Opus 4.6 excels at deep reasoning, nuanced analysis, and tasks requiring extensive world knowledge. It offers unparalleled depth for research, strategic planning, and complex problem-solving where quality matters most.
## API Usage
You can interact with the Anthropic Claude Opus 4.6 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Opus 4.6.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-opus-4.6",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-opus-4.6",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-opus-4.6",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-opus-4.6"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Opus 4.7
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-opus-4-7
Claude Opus 4.7 is Anthropic's flagship high-intelligence model, built for users who need top-tier reasoning, analysis, and coding performance.
**Model ID**
```bash theme={null}
anthropic/claude-opus-4.7
```
Designed for demanding real-world workflows, Claude Opus 4.7 excels at nuanced understanding, long-context reasoning, and high-quality generation across technical and knowledge-intensive tasks. It is a strong choice for production use cases that prioritize capability and reliability over speed-first tradeoffs.
## API Usage
You can interact with the Anthropic Claude Opus 4.7 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Opus 4.7.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-opus-4.7",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "anthropic-version: bedrock-2023-05-31" \
-H "x-api-key: $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "anthropic-version: bedrock-2023-05-31" \
-H "x-api-key: $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "anthropic-version: bedrock-2023-05-31" \
-H "x-api-key: $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "anthropic-version: bedrock-2023-05-31" \
-H "x-api-key: $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "anthropic-version: bedrock-2023-05-31" \
-H "x-api-key: $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-opus-4.7",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-opus-4.7",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-opus-4.7",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-opus-4.7"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.7"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Sonnet 4
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-sonnet-4
Claude Sonnet 4 is a high-performance model in Anthropic's Claude 4 family, released May 2025.
**Model ID**
```bash theme={null}
anthropic/claude-sonnet-4
```
Designed for efficiency and broad accessibility, Claude Sonnet 4 offers many advanced features of the Opus line while being available to both free and paid users. It excels at instruction following, clear outputs, and everyday AI tasks with improved memory and tool-use capabilities.
## API Usage
You can interact with the Anthropic Claude Sonnet 4 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Sonnet 4.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-sonnet-4",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-sonnet-4",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-sonnet-4",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-sonnet-4"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Sonnet 4.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-sonnet-4-5
Claude Sonnet 4.5 is Anthropic's most intelligent model to date, delivering exceptional performance across reasoning, coding, and complex analysis tasks.
**Model ID**
```bash theme={null}
anthropic/claude-sonnet-4.5
```
Built with advanced reasoning and instruction-following capabilities, Claude Sonnet 4.5 excels at nuanced writing, multi-step problem solving, and tool use. It offers an optimal balance of intelligence and speed for demanding enterprise workloads.
## API Usage
You can interact with the Anthropic Claude Sonnet 4.5 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Sonnet 4.5.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-sonnet-4.5",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-sonnet-4.5",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# Claude Sonnet 4.6
Source: https://docs.gmicloud.ai/model-quickstarts/text/anthropic-claude-sonnet-4-6
Claude Sonnet 4.6 is Anthropic's most capable Sonnet model, delivering the best combination of speed and intelligence in the Claude family.
**Model ID**
```bash theme={null}
anthropic/claude-sonnet-4.6
```
Designed for high-performance applications that require both capability and efficiency, Claude Sonnet 4.6 features much-improved coding skills with better consistency and instruction following. It achieves performance on real-world, economically valuable office tasks that previously required Opus-class models, making it ideal for production workloads where both quality and speed matter.
## API Usage
You can interact with the Anthropic Claude Sonnet 4.6 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Anthropic Claude Sonnet 4.6.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "anthropic/claude-sonnet-4.6",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a message
Anthropic's native Messages API for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for computer use, text editing, and more. Allow the model access to external systems and data using function calling. Enable extended thinking for complex reasoning tasks.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Extended Thinking
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the optimal strategy for solving a complex multi-step math problem?"}
]
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather like in Boston today?"}
],
"tools": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
]
}'
```
#### PDF Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "anthropic/claude-sonnet-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this document?"
},
{
"type": "document",
"source": {
"type": "url",
"url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
}
]
}
]
}'
```
#### Anthropic SDK (Python)
Install the official Anthropic SDK:
```bash theme={null}
pip install anthropic
```
##### Basic Example
```python theme={null}
from anthropic import Anthropic
# Initialize client with custom base URL
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
# Basic message
message = client.messages.create(
model="anthropic/claude-sonnet-4.6",
max_tokens=100,
messages=[
{"role": "user", "content": "What is 2+2? Reply with just the number."}
]
)
print(message.content[0].text)
print(f"Usage: input={message.usage.input_tokens}, output={message.usage.output_tokens}")
```
##### Streaming Example
```python theme={null}
from anthropic import Anthropic
client = Anthropic(
api_key="$GMI_API_KEY",
base_url="https://api.gmi-serving.com"
)
with client.messages.stream(
model="anthropic/claude-sonnet-4.6",
max_tokens=100,
messages=[
{"role": "user", "content": "Count from 1 to 5."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
```
## Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. To use Claude Code with this API endpoint, set the following environment variables before starting Claude Code:
```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.gmi-serving.com
export ANTHROPIC_AUTH_TOKEN=$GMI_API_KEY
export API_TIMEOUT_MS=600000
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export ANTHROPIC_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_SMALL_FAST_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.6"
```
After setting these environment variables, you can launch Claude Code and it will automatically use the configured API endpoint.
# ByteDance Seed 2.0 Mini
Source: https://docs.gmicloud.ai/model-quickstarts/text/bytedance-seed-2-0-mini
Seed 2.0 Mini is ByteDance's efficiency-optimized model in the Seed 2.0 series, designed for high-concurrency and batch generation scenarios.
**Model ID**
```bash theme={null}
bytedance/seed-2.0-mini
```
## API Usage
You can interact with the ByteDance Seed-2.0-Mini model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of ByteDance Seed-2.0-Mini.
### Create a model response
ByteDance's interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for function calling and more.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "bytedance/seed-2.0-mini",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "bytedance/seed-2.0-mini",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "bytedance/seed-2.0-mini",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "bytedance/seed-2.0-mini",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "bytedance/seed-2.0-mini",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "bytedance/seed-2.0-mini",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
# DeepSeek Prover v2 671B
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-prover-v2-671b
DeepSeek Prover V2 671B is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-Prover-V2-671B
```
## API Usage
You can interact with the DeepSeek Prover V2 671B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek Prover V2 671B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-Prover-V2-671B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-Prover-V2-671B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek R1 (0528)
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-r1-0528
DeepSeek-V3.2 is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-R1-0528
```
## API Usage
You can interact with the DeepSeek R1 0528 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-V3.2.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek R1 Distill Llama 70B
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-r1-distill-llama-70b
DeepSeek-R1-Distill-Llama-70B is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-R1-Distill-Llama-70B
```
## API Usage
You can interact with the DeepSeek-R1-Distill-Llama-70B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-R1-Distill-Llama-70B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek R1 Distill Qwen 14B
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-r1-distill-qwen-14b
DeepSeek-R1-Distill-Qwen-14B is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
```
## API Usage
You can interact with the DeepSeek-R1-Distill-Qwen-14B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-R1-Distill-Qwen-14B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek R1 Distill Qwen 7B
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-r1-distill-qwen-7b
DeepSeek-R1-Distill-Qwen-7B is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
```
## API Usage
You can interact with the DeepSeek-R1-Distill-Qwen-7B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-R1-Distill-Qwen-7B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek V3 (0324)
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-v3-0324
DeepSeek-V3-0324 is a powerful large language model maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-V3-0324
```
## API Usage
You can interact with the DeepSeek-V3-0324 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-V3-0324.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V3-0324",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "deepseek-ai/DeepSeek-V3-0324",
"tools": [
{
"type": "function",
"function": {
"name": "query_weather",
"description": "Get weather of an city, the user should supply a city first",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city, e.g. Beijing"
}
},
"required": [
"city"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "Hows the weather like in Qingdao today"
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V3-0324",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek V3.1 Terminus
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-v3-1-terminus
**DeepSeek-V3.1-Terminus** represents the culmination of the V3.1 series, a highly optimized large language model engineered for **maximum inference efficiency**, **stability**, and **precision**.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-V3.1-Terminus
```
## API Usage
You can access **DeepSeek-V3.1-Terminus** via the standard Chat Completions API endpoint.\
It supports text generation, reasoning tasks, and structured tool/function calling.
## API Examples
### Basic Chat Completion
Generate a response using the chat endpoint of DeepSeek-V3.1-Terminus.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V3.1-Terminus",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
##### Function Calling
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "deepseek-ai/DeepSeek-V3.1-Terminus",
"tools": [
{
"type": "function",
"function": {
"name": "query_weather",
"description": "Get the weather of a city. The user must provide a city name.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city name, e.g. Beijing"
}
},
"required": ["city"]
}
}
}
],
"messages": [
{
"role": "user",
"content": "How's the weather in Qingdao today?"
}
]
}'
```
#### Python SDK Usage
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V3.1-Terminus",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek V3.2
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-v3-2
DeepSeek V3.2 is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-V3.2
```
## API Usage
You can interact with the DeepSeek V3.2 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek V3.2.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek V4 Flash
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-v4-flash
DeepSeek V4 Flash is an efficiency-optimized Mixture-of-Experts model from DeepSeek with 284B total parameters and 13B activated parameters, supporting a 1M-token context window.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-V4-Flash
```
The model includes hybrid attention for efficient long-context processing and supports configurable reasoning modes. It is well suited for applications such as coding assistants, chat systems, and agent workflows where responsiveness and cost efficiency are important.
## API Usage
You can interact with the deepseek-ai/DeepSeek-V4-Flash model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-V4-Flash.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V4-Flash",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "deepseek-ai/DeepSeek-V4-Flash",
"tools": [
{
"type": "function",
"function": {
"name": "query_weather",
"description": "Get weather of an city, the user should supply a city first",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city, e.g. Beijing"
}
},
"required": [
"city"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "Hows the weather like in Qingdao today"
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V4-Flash",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# DeepSeek V4 Pro
Source: https://docs.gmicloud.ai/model-quickstarts/text/deepseek-ai-deepseek-v4-pro
DeepSeek-V4-Pro is a powerful large language model maintaining strong performance.
**Model ID**
```bash theme={null}
deepseek-ai/DeepSeek-V4-Pro
```
DeepSeek-V4 series incorporate several key upgrades in architecture and optimization:
Hybrid Attention Architecture: We design a hybrid attention mechanism combining Compressed Sparse Attention (CSA) and Heavily Compressed Attention (HCA) to dramatically improve long-context efficiency. In the 1M-token context setting, DeepSeek-V4-Pro requires only 27% of single-token inference FLOPs and 10% of KV cache compared with DeepSeek-V3.2.
Manifold-Constrained Hyper-Connections (mHC): We incorporate mHC to strengthen conventional residual connections, enhancing stability of signal propagation across layers while preserving model expressivity.
Muon Optimizer: We employ the Muon optimizer for faster convergence and greater training stability.
## API Usage
You can interact with the DeepSeek-V4-Pro model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-V4-Pro.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V4-Pro",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "deepseek-ai/DeepSeek-V4-Pro",
"tools": [
{
"type": "function",
"function": {
"name": "query_weather",
"description": "Get weather of an city, the user should supply a city first",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city, e.g. Beijing"
}
},
"required": [
"city"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "Hows the weather like in Qingdao today"
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V4-Pro",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Gemini 3.1 Flash Lite Preview
Source: https://docs.gmicloud.ai/model-quickstarts/text/google-gemini-3-1-flash-lite-preview
Google Gemini 3.1 Flash-Lite Preview is a lightweight, cost-efficient model in the Gemini 3 series from Google, optimized for high-throughput and low-latency tasks.
**Model ID**
```bash theme={null}
google/gemini-3.1-flash-lite-preview
```
## API Usage
You can interact with the Gemini 3.1 Flash-Lite Preview model through our OpenAI-compatible APIs and Gemini native APIs. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Gemini 3.1 Flash-Lite Preview.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3.1-flash-lite-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
#### example for function call
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 200,
"model": "google/gemini-3.1-flash-lite-preview",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather in a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
]
}'
```
#### example for vision (image input)
```text theme={null}
### example for vision (image input)
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3.1-flash-lite-preview",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What animal is in this image?"},
{"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/220px-Cat_November_2010-1a.jpg"}}
]
}],
"max_tokens": 100
}'
```
#### example for video input
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3.1-flash-lite-preview",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Describe this video."},
{"type": "video_url", "video_url": {"url": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"}}
]
}],
"max_tokens": 1000
}'
```
### Gemini Native API
#### basic generateContent
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3.1-flash-lite-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "List 3 countries and their capitals."}]
}
]
}'
```
#### example for video input (Gemini Native)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3.1-flash-lite-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [{
"role": "user",
"parts": [
{"text": "Describe this video."},
{"fileData": {"mimeType": "video/mp4", "fileUri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"}}
]
}]
}'
```
#### example for Grounding with Google Search (Gemini Native)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3.1-flash-lite-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "Who won the euro 2024?"}]
}
],
"tools": [
{
"google_search": {}
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "google/gemini-3.1-flash-lite-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Google Vertex SDK
```python theme={null}
from google import genai
from google.genai import types
client = genai.Client(
vertexai=True,
http_options={
"base_url": "https://api.gmi-serving.com/v1/models/gemini-3.1-flash-lite-preview:generateContent",
"headers": {
"Authorization": "Bearer "
}
}
)
video_config = types.GenerateContentConfig(
system_instruction="You are a professional action analyst. Please answer in Spanish.",
)
video_part = types.Part.from_uri(
file_uri="gs://cloud-samples-data/generative-ai/video/pixel8.mp4",
mime_type="video/mp4"
)
video_metadata_part = types.Part(video_metadata=types.VideoMetadata(fps=10.0))
try:
response = client.models.generate_content(
model="google/gemini-3.1-flash-lite-preview",
contents=["Describe this video.", video_part, video_metadata_part],
config=video_config
)
print("--- Gemini 3.1 Flash-Lite reply ---")
print(response.text)
except Exception as e:
print(f"Failed: {e}")
```
# Gemini 3.1 Pro Preview
Source: https://docs.gmicloud.ai/model-quickstarts/text/google-gemini-3-1-pro-preview
Google Gemini 3.1 Pro Preview is the latest iteration in the Gemini 3 series from Google, featuring significantly improved reasoning capabilities for complex problem-solving tasks.
**Model ID**
```bash theme={null}
google/gemini-3.1-pro-preview
```
## API Usage
You can interact with the Gemini 3.1 Pro Preview model through our OpenAI-compatible APIs and Gemini native APIs. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Gemini 3.1 Pro Preview.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3.1-pro-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
#### example for function call
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 200,
"model": "google/gemini-3.1-pro-preview",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather in a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
]
}'
```
#### example for vision (image input)
```text theme={null}
### example for vision (image input)
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3.1-pro-preview",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What animal is in this image?"},
{"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/220px-Cat_November_2010-1a.jpg"}}
]
}],
"max_tokens": 100
}'
```
#### example for video input
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3.1-pro-preview",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Describe this video."},
{"type": "video_url", "video_url": {"url": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"}}
]
}],
"max_tokens": 1000
}'
```
### Gemini Native API
#### basic generateContent
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3.1-pro-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "List 3 countries and their capitals."}]
}
]
}'
```
#### example for video input (Gemini Native)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3.1-pro-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [{
"role": "user",
"parts": [
{"text": "Describe this video."},
{"fileData": {"mimeType": "video/mp4", "fileUri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"}}
]
}]
}'
```
#### example for Grounding with Google Search (Gemini Native)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3.1-pro-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "Who won the euro 2024?"}]
}
],
"tools": [
{
"google_search": {}
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "google/gemini-3.1-pro-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Google Vertex SDK
```python theme={null}
from google import genai
from google.genai import types
client = genai.Client(
vertexai=True,
http_options={
"base_url": "https://api.gmi-serving.com/v1/models/gemini-3.1-pro-preview:generateContent",
"headers": {
"Authorization": "Bearer "
}
}
)
video_config = types.GenerateContentConfig(
system_instruction="You are a professional action analyst. Please answer in Spanish.",
)
video_part = types.Part.from_uri(
file_uri="gs://cloud-samples-data/generative-ai/video/pixel8.mp4",
mime_type="video/mp4"
)
video_metadata_part = types.Part(video_metadata=types.VideoMetadata(fps=10.0))
try:
response = client.models.generate_content(
model="google/gemini-3.1-pro-preview",
contents=["Describe this video.", video_part, video_metadata_part],
config=video_config
)
print("--- Gemini 3.1 Pro reply ---")
print(response.text)
except Exception as e:
print(f"Failed: {e}")
```
# Gemini 3 Flash Preview
Source: https://docs.gmicloud.ai/model-quickstarts/text/google-gemini-3-flash-preview
Google Gemini 3 Flash Preview is a fast and efficient multimodal large language model from Google.
**Model ID**
```bash theme={null}
google/gemini-3-flash-preview
```
## API Usage
You can interact with the Gemini 3 Flash Preview model through our OpenAI-compatible APIs and Gemini native APIs. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Gemini 3 Flash Preview.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3-flash-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
#### example for function call
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 200,
"model": "google/gemini-3-flash-preview",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather in a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
]
}'
```
#### example for vision (image input)
```text theme={null}
### example for vision (image input)
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3-flash-preview",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What animal is in this image?"},
{"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/220px-Cat_November_2010-1a.jpg"}}
]
}],
"max_tokens": 100
}'
```
#### example for video input
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemini-3-flash-preview",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Describe this video."},
{"type": "video_url", "video_url": {"url": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"}}
]
}],
"max_tokens": 1000
}'
```
### Gemini Native API
#### basic generateContent
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3-flash-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [
{
"role": "user",
"parts": [{"text": "List 3 countries and their capitals."}]
}
]
}'
```
#### example for video input (Gemini Native)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/models/gemini-3-flash-preview:generateContent \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"contents": [{
"role": "user",
"parts": [
{"text": "Describe this video."},
{"fileData": {"mimeType": "video/mp4", "fileUri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"}}
]
}]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "google/gemini-3-flash-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Google Vertex SDK
```python theme={null}
from google import genai
from google.genai import types
client = genai.Client(
vertexai=True,
http_options={
"base_url": "https://api.gmi-serving.com/v1/models/gemini-3-flash-preview:generateContent",
"headers": {
"Authorization": "Bearer "
}
}
)
video_config = types.GenerateContentConfig(
system_instruction="You are a professional action analyst. Please answer in Spanish.",
)
video_part = types.Part.from_uri(
file_uri="gs://cloud-samples-data/generative-ai/video/pixel8.mp4",
mime_type="video/mp4"
)
video_metadata_part = types.Part(video_metadata=types.VideoMetadata(fps=10.0))
try:
response = client.models.generate_content(
model="google/gemini-3-flash-preview",
contents=["Describe this video.", video_part, video_metadata_part],
config=video_config
)
print("--- Gemini 3 Flash reply ---")
print(response.text)
except Exception as e:
print(f"Failed: {e}")
```
# Gemma 4 26B A4B (IT)
Source: https://docs.gmicloud.ai/model-quickstarts/text/google-gemma-4-26b-a4b-it
Google Gemma 4 26B A4B is a large language model from Google’s Gemma family.
**Model ID**
```bash theme={null}
google/gemma-4-26b-a4b-it
```
## API Usage
You can interact with the Gemma 4 26B A4B model through our OpenAI-compatible APIs. Below are examples showing how to use the model.
## API Examples
Generate a response using the chat completions endpoint.
## API Examples
Generate a model response using the chat endpoint of Gemma 4 31B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemma-4-26b-a4b",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
#### example for function call
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 200,
"model": "google/gemma-4-26b-a4b",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather in a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "google/gemma-4-26b-a4b",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Gemma 4 31B (IT)
Source: https://docs.gmicloud.ai/model-quickstarts/text/google-gemma-4-31b-it
Google Gemma 4 31B is a large language model from Google’s Gemma family.
**Model ID**
```bash theme={null}
google/gemma-4-31b-it
```
## API Usage
You can interact with the Gemma 4 31B model through our OpenAI-compatible APIs. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Gemma 4 31B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "google/gemma-4-31b",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
#### example for function call
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 200,
"model": "google/gemma-4-31b",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather in a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "google/gemma-4-31b",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# KAT Coder Pro v2
Source: https://docs.gmicloud.ai/model-quickstarts/text/kwaipilot-kat-coder-pro-v2
KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration.
**Model ID**
```bash theme={null}
kwaipilot/kat-coder-pro-v2
```
## API Usage
You can interact with the KAT-Coder-Pro V2 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of KAT-Coder-Pro V2.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "kwaipilot/kat-coder-pro-v2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "kwaipilot/kat-coder-pro-v2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# CLIP ViT-B/32 (LAION2B-s34B-b79K)
Source: https://docs.gmicloud.ai/model-quickstarts/text/laion-clip-vit-b-32-laion2b-s34b-b79k
A CLIP ViT-B/32 model trained with the LAION-2B English subset of LAION-5B (https://laion.ai/blog/laion-5b/) using OpenCLIP (https://github.com/mlfoundations/open_clip).
**Model ID**
```bash theme={null}
laion/CLIP-ViT-B-32-laion2B-s34B-b79K
```
## API Examples
### Shell
```bash theme={null}
curl --location 'https://api.gmi-serving.com/v1/embeddings' \
--header 'Content-Type: application/json' \
--header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "laion/CLIP-ViT-B-32-laion2B-s34B-b79K",
"input": "A photo of a cat sitting on a table"
}'
```
# Llama 4 Maverick 17B 128E Instruct (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/meta-llama-llama-4-maverick-17b-128e-instruct-fp8
Llama-4-Maverick-17B-128E-Instruct is a powerful large language model maintaining strong performance.
**Model ID**
```bash theme={null}
meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
```
## API Usage
You can interact with the Llama-4-Maverick-17B-128E-Instruct model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Llama-4-Maverick-17B-128E-Instruct.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# MiniMax M2.1
Source: https://docs.gmicloud.ai/model-quickstarts/text/minimaxai-minimax-m2-1
M2.1 was built to shatter the stereotype that high-performance agents must remain behind closed doors.
**Model ID**
```bash theme={null}
MiniMaxAI/MiniMax-M2.1
```
## API Usage
You can interact with the MiniMax-M2.1 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of MiniMax-M2.1.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.1",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant with strong reasoning and coding ability."},
{"role": "user", "content": "Explain how the Mixture-of-Experts architecture improves inference efficiency in large language models."}
],
"temperature": 0.7,
"max_tokens": 512
}'
```
#### example for function call
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": ""MiniMaxAI/MiniMax-M2.1",
"tools": [
{
"type": "function",
"function": {
"name": "query_weather",
"description": "Get weather of an city, the user should supply a city first",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city, e.g. Beijing"
}
},
"required": [
"city"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "Hows the weather like in Qingdao today"
}
]
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api..com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
payload = {
"model": "MiniMaxAI/MiniMax-M2.1",
"messages": [
{"role": "system", "content": "You are a capable AI coding assistant"},
{"role": "user", "content": "Refactor this multi-file Python module to make it async-ready"}
],
"temperature": 0,
"max_tokens": 512
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# MiniMax M2.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/minimaxai-minimax-m2-5
MiniMax-M2.5 is an advanced reasoning model featuring built-in extended thinking capabilities for complex problem-solving.
**Model ID**
```bash theme={null}
MiniMaxAI/MiniMax-M2.5
```
## API Usage
MiniMax-M2.5 supports two API formats:
* **OpenAI-compatible**: /v1/chat/completions endpoint
* **Anthropic-compatible**: /v1/messages endpoint (with extended thinking support)
## API Examples
### OpenAI-Compatible Endpoint
Generate a model response using the chat completions endpoint.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant with strong reasoning and coding ability."},
{"role": "user", "content": "Explain how the Mixture-of-Experts architecture improves inference efficiency in large language models."}
],
"max_tokens": 1024
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
payload = {
"model": "MiniMaxAI/MiniMax-M2.5",
"messages": [
{"role": "system", "content": "You are a capable AI coding assistant"},
{"role": "user", "content": "Refactor this multi-file Python module to make it async-ready"}
],
"max_tokens": 1024
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Anthropic-Compatible Endpoint (with Extended Thinking)
The /v1/messages endpoint provides access to the model's reasoning process through the "thinking" content block. You can also use the Anthropic SDK directly by configuring the base URL.
#### Using Anthropic SDK (Recommended)
```text theme={null}
# Configure environment variables
export ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
export ANTHROPIC_API_KEY=${YOUR_API_KEY}
```
```python theme={null}
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="MiniMax-M2.5",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Hi, how are you?"
}
]
}
]
)
for block in message.content:
if block.type == "thinking":
print(f"Thinking:\n{block.thinking}\n")
elif block.type == "text":
print(f"Text:\n{block.text}\n")
```
#### Shell (Direct API)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Solve this step by step: What is 23 * 47?"}
]
}'
```
#### Shell (with Streaming)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
],
"stream": true
}'
```
#### Python (with Streaming)
```python theme={null}
import anthropic
client = anthropic.Anthropic()
stream = client.messages.create(
model="MiniMax-M2.5",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[
{"role": "user", "content": [{"type": "text", "text": "Hi, how are you?"}]}
],
stream=True,
)
for chunk in stream:
if chunk.type == "content_block_delta":
if hasattr(chunk, "delta") and chunk.delta:
if chunk.delta.type == "thinking_delta":
print(chunk.delta.thinking, end="", flush=True)
elif chunk.delta.type == "text_delta":
print(chunk.delta.text, end="", flush=True)
```
# MiniMax M2.7
Source: https://docs.gmicloud.ai/model-quickstarts/text/minimaxai-minimax-m2-7
MiniMax-M2.7 is MiniMax's first model deeply participating in its own evolution.
**Model ID**
```bash theme={null}
MiniMaxAI/MiniMax-M2.7
```
## API Usage
MiniMax-M2.7 supports two API formats:
* **OpenAI-compatible**: `/v1/chat/completions` endpoint
* **Anthropic-compatible**: `/v1/messages` endpoint (with extended thinking support)
## API Examples
### OpenAI-Compatible Endpoint
Generate a model response using the chat completions endpoint.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant with strong reasoning and coding ability."},
{"role": "user", "content": "Explain how the Mixture-of-Experts architecture improves inference efficiency in large language models."}
],
"max_tokens": 1024
}'
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
payload = {
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "system", "content": "You are a capable AI coding assistant"},
{"role": "user", "content": "Refactor this multi-file Python module to make it async-ready"}
],
"max_tokens": 1024
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Anthropic-Compatible Endpoint (with Extended Thinking)
The `/v1/messages` endpoint provides access to the model's reasoning process through the "thinking" content block. You can also use the Anthropic SDK directly by configuring the base URL.
#### Using Anthropic SDK (Recommended)
```text theme={null}
# Configure environment variables
export ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
export ANTHROPIC_API_KEY=${YOUR_API_KEY}
```
```python theme={null}
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="MiniMax-M2.7",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Hi, how are you?"
}
]
}
]
)
for block in message.content:
if block.type == "thinking":
print(f"Thinking:\n{block.thinking}\n")
elif block.type == "text":
print(f"Text:\n{block.text}\n")
```
#### Shell (Direct API)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Solve this step by step: What is 23 * 47?"}
]
}'
```
#### Shell (with Streaming)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: *************' \
--data '{
"model": "MiniMaxAI/MiniMax-M2.7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Tell me a three sentence bedtime story about a unicorn."}
],
"stream": true
}'
```
#### Python (with Streaming)
```python theme={null}
import anthropic
client = anthropic.Anthropic()
stream = client.messages.create(
model="MiniMax-M2.7",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[
{"role": "user", "content": [{"type": "text", "text": "Hi, how are you?"}]}
],
stream=True,
)
for chunk in stream:
if chunk.type == "content_block_delta":
if hasattr(chunk, "delta") and chunk.delta:
if chunk.delta.type == "thinking_delta":
print(chunk.delta.thinking, end="", flush=True)
elif chunk.delta.type == "text_delta":
print(chunk.delta.text, end="", flush=True)
```
# Kimi K2.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/moonshotai-kimi-k2-5
Kimi K2.5 is an open-source, native multimodal agentic model built through continual pretraining on approximately 15 trillion mixed visual and text tokens atop Kimi-K2-Base.
**Model ID**
```bash theme={null}
moonshotai/Kimi-K2.5
```
## API Usage
You can interact with the Moonshotai Kimi K2 Instruct 0905 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Moonshotai Kimi K2 Instruct 0905.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "moonshotai/Kimi-K2.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "moonshotai/Kimi-K2.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Kimi K2.6
Source: https://docs.gmicloud.ai/model-quickstarts/text/moonshotai-kimi-k2-6
Kimi-K2.6 is an open-source, native multimodal agentic model developed by Moonshot AI.
**Model ID**
```bash theme={null}
moonshotai/Kimi-K2.6
```
## API Usage
You can interact with the Kimi-K2.6 model through a RESTful API using an OpenAI-compatible interface. Kimi-K2.6 supports both Thinking mode and Instant mode.
## API Examples
### Generate a Chat Completion
Use the chat completion endpoint to generate responses from the K2.6 model.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "moonshotai/Kimi-K2.6",
"messages": [
{"role": "system", "content": "You are a helpful and capable AI coding assistant."},
{"role": "user", "content": "Explain the concept of quantum entanglement in simple terms."}
],
"temperature": 1.0,
"top_p": 0.95,
"max_tokens": 800
}'
```
#### Function Call Example
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "moonshotai/Kimi-K2.6",
"temperature": 1.0,
"top_p": 0.95,
"max_tokens": 1000,
"tools": [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Retrieve the current stock price for a given company.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol of the company, e.g. AAPL or TSLA."
}
},
"required": ["symbol"]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the current price of Apple stock?"
}
]
}'
```
# Kimi K2 Instruct (0905)
Source: https://docs.gmicloud.ai/model-quickstarts/text/moonshotai-kimi-k2-instruct-0905
Moonshotai Kimi K2 Instruct 0905 is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
moonshotai/Kimi-K2-Instruct-0905
```
## API Usage
You can interact with the Moonshotai Kimi K2 Instruct 0905 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Moonshotai Kimi K2 Instruct 0905.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "moonshotai/Kimi-K2-Instruct-0905",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "moonshotai/Kimi-K2-Instruct-0905",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Kimi K2 Thinking
Source: https://docs.gmicloud.ai/model-quickstarts/text/moonshotai-kimi-k2-thinking
Moonshotai Kimi K2 Instruct 0905 is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
moonshotai/Kimi-K2-Thinking
```
## API Usage
You can interact with the Moonshotai Kimi K2 Instruct 0905 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Moonshotai Kimi K2 Instruct 0905.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "moonshotai/Kimi-K2-Instruct-0905",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "moonshotai/Kimi-K2-Instruct-0905",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Nvidia Nemotron 3 Nano Omni
Source: https://docs.gmicloud.ai/model-quickstarts/text/nvidia-nemotron-3-nano-omni
Nvidia Nemotron 3 Nano Omni is available on GMI Cloud's OpenAI-compatible inference API.
**Model ID**
```bash theme={null}
nvidia/nemotron-3-nano-omni
```
Nvidia Nemotron 3 Nano Omni is served through GMI Cloud's OpenAI-compatible Chat Completions API at `https://api.gmi-serving.com`.
## API Usage
You can interact with Nvidia Nemotron 3 Nano Omni through the chat completions endpoint. Examples below.
### Create chat completion
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "nvidia/nemotron-3-nano-omni",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "nvidia/nemotron-3-nano-omni",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Python
```python theme={null}
import requests, json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $GMI_API_KEY"
}
payload = {
"model": "nvidia/nemotron-3-nano-omni",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# NVIDIA Nemotron 3 Nano Omni
Source: https://docs.gmicloud.ai/model-quickstarts/text/nvidia-nvidia-nemotron-3-nano-omni
Nemotron 3 Nano Omni is a multimodal large language model developed by NVIDIA, designed for high-performance understanding and generation across text, images, video, and audio.
**Model ID**
```bash theme={null}
nvidia/nemotron-3-nano-omni
```
The model is well-suited for general-purpose AI applications such as conversational AI, content creation, multimodal analysis, and intelligent assistants that process diverse input types.
## API Usage
You can interact with the Nemotron 3 Nano Omni model through multiple programming environments using a RESTful API. The examples below demonstrate how to call the model for text and multimodal generation tasks.
## API Examples
### Generate a Chat Completion
Use the chat completion endpoint to generate responses from the Nemotron 3 Nano Omni model.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "nvidia/nemotron-3-nano-omni",
"messages": [
{"role": "system", "content": "You are a knowledgeable AI assistant."},
{"role": "user", "content": "Explain the concept of quantum entanglement in simple terms."}
],
"temperature": 0.2,
"max_tokens": 800
}'
```
#### Multimodal Example (Image Input)
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "nvidia/nemotron-3-nano-omni",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "file:///path/to/image.jpg"
}
},
{
"type": "text",
"text": "Describe this image."
}
]
}
],
"temperature": 0.2,
"max_tokens": 800,
"chat_template_kwargs": {"enable_thinking": false}
}'
```
#### Function Call Example
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "nvidia/nemotron-3-nano-omni",
"tools": [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Retrieve the current stock price for a given company.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol of the company, e.g., AAPL or TSLA."
}
},
"required": ["symbol"]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the current price of Apple stock?"
}
]
}'
```
# GPT-4o
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-4o
GPT-4o ("o" for "omni") is OpenAI's latest AI model, supporting both text and image inputs with text outputs.
**Model ID**
```bash theme={null}
openai/gpt-4o
```
##
* [API Usage](#api-usage)
* [API Examples](#api-examples)
* [Create chat completion](#create-chat-completion)
* [Default](#default)
* [Streaming](#streaming)
* [Image Input](#image-input)
* [Functions](#functions)
* [Python](#python)
* [Create a model response](#create-a-model-response)
* [Default (Responses)](#default-1)
* [Streaming (Responses)](#streaming-1)
* [Functions (Responses)](#functions-1)
* [Image Input (Responses)](#image-input-1)
* [File Input](#file-input)
* [Web search](#web-search)
GPT-4o ("o" for "omni") is OpenAI's latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of GPT-4 Turbo while being twice as fast and 50% more cost-effective. GPT-4o also offers improved performance in processing non-English languages and enhanced visual capabilities.
## API Usage
You can interact with the OpenAI GPT-4o model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-4o chat.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-4o",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-4o Mini
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-4o-mini
GPT-4o mini is OpenAI's newest model after GPT-4 Omni, supporting both text and image inputs with text outputs.
**Model ID**
```bash theme={null}
openai/gpt-4o-mini
```
As their most advanced small model, it is many multiples more affordable than other recent frontier models, and more than 60% cheaper than GPT-3.5 Turbo. It maintains SOTA intelligence, while being significantly more cost-effective.
## API Usage
You can interact with the OpenAI GPT-4o-mini model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-4o-mini chat.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-4o-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-4o-mini",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-4o-mini",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5
GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience.
**Model ID**
```bash theme={null}
openai/gpt-5
```
## API Usage
You can interact with the OpenAI GPT-5 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.1
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-1
GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5.
**Model ID**
```bash theme={null}
openai/gpt-5.1
```
##
* [API Usage](#api-usage)
* [API Examples](#api-examples)
* [Create chat completion](#create-chat-completion)
* [Default](#default)
* [Streaming](#streaming)
* [Image Input](#image-input)
* [Functions](#functions)
* [Python](#python)
* [Create a model response](#create-a-model-response)
* [Default (Responses)](#default-1)
* [Streaming (Responses)](#streaming-1)
* [Reasoning](#reasoning)
* [Functions (Responses)](#functions-1)
* [Image Input (Responses)](#image-input-1)
* [File Input](#file-input)
* [Web search](#web-search)
GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning to allocate computation dynamically, responding quickly to simple queries while spending more depth on complex tasks. The model produces clearer, more grounded explanations with reduced jargon, making it easier to follow even on technical or multi-step problems.
Built for broad task coverage, GPT-5.1 delivers consistent gains across math, coding, and structured analysis workloads, with more coherent long-form answers and improved tool-use reliability. It also features refined conversational alignment, enabling warmer, more intuitive responses without compromising precision. GPT-5.1 serves as the primary full-capability successor to GPT-5
## API Usage
You can interact with the OpenAI GPT-5.1 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.1.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.1",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.1 Chat
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-1-chat
GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence.
**Model ID**
```bash theme={null}
openai/gpt-5.1-chat
```
##
* [API Usage](#api-usage)
* [API Examples](#api-examples)
* [Create chat completion](#create-chat-completion)
* [Default](#default)
* [Streaming](#streaming)
* [Image Input](#image-input)
* [Functions](#functions)
* [Python](#python)
* [Create a model response](#create-a-model-response)
* [Default (Responses)](#default-1)
* [Streaming (Responses)](#streaming-1)
* [Reasoning](#reasoning)
* [Functions (Responses)](#functions-1)
* [Image Input (Responses)](#image-input-1)
* [File Input](#file-input)
* [Web search](#web-search)
GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on harder queries, improving accuracy on math, coding, and multi-step tasks without slowing down typical conversations. The model is warmer and more conversational by default, with better instruction following and more stable short-form reasoning. GPT-5.1 Chat is designed for high-throughput, interactive workloads where responsiveness and consistency matter more than deep deliberation.
## API Usage
You can interact with the OpenAI GPT-5.1-chat model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.1 chat.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.1-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.1-chat",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "medium"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.1-chat",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.2
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-2
GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1.
**Model ID**
```bash theme={null}
openai/gpt-5.2
```
Built for broad task coverage, GPT-5.2 delivers consistent gains across math, coding, sciende, and tool calling workloads, with more coherent long-form answers and improved tool-use reliability.
## API Usage
You can interact with the OpenAI GPT-5.2 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.2.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.2 Chat
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-2-chat
GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence.
**Model ID**
```bash theme={null}
openai/gpt-5.2-chat
```
## API Usage
You can interact with the OpenAI GPT-5.2-chat model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.2 chat.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.2-chat"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.2-chat",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "medium"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-chat",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
### Common request errors:
#### 1. 'max\_tokens' not supported
```json theme={null}
{
"error": {
"message": "Backend request failed with status 400",
"type": "backend_error",
"code": 400,
"details": {
"error": {
"message": "Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.",
"type": "invalid_request_error",
"param": "max_tokens",
"code": "unsupported_parameter"
}
}
}
}
```
Solution: Use 'max\_completion\_tokens' instead.
# GPT-5.2 Codex
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-2-codex
GPT-5.2-Codex is an upgraded version of gpt-5.1-codex optimized for software engineering and coding workflows.
**Model ID**
```bash theme={null}
openai/gpt-5.2-codex
```
## API Usage
You can interact with the OpenAI gpt-5.2-codex model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.2-codex.
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.2-codex",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.3 Codex
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-3-codex
GPT-5.3-Codex is an upgraded version of gpt-5.2-codex optimized for software engineering and coding workflows.
**Model ID**
```bash theme={null}
openai/gpt-5.3-codex
```
## API Usage
You can interact with the OpenAI gpt-5.3-codex model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.3-codex.
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.3-codex",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.4
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-4
GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system.
**Model ID**
```bash theme={null}
openai/gpt-5.4
```
The model delivers improved performance in coding, document understanding, tool use, and instruction following. It is designed as a strong default for both general-purpose tasks and software engineering, capable of generating production-quality code, synthesizing information across multiple sources, and executing complex multi-step workflows with fewer iterations and greater token efficiency.
## API Usage
You can interact with the OpenAI GPT-5.4 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.4.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.4",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.4 Mini
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-4-mini
GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads.
**Model ID**
```bash theme={null}
openai/gpt-5.4-mini
```
The model is designed for production environments that require a balance of capability and efficiency, making it well suited for chat applications, coding assistants, and agent workflows that operate at scale. GPT-5.4 mini delivers reliable instruction following, solid multi-step reasoning, and consistent performance across diverse tasks with improved cost efficiency.
## API Usage
You can interact with the OpenAI GPT-5.4-mini model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.4-mini.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-mini"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.4-mini",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-mini",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.4 Nano
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-4-nano
GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks.
**Model ID**
```bash theme={null}
openai/gpt-5.4-nano
```
The model prioritizes responsiveness and efficiency over deep reasoning, making it ideal for pipelines that require fast, reliable outputs at scale. GPT-5.4 nano is well suited for background tasks, real-time systems, and distributed agent architectures where minimizing cost and latency is essential.
You can interact with the OpenAI GPT-5.4-nano model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.4-nano.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-nano"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-nano"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-nano"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.4-nano"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.4-nano",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-nano",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.4 Pro
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-4-pro
GPT-5.4 Pro is OpenAI's most advanced model, building on GPT-5.4's unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks.
**Model ID**
```bash theme={null}
openai/gpt-5.4-pro
```
## API Usage
You can interact with the OpenAI GPT-5.4-pro model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI GPT-5.4-pro.
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.4-pro",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# GPT-5.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/openai-gpt-5-5
GPT-5.5 is OpenAI’s frontier model designed for complex professional workloads, building on GPT-5.4 with stronger reasoning, higher reliability, and improved token efficiency on hard tasks.
**Model ID**
```bash theme={null}
openai/gpt-5.5
```
## API Usage
You can interact with the OpenAI gpt-5.5 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of OpenAI gpt-5.5.
### Create chat completion
The Chat Completions API endpoint will generate a model response from a list of messages comprising a conversation.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(response.choices[0])
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "openai/gpt-5.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "openai/gpt-5.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
### Create a model response
OpenAI's most advanced interface for generating model responses. Supports text and image inputs, and text outputs. Create stateful interactions with the model, using the output of previous responses as input. Extend the model's capabilities with built-in tools for file search, web search, computer use, and more. Allow the model access to external systems and data using function calling.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"input": "Tell me a three sentence bedtime story about a unicorn."
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"instructions": "You are a helpful assistant.",
"input": "Hello!",
"stream": true
}'
```
#### Reasoning
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"input": "How much wood would a woodchuck chuck?",
"reasoning": {
"effort": "low"
}
}'
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"input": "What is the weather like in Boston today?",
"tools": [
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"description": "Temperature unit",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "unit"]
}
}
],
"tool_choice": "auto"
}'
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this image?"},
{
"type": "input_image",
"image_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
]
}
]
}'
```
#### File Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"input": [
{
"role": "user",
"content": [
{"type": "input_text", "text": "what is in this file?"},
{
"type": "input_file",
"file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
}
]
}
]
}'
```
#### Web search
```bash theme={null}
curl https://api.gmi-serving.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "openai/gpt-5.5",
"tools": [{ "type": "web_search_preview" }],
"input": "What was a positive news story from today?"
}'
```
# LLM models
Source: https://docs.gmicloud.ai/model-quickstarts/text/overview
Text, chat, code, and multimodal language models available on GMI Cloud.
All text and language models available on GMI Cloud. Click a model to see its API examples and parameters.
## Full model list
| Model | Model ID | Organization |
| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- | ------------ |
| [Anthropic Claude Haiku 4.5](/model-quickstarts/text/anthropic-claude-haiku-4-5) | anthropic/claude-haiku-4.5 | anthropic |
| [Anthropic Claude Opus 4.1](/model-quickstarts/text/anthropic-claude-opus-4-1) | anthropic/claude-opus-4.1 | anthropic |
| [Anthropic Claude Opus 4.5](/model-quickstarts/text/anthropic-claude-opus-4-5) | anthropic/claude-opus-4.5 | anthropic |
| [Anthropic Claude Opus 4.6](/model-quickstarts/text/anthropic-claude-opus-4-6) | anthropic/claude-opus-4.6 | anthropic |
| [Anthropic Claude Opus 4.7](/model-quickstarts/text/anthropic-claude-opus-4-7) | anthropic/claude-opus-4.7 | anthropic |
| [Anthropic Claude Sonnet 4](/model-quickstarts/text/anthropic-claude-sonnet-4) | anthropic/claude-sonnet-4 | anthropic |
| [Anthropic Claude Sonnet 4.5](/model-quickstarts/text/anthropic-claude-sonnet-4-5) | anthropic/claude-sonnet-4.5 | anthropic |
| [Anthropic Claude Sonnet 4.6](/model-quickstarts/text/anthropic-claude-sonnet-4-6) | anthropic/claude-sonnet-4.6 | anthropic |
| [ByteDance Seed-2.0-Mini](/model-quickstarts/text/bytedance-seed-2-0-mini) | bytedance/seed-2.0-mini | bytedance |
| [CLIP-ViT-B-32-laion2B-s34B-b79K](/model-quickstarts/text/laion-clip-vit-b-32-laion2b-s34b-b79k) | laion/CLIP-ViT-B-32-laion2B-s34B-b79K | laion |
| [DeepSeek Prover V2 671B](/model-quickstarts/text/deepseek-ai-deepseek-prover-v2-671b) | deepseek-ai/DeepSeek-Prover-V2-671B | deepseek-ai |
| [DeepSeek V3.2](/model-quickstarts/text/deepseek-ai-deepseek-v3-2) | deepseek-ai/DeepSeek-V3.2 | deepseek-ai |
| [deepseek-ai/DeepSeek-V4-Flash](/model-quickstarts/text/deepseek-ai-deepseek-v4-flash) | deepseek-ai/DeepSeek-V4-Flash | deepseek-ai |
| [deepseek-ai/DeepSeek-V4-Pro](/model-quickstarts/text/deepseek-ai-deepseek-v4-pro) | deepseek-ai/DeepSeek-V4-Pro | deepseek-ai |
| [DeepSeek-R1-Distill-Llama-70B](/model-quickstarts/text/deepseek-ai-deepseek-r1-distill-llama-70b) | deepseek-ai/DeepSeek-R1-Distill-Llama-70B | deepseek-ai |
| [DeepSeek-R1-Distill-Qwen-14B](/model-quickstarts/text/deepseek-ai-deepseek-r1-distill-qwen-14b) | deepseek-ai/DeepSeek-R1-Distill-Qwen-14B | deepseek-ai |
| [DeepSeek-R1-Distill-Qwen-7B](/model-quickstarts/text/deepseek-ai-deepseek-r1-distill-qwen-7b) | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | deepseek-ai |
| [DeepSeek-V3-0324](/model-quickstarts/text/deepseek-ai-deepseek-v3-0324) | deepseek-ai/DeepSeek-V3-0324 | deepseek-ai |
| [DeepSeek-V3.1-Terminus](/model-quickstarts/text/deepseek-ai-deepseek-v3-1-terminus) | deepseek-ai/DeepSeek-V3.1-Terminus | deepseek-ai |
| [DeepSeek-V3.2](/model-quickstarts/text/deepseek-ai-deepseek-r1-0528) | deepseek-ai/DeepSeek-R1-0528 | deepseek-ai |
| [DeepSeek-V3.2](/model-quickstarts/text/zai-org-glm-4-7-fp8) | zai-org/GLM-4.7-FP8 | zai-org |
| [GLM-4.5-Air-FP8](/model-quickstarts/text/zai-org-glm-4-5-air-fp8) | zai-org/GLM-4.5-Air-FP8 | zai-org |
| [GLM-4.5-FP8](/model-quickstarts/text/zai-org-glm-4-5-fp8) | zai-org/GLM-4.5-FP8 | zai-org |
| [GLM-5](/model-quickstarts/text/zai-org-glm-5-fp8) | zai-org/GLM-5-FP8 | zai-org |
| [GLM-5.1](/model-quickstarts/text/zai-org-glm-5-1-fp8) | zai-org/GLM-5.1-FP8 | zai-org |
| [Google Gemini 3 Flash Preview](/model-quickstarts/text/google-gemini-3-flash-preview) | google/gemini-3-flash-preview | google |
| [Google Gemini 3.1 Flash-Lite Preview](/model-quickstarts/text/google-gemini-3-1-flash-lite-preview) | google/gemini-3.1-flash-lite-preview | google |
| [Google Gemini 3.1 Pro Preview](/model-quickstarts/text/google-gemini-3-1-pro-preview) | google/gemini-3.1-pro-preview | google |
| [Google Gemma 4 26B A4B](/model-quickstarts/text/google-gemma-4-26b-a4b-it) | google/gemma-4-26b-a4b-it | google |
| [Google Gemma 4 31B](/model-quickstarts/text/google-gemma-4-31b-it) | google/gemma-4-31b-it | google |
| [hy3-preview](/model-quickstarts/text/tencent-hy3-preview) | tencent/hy3-preview | tencent |
| [KAT-Coder-Pro V2](/model-quickstarts/text/kwaipilot-kat-coder-pro-v2) | kwaipilot/kat-coder-pro-v2 | kwaipilot |
| [Kimi-K2.6](/model-quickstarts/text/moonshotai-kimi-k2-6) | moonshotai/Kimi-K2.6 | moonshotai |
| [Llama-4-Maverick-17B-128E-Instruct](/model-quickstarts/text/meta-llama-llama-4-maverick-17b-128e-instruct-fp8) | meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 | meta-llama |
| [MiniMax-M2.1](/model-quickstarts/text/minimaxai-minimax-m2-1) | MiniMaxAI/MiniMax-M2.1 | MiniMaxAI |
| [MiniMax-M2.5](/model-quickstarts/text/minimaxai-minimax-m2-5) | MiniMaxAI/MiniMax-M2.5 | MiniMaxAI |
| [MiniMax-M2.7](/model-quickstarts/text/minimaxai-minimax-m2-7) | MiniMaxAI/MiniMax-M2.7 | MiniMaxAI |
| [Moonshotai Kimi K2 Instruct 0905](/model-quickstarts/text/moonshotai-kimi-k2-instruct-0905) | moonshotai/Kimi-K2-Instruct-0905 | moonshotai |
| [Moonshotai Kimi K2 Instruct 0905](/model-quickstarts/text/moonshotai-kimi-k2-thinking) | moonshotai/Kimi-K2-Thinking | moonshotai |
| [Moonshotai Kimi-K2.5](/model-quickstarts/text/moonshotai-kimi-k2-5) | moonshotai/Kimi-K2.5 | moonshotai |
| [Nemotron 3 Nano Omni](/model-quickstarts/text/nvidia-nvidia-nemotron-3-nano-omni) | nvidia/NVIDIA-Nemotron-3-Nano-Omni | nvidia |
| [Nvidia Nemotron 3 Nano Omni](/model-quickstarts/text/nvidia-nemotron-3-nano-omni) | nvidia/nemotron-3-nano-omni | nvidia |
| [OpenAI GPT-4o](/model-quickstarts/text/openai-gpt-4o) | openai/gpt-4o | openai |
| [OpenAI GPT-4o-mini](/model-quickstarts/text/openai-gpt-4o-mini) | openai/gpt-4o-mini | openai |
| [OpenAI GPT-5](/model-quickstarts/text/openai-gpt-5) | openai/gpt-5 | openai |
| [OpenAI GPT-5.1](/model-quickstarts/text/openai-gpt-5-1) | openai/gpt-5.1 | openai |
| [OpenAI GPT-5.1-Chat](/model-quickstarts/text/openai-gpt-5-1-chat) | openai/gpt-5.1-chat | openai |
| [OpenAI GPT-5.2](/model-quickstarts/text/openai-gpt-5-2) | openai/gpt-5.2 | openai |
| [OpenAI GPT-5.2-Chat](/model-quickstarts/text/openai-gpt-5-2-chat) | openai/gpt-5.2-chat | openai |
| [OpenAI GPT-5.2-codex](/model-quickstarts/text/openai-gpt-5-2-codex) | openai/gpt-5.2-codex | openai |
| [OpenAI GPT-5.3-codex](/model-quickstarts/text/openai-gpt-5-3-codex) | openai/gpt-5.3-codex | openai |
| [OpenAI GPT-5.4](/model-quickstarts/text/openai-gpt-5-4) | openai/gpt-5.4 | openai |
| [OpenAI GPT-5.4-mini](/model-quickstarts/text/openai-gpt-5-4-mini) | openai/gpt-5.4-mini | openai |
| [OpenAI GPT-5.4-nano](/model-quickstarts/text/openai-gpt-5-4-nano) | openai/gpt-5.4-nano | openai |
| [OpenAI GPT-5.4-pro](/model-quickstarts/text/openai-gpt-5-4-pro) | openai/gpt-5.4-pro | openai |
| [OpenAI gpt-5.5](/model-quickstarts/text/openai-gpt-5-5) | openai/gpt-5.5 | openai |
| [Qwen3 Next 80B A3B Instruct](/model-quickstarts/text/qwen-qwen3-next-80b-a3b-instruct) | Qwen/Qwen3-Next-80B-A3B-Instruct | Qwen |
| [Qwen3 Next 80B A3B Thinking](/model-quickstarts/text/qwen-qwen3-next-80b-a3b-thinking) | Qwen/Qwen3-Next-80B-A3B-Thinking | Qwen |
| [Qwen3-235B-A22B-FP8](/model-quickstarts/text/qwen-qwen3-235b-a22b-fp8) | Qwen/Qwen3-235B-A22B-FP8 | Qwen |
| [Qwen3-235B-A22B-Instruct-2507-FP8](/model-quickstarts/text/qwen-qwen3-235b-a22b-instruct-2507-fp8) | Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 | Qwen |
| [Qwen3-235B-A22B-Thinking-2507-FP8](/model-quickstarts/text/qwen-qwen3-235b-a22b-thinking-2507-fp8) | Qwen/Qwen3-235B-A22B-Thinking-2507-FP8 | Qwen |
| [Qwen3-32B-FP8](/model-quickstarts/text/qwen-qwen3-32b-fp8) | Qwen/Qwen3-32B-FP8 | Qwen |
| [Qwen3-Coder-480B-A35B-Instruct-FP8](/model-quickstarts/text/qwen-qwen3-coder-480b-a35b-instruct-fp8) | Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 | Qwen |
| [Qwen3.5 122B A10B](/model-quickstarts/text/qwen-qwen3-5-122b-a10b) | Qwen/Qwen3.5-122B-A10B | Qwen |
| [Qwen3.5 27B](/model-quickstarts/text/qwen-qwen3-5-27b) | Qwen/Qwen3.5-27B | Qwen |
| [Qwen3.5 35B A3B](/model-quickstarts/text/qwen-qwen3-5-35b-a3b) | Qwen/Qwen3.5-35B-A3B | Qwen |
| [Qwen3.5 397B A17B](/model-quickstarts/text/qwen-qwen3-5-397b-a17b) | Qwen/Qwen3.5-397B-A17B | Qwen |
| [Qwen3.6 Max Preview](/model-quickstarts/text/qwen-qwen3-6-max-preview) | Qwen/Qwen3.6-Max-Preview | Qwen |
| [Qwen3.6 Plus](/model-quickstarts/text/qwen-qwen3-6-plus-2026-04-02) | Qwen/Qwen3.6-Plus-2026-04-02 | Qwen |
| [Qwen3.6 Plus](/model-quickstarts/text/qwen-qwen3-6-plus) | Qwen/Qwen3.6-Plus | Qwen |
| [Qwen3.6-35B-A3B](/model-quickstarts/text/qwen-qwen3-6-35b-a3b) | Qwen/Qwen3.6-35B-A3B | Qwen |
| [Qwen3.7 Max](/model-quickstarts/text/qwen-qwen3-7-max) | Qwen/Qwen3.7-Max | Qwen |
| [Xiaomi MiMo-V2.5](/model-quickstarts/text/xiaomimimo-mimo-v2-5) | XiaomiMiMo/MiMo-V2.5 | XiaomiMiMo |
| [Xiaomi MiMo-V2.5-Pro](/model-quickstarts/text/xiaomimimo-mimo-v2-5-pro) | XiaomiMiMo/MiMo-V2.5-Pro | XiaomiMiMo |
# Qwen3 235B A22B (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-235b-a22b-fp8
Qwen3-235B-A22B-FP8 is a powerful large language model while maintaining strong performance.
**Model ID**
```bash theme={null}
Qwen/Qwen3-235B-A22B-FP8
```
## API Usage
You can interact with the Qwen3-235B-A22B-FP8 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3-235B-A22B-FP8.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-235B-A22B-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-235B-A22B-FP8",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g., San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
],
"description": "The temperature unit to use"
}
},
"required": [
"location"
]
}
}
}
],
"tool_choice": "auto"
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3-235B-A22B-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3 235B A22B Instruct (2507, FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-235b-a22b-instruct-2507-fp8
Qwen3-235B-A22B-Instruct-2507-FP8 is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
Qwen/Qwen3-235B-A22B-Instruct-2507-FP8
```
## API Usage
You can interact with the Qwen3-235B-A22B-Instruct-2507-FP8 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3-235B-A22B-Instruct-2507-FP8.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3 235B A22B Thinking (2507, FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-235b-a22b-thinking-2507-fp8
Interact with this model via GMI's OpenAI-compatible chat completions endpoint.
**Model ID**
```bash theme={null}
Qwen/Qwen3-235B-A22B-Thinking-2507-FP8
```
## API Usage
### Shell
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "Qwen/Qwen3-235B-A22B-Thinking-2507-FP8",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Hello!" }
]
}'
```
### Python (OpenAI SDK)
```python theme={null}
from openai import OpenAI
client = OpenAI(
base_url="https://api.gmi-serving.com/v1",
api_key="",
)
resp = client.chat.completions.create(
model="Qwen/Qwen3-235B-A22B-Thinking-2507-FP8",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"},
],
)
print(resp.choices[0].message.content)
```
See [LLM API reference](/inference-engine/api-reference/llm-api-reference) for streaming, tool use, and full parameter docs.
# Qwen3 32B (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-32b-fp8
Qwen3-32B-FP8 is a powerful large language model while maintaining strong performance.
**Model ID**
```bash theme={null}
Qwen/Qwen3-32B-FP8
```
## API Usage
You can interact with the Qwen3-32B-FP8 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3-32B-FP8.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-32B-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
```text theme={null}
# example for function call
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-235B-A22B-FP8",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g., San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
],
"description": "The temperature unit to use"
}
},
"required": [
"location"
]
}
}
}
],
"tool_choice": "auto"
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3-32B-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.5 122B A10B
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-5-122b-a10b
Qwen3.5 122B A10B is a native vision-language model built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference.
**Model ID**
```bash theme={null}
Qwen/Qwen3.5-122B-A10B
```
## API Usage
You can interact with the Qwen3.5 122B A10B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.5 122B A10B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.5-122B-A10B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.5-122B-A10B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.5 27B
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-5-27b
Qwen3.5 27B is a powerful dense language model that incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance.
**Model ID**
```bash theme={null}
Qwen/Qwen3.5-27B
```
## API Usage
You can interact with the Qwen3.5 27B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.5 27B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.5-27B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.5-27B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.5 35B A3B
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-5-35b-a3b
Qwen3.5-35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model.
**Model ID**
```bash theme={null}
Qwen/Qwen3.5-35B-A3B
```
## API Usage
You can interact with the Qwen3.5 35B A3B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.5 35B A3B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.5-35B-A3B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.5-35B-A3B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.5 397B A17B
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-5-397b-a17b
Qwen3.5-397B-A17B is the flagship model of the Qwen3.5 series, based on a hybrid architecture that integrates linear attention mechanisms with sparse Mixture-of-Experts (MoE), achieving higher.
**Model ID**
```bash theme={null}
Qwen/Qwen3.5-397B-A17B
```
## API Usage
You can interact with the Qwen3.5 397B A17B model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.5 397B A17B.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.5-397B-A17B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.5-397B-A17B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.6-35B-A3B
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-6-35b-a3b
Qwen3.6-35B-A3B is available on GMI Cloud's OpenAI-compatible inference API.
**Model ID**
```bash theme={null}
Qwen/Qwen3.6-35B-A3B
```
Qwen3.6-35B-A3B is served through GMI Cloud's OpenAI-compatible Chat Completions API at `https://api.gmi-serving.com`.
## API Usage
You can interact with Qwen3.6-35B-A3B through the chat completions endpoint. Examples below.
### Create chat completion
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "Qwen/Qwen3.6-35B-A3B",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "Qwen/Qwen3.6-35B-A3B",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Python
```python theme={null}
import requests, json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $GMI_API_KEY"
}
payload = {
"model": "Qwen/Qwen3.6-35B-A3B",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.6 Max Preview
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-6-max-preview
Qwen3.6 Max Preview is a preview version of the flagship model in the Qwen3.6 series, offering enhanced reasoning, coding, and multimodal capabilities.
**Model ID**
```bash theme={null}
Qwen/Qwen3.6-Max-Preview
```
## API Usage
You can interact with the Qwen3.6 Max Preview model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.6 Max Preview.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.6-Max-Preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.6-Max-Preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.6 Plus
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-6-plus
Qwen3.6 Plus is an advanced model in the Qwen3.6 series, designed with enhanced efficiency and performance through improvements in hybrid attention mechanisms and optimized Mixture-of-Experts (MoE).
**Model ID**
```bash theme={null}
Qwen/Qwen3.6-Plus
```
## API Usage
You can interact with the Qwen3.6 Plus model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.6 Plus.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.6-Plus",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.6-Plus",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.6 Plus (2026-04-02)
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-6-plus-2026-04-02
Qwen3.6 Plus is an advanced model in the Qwen3.6 series, designed with enhanced efficiency and performance through improvements in hybrid attention mechanisms and optimized Mixture-of-Experts (MoE).
**Model ID**
```bash theme={null}
Qwen/Qwen3.6-Plus-2026-04-02
```
## API Usage
You can interact with the Qwen3.6 Plus model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3.6 Plus.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3.6-Plus",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3.6-Plus",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3.7 Max
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-7-max
Qwen3.7 Max is available on GMI Cloud's OpenAI-compatible inference API.
**Model ID**
```bash theme={null}
Qwen/Qwen3.7-Max
```
Qwen3.7 Max is served through GMI Cloud's OpenAI-compatible Chat Completions API at `https://api.gmi-serving.com`.
## API Usage
You can interact with Qwen3.7 Max through the chat completions endpoint. Examples below.
### Create chat completion
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "Qwen/Qwen3.7-Max",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "Qwen/Qwen3.7-Max",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Python
```python theme={null}
import requests, json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $GMI_API_KEY"
}
payload = {
"model": "Qwen/Qwen3.7-Max",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3 Coder 480B A35B Instruct (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-coder-480b-a35b-instruct-fp8
Qwen3-Coder is available in multiple sizes. Today, we're excited to introduce Qwen3-Coder-480B-A35B-Instruct-FP8.
**Model ID**
```bash theme={null}
Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8
```
Significant Performance among open models on Agentic Coding, Agentic Browser-Use, and other foundational coding tasks.
Long-context Capabilities with native support for 256K tokens, extendable up to 1M tokens using Yarn, optimized for repository-scale understanding.
Agentic Coding supporting for most platform such as Qwen Code, CLINE, featuring a specially designed function call format.
## API Usage
You can interact with the Qwen3-Coder-480B-A35B-Instruct-FP8 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3-Coder-480B-A35B-Instruct-FP8.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3 Next 80B A3B Instruct
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-next-80b-a3b-instruct
Qwen3 Next 80B A3B Instruct is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
Qwen/Qwen3-Next-80B-A3B-Instruct
```
## API Usage
You can interact with the Qwen3 Next 80B A3B Instruct model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3 Next 80B A3B Instruct.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-Next-80B-A3B-Instruct",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3-Next-80B-A3B-Instruct",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Qwen3 Next 80B A3B Thinking
Source: https://docs.gmicloud.ai/model-quickstarts/text/qwen-qwen3-next-80b-a3b-thinking
Qwen3 Next 80B A3B Thinking is a highly sparse MoE model with 80B total parameters but only ~3B activated per inference step.
**Model ID**
```bash theme={null}
Qwen/Qwen3-Next-80B-A3B-Thinking
```
## API Usage
You can interact with the Qwen3 Next 80B A3B Thinking model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of Qwen3 Next 80B A3B Thinking.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "Qwen/Qwen3-Next-80B-A3B-Thinking",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "Qwen/Qwen3-Next-80B-A3B-Thinking",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# hy3-preview
Source: https://docs.gmicloud.ai/model-quickstarts/text/tencent-hy3-preview
hy3-preview is available on GMI Cloud's OpenAI-compatible inference API.
**Model ID**
```bash theme={null}
tencent/hy3-preview
```
hy3-preview is served through GMI Cloud's OpenAI-compatible Chat Completions API at `https://api.gmi-serving.com`.
## API Usage
You can interact with hy3-preview through the chat completions endpoint. Examples below.
### Create chat completion
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "tencent/hy3-preview",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "tencent/hy3-preview",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
#### Python
```python theme={null}
import requests, json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $GMI_API_KEY"
}
payload = {
"model": "tencent/hy3-preview",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Xiaomi MiMo v2.5
Source: https://docs.gmicloud.ai/model-quickstarts/text/xiaomimimo-mimo-v2-5
MiMo-V2.5 is Xiaomi’s **multimodal** MiMo generation: it combines a **sparse MoE** language backbone (~310B total parameters, ~15B active) trained on **~48T tokens** with **in-house visual and audio.
**Model ID**
```bash theme={null}
XiaomiMiMo/MiMo-V2.5
```
## API Usage
You can interact with MiMo-V2.5 through standard OpenAI-compatible HTTP APIs. Below are examples using the chat completions endpoint.
**Message roles:** Examples use OpenAI’s `developer` role where shown; if your vendor rejects it, use `system` instead.
## API Examples
Generate a model response using the chat completions endpoint of MiMo-V2.5.
### Create chat completion
The Chat Completions API generates a model reply from a list of conversation messages.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(completion.choices[0].message)
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "XiaomiMiMo/MiMo-V2.5",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# Xiaomi MiMo v2.5 Pro
Source: https://docs.gmicloud.ai/model-quickstarts/text/xiaomimimo-mimo-v2-5-pro
MiMo-V2.5-Pro is Xiaomi’s strongest MiMo model to date, focused on **agentic behavior**, **complex software engineering**, and **long-horizon coherence**.
**Model ID**
```bash theme={null}
XiaomiMiMo/MiMo-V2.5-Pro
```
## API Usage
You can interact with MiMo-V2.5-Pro through standard OpenAI-compatible HTTP APIs. Below are examples using the chat completions endpoint.
**Message roles:** Examples use OpenAI’s `developer` role where shown; if your vendor rejects it, use `system` instead.
## API Examples
Generate a model response using the chat completions endpoint of MiMo-V2.5-Pro.
### Create chat completion
The Chat Completions API generates a model reply from a list of conversation messages.
#### Default
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5-Pro",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5-Pro"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": "What is the capital of France?",
}
],
)
print(completion.choices[0].message)
```
#### Streaming
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5-Pro",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5-Pro"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
stream=True
)
for chunk in completion:
print(chunk.choices[0].delta)
```
#### Image Input
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5-Pro",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
}
}
]
}
],
"max_completion_tokens": 300
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5-Pro"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
completion = client.chat.completions.create(
model=model_name,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
}
},
],
}
],
max_completion_tokens=300,
)
print(completion.choices[0].message)
```
#### Functions
```bash theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GMI_API_KEY" \
-d '{
"model": "XiaomiMiMo/MiMo-V2.5-Pro",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
```
```python theme={null}
from openai import OpenAI
endpoint = "https://api.gmi-serving.com/v1/"
model_name = "XiaomiMiMo/MiMo-V2.5-Pro"
api_key = ""
client = OpenAI(
base_url=f"{endpoint}",
api_key=api_key
)
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
}
]
messages = [{"role": "user", "content": "What's the weather like in Boston today?"}]
completion = client.chat.completions.create(
model=model_name,
messages=messages,
tools=tools,
tool_choice="auto"
)
print(completion)
```
#### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "XiaomiMiMo/MiMo-V2.5-Pro",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_completion_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# GLM 4.5 Air (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/zai-org-glm-4-5-air-fp8
**GLM-4.5-Air-FP8** is a **lightweight**, **high-efficiency**, and **FP8-quantized** variant of the GLM-4.5-Air model, designed to achieve **ultra-fast inference** with **minimal memory footprint**.
**Model ID**
```bash theme={null}
zai-org/GLM-4.5-Air-FP8
```
## API Usage
The **zai-org/GLM-4.5-Air-FP8** model can be accessed via the same REST API used by other GLM models.\
It supports both **general chat** and **function-calling** workflows.
## API Examples
### Generate a Chat Completion
Use the **chat/completions** endpoint for conversational generation.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "zai-org/GLM-4.5-Air-FP8",
"messages": [
{"role": "system", "content": "You are a concise and efficient AI assistant."},
{"role": "user", "content": "Summarize the key benefits of FP8 quantization in AI models."}
],
"temperature": 0.6,
"max_tokens": 600
}'
```
##### Function Calling
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "zai-org/GLM-4.5-Air-FP8",
"temperature": 0,
"max_tokens": 120,
"tools": [
{
"type": "function",
"function": {
"name": "get_weather_forecast",
"description": "Retrieve weather forecast information for a given city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Name of the target city, e.g., San Francisco."
}
},
"required": ["city"]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What’s the current weather in San Francisco?"
}
]
}'
```
#### Python SDK Usage
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "zai-org/GLM-4.5-Air-FP8",
"messages": [
{"role": "system", "content": "You are a concise and efficient AI assistant."},
{"role": "user", "content": "Summarize the key benefits of FP8 quantization in AI models."}
],
"temperature": 0.6,
"max_tokens": 600
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# GLM 4.5 (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/zai-org-glm-4-5-fp8
**GLM-4.5-FP8** is a high-efficiency variant of the GLM-4.5 large language model, designed for **ultra-fast inference** and **reduced memory consumption** through FP8 quantization.
**Model ID**
```bash theme={null}
zai-org/GLM-4.5-FP8
```
## API Usage
You can access **GLM-4.5-FP8** through the same RESTful Chat Completions API used by other GLM models.\
The following examples demonstrate text generation and function-calling usage.
## API Examples
### Generate a Chat Completion
Use the chat completion endpoint to generate responses from GLM-4.5-FP8.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "zai-org/GLM-4.5-FP8",
"messages": [
{"role": "system", "content": "You are a knowledgeable AI assistant."},
{"role": "user", "content": "Explain the concept of quantum entanglement in simple terms."}
],
"temperature": 0.7,
"max_tokens": 800
}'
```
##### Function Calling
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "zai-org/GLM-4.5-FP8",
"tools": [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Retrieve the current stock price for a given company.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol of the company, e.g., AAPL or TSLA."
}
},
"required": ["symbol"]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the current price of Apple stock?"
}
]
}'
```
#### Python SDK Usage
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "zai-org/GLM-4.5-FP8",
"messages": [
{"role": "system", "content": "You are a knowledgeable AI assistant."},
{"role": "user", "content": "Explain the concept of quantum entanglement in simple terms."}
],
"temperature": 0.7,
"max_tokens": 800
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# GLM 4.7 (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/zai-org-glm-4-7-fp8
DeepSeek-V3.2 is a powerful large language model that has been distilled from larger models while maintaining strong performance.
**Model ID**
```bash theme={null}
zai-org/GLM-4.7-FP8
```
## API Usage
You can interact with the DeepSeek R1 0528 model through various programming languages and methods. Below are examples showing how to use the model's API.
## API Examples
Generate a model response using the chat endpoint of DeepSeek-V3.2.
### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}'
```
### Python
```python theme={null}
import requests
import json
url = "https://api.gmi-serving.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer *************"
}
payload = {
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [
{"role": "system", "content": "You are a helpful AI assistant"},
{"role": "user", "content": "List 3 countries and their capitals."}
],
"temperature": 0,
"max_tokens": 500
}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
```
# GLM 5.1 (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/zai-org-glm-5-1-fp8
GLM-5.1 is a cutting-edge large language model developed for high-performance natural language understanding and generation.
**Model ID**
```bash theme={null}
zai-org/GLM-5.1-FP8
```
## API Usage
You can interact with the GLM-5.1 model through multiple programming environments using a RESTful API. The examples below demonstrate how to call the model for text generation and function-calling tasks.
## API Examples
### Generate a Chat Completion
Use the chat completion endpoint to generate responses from the GLM-5 model.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "zai-org/GLM-5.1-FP8",
"messages": [
{"role": "system", "content": "You are a knowledgeable AI assistant."},
{"role": "user", "content": "Explain the concept of quantum entanglement in simple terms."}
],
"temperature": 0.7,
"max_tokens": 800
}'
```
#### Function Call Example
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "zai-org/GLM-5.1-FP8",
"tools": [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Retrieve the current stock price for a given company.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol of the company, e.g., AAPL or TSLA."
}
},
"required": [
"symbol"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the current price of Apple stock?"
}
]
}'
```
# GLM 5 (FP8)
Source: https://docs.gmicloud.ai/model-quickstarts/text/zai-org-glm-5-fp8
GLM-5 is a cutting-edge large language model developed for high-performance natural language understanding and generation.
**Model ID**
```bash theme={null}
zai-org/GLM-5-FP8
```
## API Usage
You can interact with the GLM-5 model through multiple programming environments using a RESTful API. The examples below demonstrate how to call the model for text generation and function-calling tasks.
## API Examples
### Generate a Chat Completion
Use the chat completion endpoint to generate responses from the GLM-5 model.
#### Shell
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"model": "zai-org/GLM-5-FP8",
"messages": [
{"role": "system", "content": "You are a knowledgeable AI assistant."},
{"role": "user", "content": "Explain the concept of quantum entanglement in simple terms."}
],
"temperature": 0.7,
"max_tokens": 800
}'
```
#### Function Call Example
```bash theme={null}
curl --request POST \
--url https://api.gmi-serving.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer *************' \
--data '{
"temperature": 0,
"max_tokens": 100,
"model": "zai-org/GLM-5-FP8",
"tools": [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Retrieve the current stock price for a given company.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol of the company, e.g., AAPL or TSLA."
}
},
"required": [
"symbol"
]
}
}
}
],
"messages": [
{
"role": "user",
"content": "What is the current price of Apple stock?"
}
]
}'
```
# Video Models
Source: https://docs.gmicloud.ai/model-quickstarts/video/about
Video models cover text-to-video, image-to-video, reference-guided generation, editing, avatars, and post-processing. Check each model for supported resolutions, durations, and control inputs (first/last frame, reference video, etc.).
## Technical topics
* **Text-to-video (T2V)**, Generate clips from natural language prompts.
* **Image-to-video (I2V)**, Animate a still image with motion and optional audio.
* **Frame & reference control**, First/last frame, keyframes, or reference video for consistency.
* **Editing & VFX**, Erasing, background removal, resolution upscaling, retakes, lip-sync.
* **Avatars & characters**, Talking-head and identity-aware pipelines where offered.
* **Duration & aspect**, Max length, FPS, and aspect ratios are model-specific; see per-model docs.
## Model API & platform docs
For serving modes (serverless vs dedicated), billing, rate limits, task polling, and unified API patterns, see the [**API Reference**](/api-reference/introduction) section.
# bria-video-eraser
Source: https://docs.gmicloud.ai/model-quickstarts/video/bria-video-eraser
API usage guide for bria-video-eraser.
**Model ID**
```bash theme={null}
bria-video-eraser
```
**Calling method:** async
# Bria Video Eraser API Usage Guide
## Overview
**Bria Video Eraser** is Bria's latest-generation video editing model. It utilizes an input video and a mask video to selectively erase elements from the scene while maintaining visual consistency.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
````
Authorization: Bearer YOUR_API_KEY```
---
## Submit Video Generation Request
### Base URL
````
[https://console.gmicloud.ai](https://console.gmicloud.ai)
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
````
### Request Format (cURL)
```bash
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bria-video-eraser",
"payload": {
"video": "https://example.com/input_video.mp4",
"mask": "https://example.com/mask_video.mp4",
"preserve_audio": true,
"output_container_and_codec": "mp4_h264"
}
}'
````
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------- | --------- | ------------------------- |
| video | string | Yes | Input video URL. | - | Max 5s; >750p downscaled. |
| mask | string | Yes | Input mask URL. | - | Must be \< 5 seconds. |
| preserve\_audio | boolean | No | Whether to keep audio or not. | true | - |
| output\_container\_and\_codec | enum | No | Format of the output video. | mp4\_h264 | See below. |
**Output Options:** mp4\_h264, mp4\_h265, webm\_vp9, mov\_h265, mov\_proresks, mkv\_h264, mkv\_h265, mkv\_vp9, gif.
***
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "bria",
"model": "bria-video-eraser",
"status": "success",
"payload": {
"video": "https://example.com/input_video.mp4",
"mask": "https://example.com/mask_video.mp4",
"preserve_audio": true
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video generation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
***
# bria-video-increase-resolution
Source: https://docs.gmicloud.ai/model-quickstarts/video/bria-video-increase-resolution
API usage guide for bria-video-increase-resolution.
**Model ID**
```bash theme={null}
bria-video-increase-resolution
```
**Calling method:** async
# Bria Video Increase Resolution API Usage Guide
## Overview
**Bria Video Increase Resolution** is Bria's new video editing model to increase resolution. It utilizes an input video to upscale it by a specified factor (2x or 4x) while maintaining visual quality. Increases to 8K at max.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
***
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bria-video-increase-resolution",
"payload": {
"video": "https://example.com/input_video.mp4",
"preserve_audio": true,
"desired_increase": "2",
"output_container_and_codec": "mp4_h264"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| video | string | Yes | Input video URL. | - | Max 60s; Maximum result resolution: 7680x4320 (8K). If the selected increase results in a greater resolution, the request will not be processed. |
| preserve\_audio | boolean | No | Whether to keep audio or not. | true | - |
| desired\_increase | enum | No | Integer scale factor for upscaling. | "2" | "2" or "4" |
| output\_container\_and\_codec | enum | No | Format of the output video. | mp4\_h264 | See below. |
**Output Options:** mp4\_h264, mp4\_h265, webm\_vp9, mov\_h265, mov\_proresks, mkv\_h264, mkv\_h265, mkv\_vp9, gif.
***
## Check Request Status
### Endpoint
`GET /api/v1/ie/requestqueue/apikey/requests/{request_id}`
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "bria",
"model": "bria-video-increase-resolution",
"status": "success",
"payload": {
"video": "https://example.com/input_video.mp4",
"preserve_audio": true,
"desired_increase": "2"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video generation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
***
# bria-video-remove-background
Source: https://docs.gmicloud.ai/model-quickstarts/video/bria-video-remove-background
API usage guide for bria-video-remove-background.
**Model ID**
```bash theme={null}
bria-video-remove-background
```
**Calling method:** async
# Bria Video Remove Background API Usage Guide
## Overview
**Bria Video Remove Background** is Bria's new video editing model used to remove backgrounds. It utilizes an input video to isolate the subject by removing or replacing the background with a specified color or transparency.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
***
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bria-video-remove-background",
"payload": {
"video": "https://example.com/input_video.mp4",
"preserve_audio": true,
"background_color": "Transparent",
"output_container_and_codec": "webm_vp9"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------- | ----------- | ------------------------------------------ |
| video | string | Yes | Input video URL. | - | Max 60s; Max resolution 16000x16000 (16K). |
| preserve\_audio | boolean | No | Whether to keep audio or not. | true | - |
| background\_color | enum | No | Color for the background. | Transparent | See below. |
| output\_container\_and\_codec | enum | No | Format of the output video. | mp4\_h264 | See below. |
**Background Color Options:** Transparent, Black, White, Gray, Red, Green, Blue, Yellow, Cyan, Magenta, Orange.
**Output Options:** mp4\_h264, mp4\_h265, webm\_vp9, mov\_h265, mov\_proresks, mkv\_h264, mkv\_h265, mkv\_vp9, gif.
***
## Important: Transparent Background Requirement
If `background_color` is set to `Transparent`, the selected `output_container_and_codec` must support alpha channels.
### Output Transparency Support by Preset:
**Alpha Supported:**
* webm\_vp9
* mov\_proresks
* mkv\_vp9
* mkv\_raw
* gif
* mov\_h265 (when encoded as HEVC with Alpha)
**Alpha Not Supported:**
* mp4\_h264
* mp4\_h265
* mkv\_h264
* mkv\_h265
* avi\_h264
***
## Check Request Status
### Endpoint
`GET /api/v1/ie/requestqueue/apikey/requests/{request_id}`
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "bria",
"model": "bria-video-remove-background",
"status": "success",
"payload": {
"video": "https://example.com/input_video.mp4",
"preserve_audio": true,
"background_color": "Transparent"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.webm"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video generation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
***
# gemini-omni-1.1-flash-preview
Source: https://docs.gmicloud.ai/model-quickstarts/video/gemini-omni-1-1-flash-preview
API usage guide for gemini-omni-1.1-flash-preview.
**Model ID**
```bash theme={null}
gemini-omni-1.1-flash-preview
```
**Calling method:** async
# Gemini Omni Flash API Usage Guide
## Overview
**Gemini Omni Flash** generates 720p video from a text prompt, optionally guided by reference images and/or an input video. It produces 24 FPS video at durations of 3-10 seconds (1-second increments) in 16:9 or 9:16.
All generated videos are marked with invisible **SynthID** watermarking and **C2PA** content credentials.
## Authentication
Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit a request
### Endpoint
```
POST https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests
```
### Example
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.1-flash-preview",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": ["https://example.com/reference1.jpg"],
"durationSeconds": 5,
"aspectRatio": "16:9"
}
}'
```
### Request parameters
Parameter names match our Veo video models, so a single integration works across both.
| Parameter | Type | Required | Description |
| ----------------- | ------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate. |
| `reference_image` | string/array | No | Up to 5 reference image URLs (image-to-video). |
| `video` | string/array | No | Up to 3 input video URLs (MP4). A single video is edited (output follows its length); multiple videos are combined by the model. |
| `durationSeconds` | integer / `"auto"` | No | Video length in seconds, 3-10, or `auto` (default) to let the model decide. Use `auto` when a `video` input is provided — the edited output follows the source clip's length. |
| `aspectRatio` | enum | No | `auto` (default), `16:9`, or `9:16`. With a `video` input, `auto` follows the source clip. |
| `resolution` | enum | No | `720p` (only supported value in this preview). |
## Check status
```bash theme={null}
curl "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/{request_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
```
On success, `outcome.media_urls[0].url` is the generated video (720p mp4), with `thumbnail_image_url` alongside.
## Pricing
* **Video output (720p): \$0.10 per second** of generated video — same rate with or without audio, and independent of aspect ratio.
* Input references (text/image/video) are billed at \$1.50 per 1M tokens (Gemini tokenization).
## Capabilities & limits (public preview)
* Duration: 3-10s (1s increments) or `auto`; Resolution: 720p; Aspect ratio: `auto`, 16:9 or 9:16
* With a `video` input the output follows the source clip — set `durationSeconds` to `auto` (or omit it); an explicit duration that doesn't match the source is rejected by the model
* Up to 5 reference images; input video up to 10s
* Not yet supported: audio references, last-frame guidance, scene extension
# gemini-omni-flash-preview
Source: https://docs.gmicloud.ai/model-quickstarts/video/gemini-omni-flash-preview
API usage guide for gemini-omni-flash-preview.
**Model ID**
```bash theme={null}
gemini-omni-flash-preview
```
**Calling method:** async
# Gemini Omni Flash API Usage Guide
## Overview
**Gemini Omni Flash** generates 720p video from a text prompt, optionally guided by reference images and/or an input video. It produces 24 FPS video at durations of 3-10 seconds (1-second increments) in 16:9 or 9:16.
All generated videos are marked with invisible **SynthID** watermarking and **C2PA** content credentials.
## Authentication
Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit a request
### Endpoint
```
POST https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests
```
### Example
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": ["https://example.com/reference1.jpg"],
"durationSeconds": 5,
"aspectRatio": "16:9"
}
}'
```
### Request parameters
Parameter names match our Veo video models, so a single integration works across both.
| Parameter | Type | Required | Description |
| ----------------- | ------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate. |
| `reference_image` | string/array | No | Up to 5 reference image URLs (image-to-video). |
| `video` | string/array | No | Up to 3 input video URLs (MP4). A single video is edited (output follows its length); multiple videos are combined by the model. |
| `durationSeconds` | integer / `"auto"` | No | Video length in seconds, 3-10, or `auto` (default) to let the model decide. Use `auto` when a `video` input is provided — the edited output follows the source clip's length. |
| `aspectRatio` | enum | No | `auto` (default), `16:9`, or `9:16`. With a `video` input, `auto` follows the source clip. |
| `resolution` | enum | No | `720p` (only supported value in this preview). |
## Check status
```bash theme={null}
curl "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/{request_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
```
On success, `outcome.media_urls[0].url` is the generated video (720p mp4), with `thumbnail_image_url` alongside.
## Pricing
* **Video output (720p): \$0.10 per second** of generated video — same rate with or without audio, and independent of aspect ratio.
* Input references (text/image/video) are billed at \$1.50 per 1M tokens (Gemini tokenization).
## Capabilities & limits (public preview)
* Duration: 3-10s (1s increments) or `auto`; Resolution: 720p; Aspect ratio: `auto`, 16:9 or 9:16
* With a `video` input the output follows the source clip — set `durationSeconds` to `auto` (or omit it); an explicit duration that doesn't match the source is rejected by the model
* Up to 5 reference images; input video up to 10s
* Not yet supported: audio references, last-frame guidance, scene extension
# GMI-Halloween-HauntedYou-Workflow
Source: https://docs.gmicloud.ai/model-quickstarts/video/gmi-halloween-hauntedyou-workflow
API usage guide for GMI-Halloween-HauntedYou-Workflow.
**Model ID**
```bash theme={null}
GMI-Halloween-HauntedYou-Workflow
```
**Calling method:** async
HauntedYou is an interactive AI workflow designed by GMI Lab for this year's Halloween.Upload your portrait and let the system craft a short cinematic clip of your haunted self — transforming you into a ghostly cinematic character while keeping your true identity intact.
# GMI-MiniMeTalks-Workflow
Source: https://docs.gmicloud.ai/model-quickstarts/video/gmi-minimetalks-workflow
API usage guide for GMI-MiniMeTalks-Workflow.
**Model ID**
```bash theme={null}
GMI-MiniMeTalks-Workflow
```
**Calling method:** async
MiniMeTalks combines Seedream 4.0 and WAN 2.5 in a two-stage AI pipeline to create lively, music-synchronized mini avatars. In Step 1, Seedream 4.0 builds a cohesive 3D “bottle world,” blending uploaded portraits into a realistic miniature avatar with consistent lighting and perspective. In Step 2, WAN 2.5 animates the avatar with lip-sync, expressive motion, and rhythm-based choreography, matching the tone and beat of the selected music.The workflow supports customizable duration, cinematic 768 P output, and is ideal for personalized digital performances, creative storytelling, and social sharing.
# happyhorse-1.0-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/happyhorse-1-0-i2v
API usage guide for happyhorse-1.0-i2v.
**Model ID**
```bash theme={null}
happyhorse-1.0-i2v
```
**Calling method:** async
# happyhorse1.0-i2v API Usage Guide
## Overview
**happyhorse1.0-i2v** converts images into videos with improved visual fidelity, temporal consistency, and flexible media inputs. It supports first frame, last frame, driving audio, and first clip as media references, with continuous duration from 2 to 15 seconds.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\": \"happyhorse1.0-i2v\", \"payload\": {\"prompt\": \"Slow cinematic pan around a futuristic tower at sunset with neon accents\", \"first_frame\": \"https://example.com/start-frame.jpg\", \"last_frame\": \"https://example.com/end-frame.jpg\", \"negative_prompt\": \"blurry, low quality, distorted\", \"resolution\": \"1080P\", \"duration\": 10, \"prompt_extend\": true, \"watermark\": false, \"seed\": 987654321}}"
```
## Request Parameters
| Parameter | Type | Required | Description |
| ---------------- | --------- | -------- | ---------------------------------- |
| prompt | string | No | Text prompt guiding motion/styling |
| negative\_prompt | string | No | What to avoid in the video |
| first\_frame | image URL | No | Starting frame |
| last\_frame | image URL | No | Ending frame |
| resolution | enum | No | 720P or 1080P |
| duration | int | No | 2–15 seconds |
| seed | int | No | Reproducibility seed |
## Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "happyhorse1.0-i2v",
"status": "queued"
}
```
# happyhorse-1.0-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/happyhorse-1-0-t2v
API usage guide for happyhorse-1.0-t2v.
**Model ID**
```bash theme={null}
happyhorse-1.0-t2v
```
**Calling method:** async
# happyhorse1.0-t2v API Usage Guide
## Overview
**happyhorse1.0-t2v** is Wan AI's latest text-to-video model with improved visual quality and more flexible controls. It supports separate resolution and aspect-ratio selection, continuous duration from 2 to 15 seconds, and optional audio-driven generation.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
## Submit Video Generation Request
POST /api/v1/ie/requestqueue/apikey/requests
```json theme={null}
{
"model": "happyhorse1.0-t2v",
"payload": {
"prompt": "A drone shot gliding over a misty forest at sunrise, golden light breaking through the canopy",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"ratio": "16:9",
"duration": 10,
"audio_url": null,
"prompt_extend": true,
"watermark": false,
"seed": 12345
}
}
```
# happyhorse-1.1-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/happyhorse-1-1-i2v
API usage guide for happyhorse-1.1-i2v.
**Model ID**
```bash theme={null}
happyhorse-1.1-i2v
```
**Calling method:** async
# happyhorse-1.1-i2v API Usage Guide
## Overview
**happyhorse-1.1-i2v** animates a first-frame image into a video guided by a text prompt. HappyHorse 1.1 delivers improved motion dynamics, facial texture quality, and native audio-video co-generation over 1.0.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "happyhorse-1.1-i2v", "payload": {"prompt": "Slow cinematic pan, wind moving through the hair", "first_frame": "https://example.com/portrait.jpg", "resolution": "1080P", "duration": 5, "watermark": false}}'
```
## Request Parameters
| Parameter | Type | Required | Description |
| ---------------- | --------- | -------- | ------------------------------------- |
| first\_frame | image URL | Yes | Starting frame image |
| prompt | string | No | Text prompt guiding motion/styling |
| negative\_prompt | string | No | What to avoid in the video |
| resolution | enum | No | 720P or 1080P (affects pricing) |
| duration | int | No | 3–15 seconds (affects pricing) |
| watermark | boolean | No | Add AI Generated watermark |
| seed | int | No | Reproducibility seed \[0, 2147483647] |
## Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "happyhorse-1.1-i2v",
"status": "queued"
}
```
# happyhorse-1.1-r2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/happyhorse-1-1-r2v
API usage guide for happyhorse-1.1-r2v.
**Model ID**
```bash theme={null}
happyhorse-1.1-r2v
```
**Calling method:** async
# happyhorse-1.1-r2v API Usage Guide
## Overview
**happyhorse-1.1-r2v** generates videos from multiple reference images and a text prompt. HappyHorse 1.1 significantly improves multi-character reference consistency: subjects from different images can be freely combined without cross-contamination, and storyboard / 3x3 grid references are faithfully preserved.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "happyhorse-1.1-r2v", "payload": {"prompt": "Two characters walk through a sunlit forest path, wide shot", "reference_image": ["https://example.com/char-a.jpg", "https://example.com/char-b.jpg"], "resolution": "1080P", "duration": 5, "watermark": false}}'
```
## Request Parameters
| Parameter | Type | Required | Description |
| ---------------- | ----------------- | -------- | ------------------------------------------------------------ |
| prompt | string | Yes | Text prompt describing the scene and motion (max 1500 chars) |
| reference\_image | image URL / array | Yes | 1–5 reference images for appearance guidance |
| negative\_prompt | string | No | What to avoid in the video |
| resolution | enum | No | 720P or 1080P (affects pricing) |
| duration | int | No | 3–15 seconds (affects pricing) |
| prompt\_extend | boolean | No | Enable LLM prompt rewriting |
| audio | boolean | No | Enable native audio generation |
| watermark | boolean | No | Add AI Generated watermark |
| seed | int | No | Reproducibility seed \[0, 2147483647] |
## Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "happyhorse-1.1-r2v",
"status": "queued"
}
```
# happyhorse-1.1-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/happyhorse-1-1-t2v
API usage guide for happyhorse-1.1-t2v.
**Model ID**
```bash theme={null}
happyhorse-1.1-t2v
```
**Calling method:** async
# happyhorse-1.1-t2v API Usage Guide
## Overview
**happyhorse-1.1-t2v** generates videos from text prompts with significantly improved motion expressiveness, multi-shot scene scheduling, and native audio synchronization over HappyHorse 1.0.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "happyhorse-1.1-t2v", "payload": {"prompt": "A horse galloping through a golden meadow at sunset, cinematic wide shot", "resolution": "1080P", "duration": 5, "prompt_extend": true, "watermark": false}}'
```
## Request Parameters
| Parameter | Type | Required | Description |
| ---------------- | ------- | -------- | ------------------------------------- |
| prompt | string | Yes | Text prompt (max 1500 chars) |
| negative\_prompt | string | No | What to avoid in the video |
| resolution | enum | No | 720P or 1080P (affects pricing) |
| duration | int | No | 3–15 seconds (affects pricing) |
| prompt\_extend | boolean | No | Enable LLM prompt rewriting |
| audio | boolean | No | Enable native audio generation |
| watermark | boolean | No | Add AI Generated watermark |
| seed | int | No | Reproducibility seed \[0, 2147483647] |
## Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "happyhorse-1.1-t2v",
"status": "queued"
}
```
# heygen-avatar-4
Source: https://docs.gmicloud.ai/model-quickstarts/video/heygen-avatar-4
API usage guide for heygen-avatar-4.
**Model ID**
```bash theme={null}
heygen-avatar-4
```
**Calling method:** async
# HeyGen Avatar IV (v4) API Documentation
HeyGen Avatar IV generates highly realistic, lip-synced avatar videos from a text script. Supports HeyGen's built-in avatars and custom talking photos.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: $0.05/sec (Photo Avatar), $0.0667/sec (Digital Twin / Studio)
* Resolution: up to 1080p (4K for enterprise)
* Features: Lip-sync, Talking Photo, Multi-segment
## 3. Character Modes
### Built-in HeyGen Avatar
Provide `avatar_id` (obtain from HeyGen avatar library).
### Talking Photo (Custom Image)
Provide `talking_photo_id` (upload image via HeyGen API to get an ID). The model animates the face to lip-sync with the voice.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :----------------------------------------------------- | :------ | :------- | :------------------------------------------------------------------- |
| avatar\_id | string | No\* | HeyGen built-in avatar ID. Required if not using talking\_photo\_id. |
| talking\_photo\_id | string | No\* | Uploaded photo ID for talking photo mode. |
| avatar\_style | string | No | Avatar layout: normal, circle, closeUp. Default: normal. |
| input\_text | string | Yes | Script for the avatar to speak (max 5000 chars). |
| voice\_id | string | Yes | Voice ID (obtain from HeyGen voice library). |
| speed | float | No | Speaking speed 0.5–1.5. Default: 1.0. |
| pitch | integer | No | Voice pitch -50 to 50. Default: 0. |
| emotion | string | No | Excited, Friendly, Serious, Soothing, Broadcaster. |
| duration | integer | No | Estimated duration in seconds (used for price estimate only). |
| caption | boolean | No | Enable auto-generated captions. Default: false. |
| \*One of avatar\_id or talking\_photo\_id is required. | | | |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "heygen-avatar-4",
"payload": {
"avatar_id": "Abigail_expressive_2024112501",
"avatar_style": "normal",
"input_text": "Hello! Welcome to GMI Cloud.",
"voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54",
"speed": 1.0
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed.
* processing: Video generation is in progress.
* success: Generation completed. URL available in outcome.media\_urls.
* failed: Video generation failed.
# Hunyuan1.5
Source: https://docs.gmicloud.ai/model-quickstarts/video/hunyuan1-5
API usage guide for Hunyuan1.5.
**Model ID**
```bash theme={null}
Hunyuan1.5
```
**Calling method:** async
A fast video generation model with Hunyuan 1.5
# kling-2.6-motion-control
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-2-6-motion-control
API usage guide for kling-2.6-motion-control.
**Model ID**
```bash theme={null}
kling-2.6-motion-control
```
**Calling method:** async
# kling-2.6-motion-control API Usage Guide
## Overview
**kling-2.6-motion-control** transfers motion from a reference video to a static character image. Upload a character image and a motion reference video (3-30 seconds), and the model will animate the character following the motion in the video.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Motion Control Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-2.6-motion-control",
"payload": {
"image_url": "https://example.com/character.jpg",
"video_url": "https://example.com/motion-reference.mp4",
"character_orientation": "video",
"mode": "std",
"keep_original_sound": "yes",
"prompt": "cinematic lighting, professional studio background"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------- | ------ | -------- | ----------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `image_url` | string | Yes | Character/reference image URL. The character should be clearly visible. | - | JPG/PNG/WebP, max 10MB |
| `video_url` | string | Yes | Motion reference video URL containing the motion to transfer. | - | MP4/MOV/MKV, 3-30 seconds, max 100MB |
| `character_orientation` | string | Yes | How character orientation is determined. | video | Options: video (up to 30s), image (up to \~10s) |
| `mode` | string | Yes | Quality mode affecting price. | std | Options: std, pro |
| `keep_original_sound` | string | No | Whether to preserve audio from reference video. | yes | Options: yes, no |
| `prompt` | string | No | Text prompt for background, lighting, style. Does NOT control motion. | - | Max 2500 chars |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "kling-2.6-motion-control",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response (Success)
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "kling-2.6-motion-control",
"status": "success",
"payload": {
"image_url": "https://example.com/character.jpg",
"video_url": "https://example.com/motion-reference.mp4",
"character_orientation": "video",
"mode": "std"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
## Pricing
* **Standard (std)**: \$0.07 per second
* **Pro**: \$0.112 per second
Example: 10-second video in Standard mode = \$0.70
# kling-3.0-turbo-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-3-0-turbo-i2v
API usage guide for kling-3.0-turbo-i2v.
**Model ID**
```bash theme={null}
kling-3.0-turbo-i2v
```
**Calling method:** async
# Kling I2V (v3.0 Turbo) API Documentation
Kling v3.0 Turbo is a high-speed image-to-video foundation model. It animates a single source image into cinematic video, with an optional text prompt to direct the motion and selectable resolution (720p/1080p), optimized for fast "turbo" generation.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: $0.112 per second ($0.14 per second at 1080p)
* Duration: 3-15 seconds
* Resolution: 720p (default) or 1080p
* Features: Turbo (accelerated) generation, single-image animation, optional prompt-guided motion
## 3. Generation Logic
### Image-to-Video Synthesis
Provide a starting frame image and the model animates it into video. A text prompt is optional. Supplying one lets you steer the motion and action; omitting it lets the model infer plausible motion from the image alone.
### Resolution
Output defaults to 720p at the base rate. Selecting 1080p increases the per-second rate to \$0.14. The output framing follows the dimensions of the source image.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :----------- | :----- | :------- | :-------------------------------------------------------------------- |
| first\_frame | image | Yes | The starting frame image for video generation (Base64 string or URL). |
| prompt | string | No | Describe the motion and action (up to 2500 chars). |
| resolution | enum | No | Output resolution: '720p' or '1080p'. Default: "720p". |
| duration | enum | No | Total duration in seconds (3-15). Default: "5". |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0-turbo-i2v",
"payload": {
"first_frame": "https://example.com/start_frame.jpg",
"prompt": "A cinematic shot of a dragon taking flight from a cliffside.",
"resolution": "720p",
"duration": "5"
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Video generation is currently in progress.
* success: Generation completed. URLs available in outcome.media\_urls.
* failed: Video generation failed. Check logs for details.
# kling-3.0-turbo-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-3-0-turbo-t2v
API usage guide for kling-3.0-turbo-t2v.
**Model ID**
```bash theme={null}
kling-3.0-turbo-t2v
```
**Calling method:** async
# Kling T2V (v3.0 Turbo) API Documentation
Kling v3.0 Turbo is a high-speed text-to-video foundation model. It generates cinematic video directly from a text prompt, with selectable resolution (720p/1080p) and aspect ratio, optimized for fast "turbo" generation.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: $0.112 per second ($0.14 per second at 1080p)
* Duration: 3-15 seconds
* Resolution: 720p (default) or 1080p
* Aspect Ratios: 16:9, 9:16, 1:1
* Features: Turbo (accelerated) generation, pure text-to-video
## 3. Generation Logic
### Text-to-Video Synthesis
Provide a descriptive prompt and the model synthesizes the subject, scene, and motion entirely from text. No source image is required.
### Resolution & Aspect Ratio
Output defaults to 720p at the base rate. Selecting 1080p increases the per-second rate to \$0.14. The aspect ratio controls the framing of the output (16:9 landscape, 9:16 vertical, 1:1 square).
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :------------ | :----- | :------- | :---------------------------------------------------------------- |
| prompt | string | Yes | Describe the motion and action (up to 2500 chars). |
| resolution | enum | No | Output resolution: '720p' or '1080p'. Default: "720p". |
| aspect\_ratio | enum | No | Framing of the output: '16:9', '9:16', or '1:1'. Default: "16:9". |
| duration | enum | No | Total duration in seconds (3-15). Default: "5". |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0-turbo-t2v",
"payload": {
"prompt": "A cinematic shot of a dragon taking flight from a cliffside.",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": "5"
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Video generation is currently in progress.
* success: Generation completed. URLs available in outcome.media\_urls.
* failed: Video generation failed. Check logs for details.
# kling-3-motion-control
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-3-motion-control
API usage guide for kling-3-motion-control.
**Model ID**
```bash theme={null}
kling-3-motion-control
```
**Calling method:** async
# kling-3-motion-control API Usage Guide
## Overview
**kling-3-motion-control** transfers motion from a reference video to a static character image. Upload a character image and a motion reference video (3-30 seconds), and the model will animate the character following the motion in the video.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Motion Control Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3-motion-control",
"payload": {
"image_url": "https://example.com/character.jpg",
"video_url": "https://example.com/motion-reference.mp4",
"character_orientation": "video",
"mode": "std",
"keep_original_sound": "yes",
"prompt": "cinematic lighting, professional studio background"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------- | ------ | -------- | ----------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `image_url` | string | Yes | Character/reference image URL. The character should be clearly visible. | - | JPG/PNG/WebP, max 10MB |
| `video_url` | string | Yes | Motion reference video URL containing the motion to transfer. | - | MP4/MOV/MKV, 3-30 seconds, max 100MB |
| `character_orientation` | string | Yes | How character orientation is determined. | video | Options: video (up to 30s), image (up to \~10s) |
| `mode` | string | Yes | Quality mode affecting price. | std | Options: std, pro |
| `keep_original_sound` | string | No | Whether to preserve audio from reference video. | yes | Options: yes, no |
| `prompt` | string | No | Text prompt for background, lighting, style. Does NOT control motion. | - | Max 2500 chars |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "kling-3-motion-control",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response (Success)
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "kling-3-motion-control",
"status": "success",
"payload": {
"image_url": "https://example.com/character.jpg",
"video_url": "https://example.com/motion-reference.mp4",
"character_orientation": "video",
"mode": "std"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
## Pricing
* **Standard (std)**: \$0.126 per second
* **Pro**: \$0.168 per second
Example: 10-second video in Standard mode = \$1.26
# kling-identify-face
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-identify-face
API usage guide for kling-identify-face.
**Model ID**
```bash theme={null}
kling-identify-face
```
**Calling method:** async
## Kling Identify Face
Detects every distinct human face that appears in a source video and returns:
* A `session_id` that uniquely identifies this analysis pass
* A `face_data` array describing each detected face (`face_id`, `face_image`, `start_time`, `end_time` in milliseconds)
### Typical Workflow
1. Submit a video via `kling-identify-face` and inspect the returned `face_data` to pick which face(s) to lip-sync.
2. Submit a follow-up `kling-lip-sync` request using the returned `session_id` plus a `face_choose` array referencing the desired `face_id`s.
This is a synchronous endpoint — the result is returned in the `outcome.data` field of the SubmitRequest response, no callback polling required.
### Video Requirements
The video must be reachable via a public URL. Refer to Kling's official docs for supported codecs, resolution, and duration limits.
# Kling-Image2Video-V1.6-Pro
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-image2video-v1-6-pro
API usage guide for Kling-Image2Video-V1.6-Pro.
**Model ID**
```bash theme={null}
Kling-Image2Video-V1.6-Pro
```
**Calling method:** async
# Kling-Image2Video-V1.6-Pro API Usage Guide
## Overview
**Kling-Image2Video-V1.6-Pro** is Kling AI's professional-grade image-to-video model that transforms static images into smooth, dynamic video clips with improved realism and consistency. With 195% overall improvement compared to previous versions, this model delivers enhanced prompt adherence and more consistent, dynamic visuals for professional creators.
### Key Features:
* **Professional Mode**: Advanced features for creators needing more control and detail
* **195% Performance Improvement**: Significant upgrade over previous versions
* **Enhanced Prompt Adherence**: More accurate and meaningful results
* **Consistent Dynamic Visuals**: Improved realism and creativity in generated videos
* **Flexible Duration**: Generate videos from 5 to 10 seconds
* **Multiple Input Formats**: Support for Base64 encoding and image URLs
* **Creative Control**: CFG scale parameter for fine-tuning generation
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://api.example.com/api/v1/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Kling-Image2Video-V1.6-Pro",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/reference-image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | ------ | -------- | ---------------------------------------- | ------- | ----------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be "Kling-Image2Video-V1.6-Pro" |
| `payload.prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `payload.image` | string | Yes | Reference image (Base64 or URL) | - | Max 10MB, min 300px dimensions, aspect ratio 1:2.5 to 2.5:1 |
| `payload.duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `payload.negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `payload.cfg_scale` | float | No | Generation flexibility control | 0.5 | 0.0 to 1.0 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Image2Video-V1.6-Pro",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Image2Video-V1.6-Pro",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/reference-image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=Kling-Image2Video-V1.6-Pro
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests?model_id=Kling-Image2Video-V1.6-Pro" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Kling-Image2Video-V1.6-Pro
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Kling-Image2Video-V1.6-Pro" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V1.6-Pro",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.098 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.098 = $0.49
* 10-second video: 10 × $0.098 = $0.98
## Video Specifications
* **Duration**: 5-10 seconds
* **Input Image Requirements**:
* Formats: JPG, JPEG, PNG
* Max file size: 10MB
* Min dimensions: 300px width/height
* Aspect ratio: 1:2.5 to 2.5:1
* **Quality**: Professional-grade with improved realism and consistency
* **Format**: MP4 video with thumbnail image
## Tips for Better Results
1. **High-Quality Reference Images**: Use clear, high-resolution images for optimal results
2. **Appropriate Image Dimensions**: Ensure images meet minimum size requirements (300px+)
3. **Clear, Descriptive Prompts**: Use specific descriptions to guide the video generation
4. **Motion Description**: Include details about desired movement and dynamics
5. **CFG Scale Tuning**:
* Lower values (0.3-0.5): More creative, less prompt adherence
* Higher values (0.7-1.0): More prompt adherence, less creative variation
6. **Negative Prompts**: Specify unwanted elements to improve quality
7. **Duration Planning**: Use 5 seconds for quick concepts, 10 seconds for more complex scenes
8. **Professional Workflow**: Leverage the Pro mode for advanced control and detail
## Parameter Examples
### Professional Nature Scene
```json theme={null}
{
"prompt": "A majestic eagle soaring gracefully through mountain peaks with dynamic camera movement",
"image": "https://example.com/eagle-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted, static",
"cfg_scale": 0.8
}
```
### Dynamic Urban Animation
```json theme={null}
{
"prompt": "A bustling city street with flowing traffic, moving crowds, and dynamic lighting",
"image": "https://example.com/city-image.jpg",
"duration": "8",
"negative_prompt": "empty, quiet, static, dark",
"cfg_scale": 0.7
}
```
### Artistic Professional Animation
```json theme={null}
{
"prompt": "A flowing river with gentle ripples, moving reflections, and cinematic camera angles",
"image": "https://example.com/river-image.jpg",
"duration": "5",
"negative_prompt": "rough, turbulent, dark, low quality",
"cfg_scale": 0.9
}
```
# Kling-Image2Video-V1.6-Standard
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-image2video-v1-6-standard
API usage guide for Kling-Image2Video-V1.6-Standard.
**Model ID**
```bash theme={null}
Kling-Image2Video-V1.6-Standard
```
**Calling method:** async
# Kling-Image2Video-V1.6-Standard API Usage Guide
## Overview
**Kling-Image2Video-V1.6-Standard** is Kling AI's fast, user-friendly image-to-video model that generates smooth and natural short clips from a single image with solid prompt guideline adherence. Designed for effortless, fast image-to-video creation, this model offers an accessible entry point into image-driven video generation.
### Key Features:
* **Fast Processing**: Quick and efficient video generation for rapid prototyping
* **User-Friendly**: Simple interface designed for ease of use
* **Smooth Motion**: Natural camera movement and fluid animation from single images
* **Solid Prompt Adherence**: Converts text prompts into coherent animations with reliable consistency
* **Flexible Duration**: Generate videos from 5 to 10 seconds
* **Multiple Input Formats**: Support for Base64 encoding and image URLs
* **Creative Control**: CFG scale parameter for fine-tuning generation
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://api.example.com/api/v1/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Kling-Image2Video-V1.6-Standard",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/reference-image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | ------ | -------- | ---------------------------------------- | ------- | ----------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be "Kling-Image2Video-V1.6-Standard" |
| `payload.prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `payload.image` | string | Yes | Reference image (Base64 or URL) | - | Max 10MB, min 300px dimensions, aspect ratio 1:2.5 to 2.5:1 |
| `payload.duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `payload.negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `payload.cfg_scale` | float | No | Generation flexibility control | 0.5 | 0.0 to 1.0 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Image2Video-V1.6-Standard",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Image2Video-V1.6-Standard",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/reference-image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=Kling-Image2Video-V1.6-Standard
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests?model_id=Kling-Image2Video-V1.6-Standard" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Kling-Image2Video-V1.6-Standard
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Kling-Image2Video-V1.6-Standard" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V1.6-Standard",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.056 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.056 = $0.28
* 10-second video: 10 × $0.056 = $0.56
## Video Specifications
* **Duration**: 5-10 seconds
* **Resolution**: Up to 720p
* **Input Image Requirements**:
* Formats: JPG, JPEG, PNG
* Max file size: 10MB
* Min dimensions: 300px width/height
* Aspect ratio: 1:2.5 to 2.5:1
* **Quality**: Smooth motion with natural camera movement
* **Format**: MP4 video with thumbnail image
## Tips for Better Results
1. **High-Quality Reference Images**: Use clear, high-resolution images for better video quality
2. **Appropriate Image Dimensions**: Ensure images meet minimum size requirements (300px+)
3. **Clear, Descriptive Prompts**: Use specific descriptions to guide the video generation
4. **Motion Description**: Include details about desired movement and dynamics
5. **CFG Scale Tuning**:
* Lower values (0.3-0.5): More creative, less prompt adherence
* Higher values (0.7-1.0): More prompt adherence, less creative variation
6. **Negative Prompts**: Specify unwanted elements to improve quality
7. **Duration Planning**: Use 5 seconds for quick concepts, 10 seconds for more complex scenes
8. **Quick Prototyping**: Ideal for rapid concept testing and social media content
## Parameter Examples
### Quick Social Media Loop
```json theme={null}
{
"prompt": "A serene lake with gentle ripples and flowing water",
"image": "https://example.com/lake-image.jpg",
"duration": "5",
"negative_prompt": "rough, turbulent, dark",
"cfg_scale": 0.6
}
```
### Simple Nature Animation
```json theme={null}
{
"prompt": "A flower gently swaying in the breeze with natural movement",
"image": "https://example.com/flower-image.jpg",
"duration": "5",
"negative_prompt": "static, rigid, artificial",
"cfg_scale": 0.5
}
```
### Basic Concept Preview
```json theme={null}
{
"prompt": "A mountain landscape with subtle camera movement and atmospheric effects",
"image": "https://example.com/mountain-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
```
# Kling-Image2Video-V2.1-Master
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-image2video-v2-1-master
API usage guide for Kling-Image2Video-V2.1-Master.
**Model ID**
```bash theme={null}
Kling-Image2Video-V2.1-Master
```
**Calling method:** async
# Kling-Image2Video-V2.1-Master API Usage Guide
## Overview
The **Kling-Image2Video-V2.1-Master** model generates videos from reference images using state-of-the-art generative AI methods. This model is perfect for creating dynamic video content from static images with enhanced dynamics, aesthetics, and prompt adherence.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Kling-Image2Video-V2.1-Master",
"payload": {
"prompt": "Three dogs are racing bicycles on a street",
"image": "https://storage.googleapis.com/gmi-video-assests/thumbnail_images/dogs.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------ | -------- | ------------------------------------------------------------ | ------- | ------------------------------------------------------------------------ |
| `prompt` | string | No | Positive text prompt describing the desired video | "" | Max 2500 characters |
| `image` | string | Yes | Reference image (this needs to be a publicly accessible URL) | - | JPG/JPEG/PNG, max 10MB, min 300px dimensions, aspect ratio 1.25 to 2.5:1 |
| `duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `cfg_scale` | float | No | Flexibility control (0.0-1.0) | 0.5 | Higher = less flexibility, stronger prompt adherence |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Image2Video-V2.1-Master",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Image2Video-V2.1-Master",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A beautiful sunset over the ocean with gentle waves",
"image": "https://example.com/sunset-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/requests?model_id=Kling-Image2Video-V2.1-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Image2Video-V2.1-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Master",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
**Pricing Type**: Video length based pricing\
**Price**: \$0.28 per second\
**Unit**: Second
**Example cost calculation**:
* 5-second video: 5 × $0.28 = $1.40
* 10-second video: 10 × $0.28 = $2.80
***
## Image Requirements
**Formats**: JPG, JPEG, PNG\
**Max Size**: 10MB\
**Min Dimensions**: 300px width and height\
**Aspect Ratio**: Between 1:2.5 and 2.5:1
***
## Tips for Better Results
1. **Clear Prompts**\
Use descriptive, specific prompts for better video quality.
2. **High-Quality Images**\
Use sharp, well-lit reference images.
3. **Appropriate CFG Scale**
* *Lower values (0.3\~0.5)*: More creative, less prompt adherence
* *Higher values (0.7\~1.0)*: More faithful to prompt, less creative
4. **Negative Prompts**\
Specify unwanted elements (e.g., "blurry, distorted faces").
# Kling-Image2Video-V2.1-Pro
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-image2video-v2-1-pro
API usage guide for Kling-Image2Video-V2.1-Pro.
**Model ID**
```bash theme={null}
Kling-Image2Video-V2.1-Pro
```
**Calling method:** async
# Kling-Image2Video-V2.1-Pro API Usage Guide
# Overview
The **Kling-Image2Video-V2.1-Pro** model generates videos from reference images using state-of-the-art generative AI methods. This model is perfect for creating dynamic video content from static images with enhanced dynamics, aesthetics, and prompt adherence.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Kling-Image2Video-V2.1-Pro",
"payload": {
"prompt": "A beautiful sunset over the ocean with gentle waves",
"image": "https://example.com/sunset-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------ | -------- | ---------------------------------------- | ------- | ------------------------------------------------------------------------- |
| `prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `image` | string | Yes | Reference image (URL) | - | JPG/JPEG/PNG, max 10MB, min 300px dimensions, aspect ratio 1:2.5 to 2.5:1 |
| `duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `cfg.scale` | float | No | Generation flexibility control | 0.5 | Higher = less flexibility, stronger prompt adherence |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Image2Video-V2.1-Pro",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Image2Video-V2.1-Pro",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A beautiful sunset over the ocean with gentle waves",
"image": "https://example.com/sunset-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/requests?model_id=Kling-Image2Video-V2.1-Pro
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Image2Video-V2.1-Pro' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Pro
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Pro' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Pro",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.098 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.098 = $0.49
* 10-second video: 10 × $0.098 = $0.98
## Image Requirements
* **Formats**: JPG, JPEG, PNG
* **Max Size**: 10MB
* **Min Dimensions**: 300px width and height
* **Aspect Ratio**: Between 1:2.5 and 2.5:1
***
## Tips for Better Results
1. **Clear Prompts**: Use descriptive, specific prompts for better video quality
2. **High-Quality Images**: Use sharp, well-lit reference images
3. **Appropriate CFG Scale**:
* Lower values (0.3–0.5): More creative, less prompt adherence
* Higher values (0.7–1.0): More faithful to prompt, less creative
4. **Negative Prompts**: Specify what you don’t want to avoid common issues
# Kling-Image2Video-V2.1-Standard
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-image2video-v2-1-standard
API usage guide for Kling-Image2Video-V2.1-Standard.
**Model ID**
```bash theme={null}
Kling-Image2Video-V2.1-Standard
```
**Calling method:** async
# Kling-Image2Video-V2.1-Standard API Usage Guide
## Overview
The **Kling-Image2Video-V2.1-Standard** model generates videos from reference images using state-of-the-art generative AI methods. This model is perfect for creating dynamic video content from static images with enhanced dynamics, aesthetics, and prompt adherence.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Kling-Image2Video-V2.1-Standard",
"payload": {
"prompt": "A beautiful sunset over the ocean with gentle waves",
"image": "https://example.com/sunset-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------ | -------- | ---------------------------------------- | ------- | ------------------------------------------------------------------------- |
| `prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `image` | string | Yes | Reference image (Base64 or URL) | - | JPG/JPEG/PNG, max 10MB, min 300px dimensions, aspect ratio 1:2.5 to 2.5:1 |
| `duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `cfg_scale` | float | No | Generation flexibility control | 0.5 | Higher = less flexibility, stronger prompt adherence |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Image2Video-V2.1-Standard",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Image2Video-V2.1-Standard",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A beautiful sunset over the ocean with gentle waves",
"image": "https://example.com/sunset-image.jpg",
"duration": "10",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/requests?model_id=Kling-Image2Video-V2.1-Standard
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Image2Video-V2.1-Standard' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Standard
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Standard' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Standard",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.056 per second
* **Unit**: Second
**Example cost calculation**:
* 5-second video: 5 × $0.056 = $0.28
* 10-second video: 10 × $0.056 = $0.56
## Image Requirements
* **Formats**: JPG, JPEG, PNG
* **Max Size**: 10MB
* **Min Dimensions**: 300px width and height
* **Aspect Ratio**: Between 1:2.5 and 2.5:1
## Tips for Better Results
1. **Clear Prompts**: Use descriptive, specific prompts for better video quality
2. **High-Quality Images**: Use sharp, well-lit reference images
3. **Appropriate CFG Scale**:
* Lower values (0.3–0.5): More creative, less prompt adherence
* Higher values (0.7–1.0): More faithful to prompt, less creative
4. **Negative Prompts**: Specify what you don’t want to avoid common issues
# Kling-Image2Video-V2-Master
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-image2video-v2-master
API usage guide for Kling-Image2Video-V2-Master.
**Model ID**
```bash theme={null}
Kling-Image2Video-V2-Master
```
**Calling method:** async
# Kling-Image2Video-V2-Master API Usage Guide
## Overview
**Kling-Image2Video-V2-Master** is Kling AI’s advanced image-to-video generation model, capable of transforming static images into dynamic, imaginative videos.\
With greatly improved dynamics, aesthetics, and prompt adherence, this model brings your images to life with smooth motion and creative storytelling.
## Key Features
* **Image-to-Video Generation**: Transform static images into dynamic videos
* **Enhanced Dynamics**: Greatly improved motion and movement quality
* **Superior Aesthetics**: Advanced visual quality and artistic rendering
* **Strong Prompt Adherence**: Better interpretation of text prompts
* **Flexible Duration**: Generate videos from 5 to 10 seconds
* **Multiple Input Formats**: Support for Base64 encoding and image URLs
* **Creative Control**: CFG scale parameter for fine-tuning generation
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Kling-Image2Video-V2-Master",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/reference-image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------ | -------- | ---------------------------------------- | ------- | ----------------------------------------------------------- |
| `prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `image` | string | Yes | Reference image (URL) | - | Max 10MB, min 300px dimensions, aspect ratio 1:2.5 to 2.5:1 |
| `duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `cfg.scale` | float | No | Generation flexibility control | 0.5 | 0.0 to 1.0 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Image2Video-V2-Master",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Image2Video-V2-Master",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/reference-image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Image2Video-V2-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Image2Video-V2-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2-Master",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.28 per second
* **Unit**: Second
**Example cost calculation**:
* 5-second video: 5 × $0.28 = $1.40
* 10-second video: 10 × $0.28 = $2.80
## Video Specifications
* **Duration**: 5–10 seconds
* **Input Image Requirements**:
* Formats: JPG, JPEG, PNG
* Max file size: 10MB
* Min dimensions: 300px width/height
* Aspect ratio: 1:2.5 to 2.5:1
* **Quality**: High-definition with improved dynamics and aesthetics
## Tips for Better Results
1. **High-Quality Reference Images**: Use clear, high-resolution images for better video quality
2. **Appropriate Image Dimensions**: Ensure images meet minimum size requirements (300px+)
3. **Clear, Descriptive Prompts**: Use specific descriptions to guide the video generation
4. **Motion Description**: Include details about desired movement and dynamics
5. **CFG Scale Tuning**:
* Lower values (0.3–0.5): More creative, less prompt adherence
* Higher values (0.7–1.0): More prompt adherence, less creative variation
6. **Negative Prompts**: Specify unwanted elements to improve quality
7. **Duration Planning**: Use 5 seconds for quick concepts, 10 seconds for more complex scenes
# kling-lip-sync
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-lip-sync
API usage guide for kling-lip-sync.
**Model ID**
```bash theme={null}
kling-lip-sync
```
**Calling method:** async
## Kling Advanced Lip Sync
Generates a new video where the selected face(s) in the source video are lip-synced to a user-supplied audio clip. Builds on top of the `kling-identify-face` analysis pass.
### Typical Workflow
1. Run `kling-identify-face` on your source video to obtain a `session_id` and the list of detected `face_id`s.
2. Submit `kling-lip-sync` with that `session_id` and a `face_choose` array selecting which face(s) to drive and the audio to use.
### face\_choose Schema
`face_choose` is forwarded verbatim to Kling and must follow Kling's native format:
```
[
{
"face_id": "0",
"sound_file": "https://.../audio.mp3",
"sound_insert_time": 1000,
"sound_start_time": 0,
"sound_end_time": 3000,
"sound_volume": 2,
"original_audio_volume": 2
}
]
```
* `face_id` (string): one of the IDs returned by `kling-identify-face`.
* `sound_file` (URL): the audio clip to lip-sync to.
* `sound_insert_time` (ms): position in the source video where the audio is inserted.
* `sound_start_time` / `sound_end_time` (ms): clip window inside the audio file.
* `sound_volume` / `original_audio_volume`: relative mix levels.
Multiple entries may be provided to lip-sync more than one face. See [https://kling.ai/document-api/apiReference/model/lipSync](https://kling.ai/document-api/apiReference/model/lipSync) for the authoritative field reference.
This endpoint is asynchronous — final video URLs arrive via the standard Kling callback once generation completes.
# kling-o1-edit-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-o1-edit-video
API usage guide for kling-o1-edit-video.
**Model ID**
```bash theme={null}
kling-o1-edit-video
```
**Calling method:** async
Will be updated
# kling-o1-flfv
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-o1-flfv
API usage guide for kling-o1-flfv.
**Model ID**
```bash theme={null}
kling-o1-flfv
```
**Calling method:** async
Will be updated
# kling-o1-image-to-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-o1-image-to-video
API usage guide for kling-o1-image-to-video.
**Model ID**
```bash theme={null}
kling-o1-image-to-video
```
**Calling method:** async
will be updated
# kling-o1-reference-to-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-o1-reference-to-video
API usage guide for kling-o1-reference-to-video.
**Model ID**
```bash theme={null}
kling-o1-reference-to-video
```
**Calling method:** async
Will be updated
# Kling-Text2Video-V1.6-Standard
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-text2video-v1-6-standard
API usage guide for Kling-Text2Video-V1.6-Standard.
**Model ID**
```bash theme={null}
Kling-Text2Video-V1.6-Standard
```
**Calling method:** async
# Kling-Text2Video-V1.6-Standard API Usage Guide
## Overview
**Kling-Text2Video-V1.6-Standard** transforms text prompts into short, high-quality video clips with smooth motion and strong prompt alignment. This model is optimized for speed and accessibility, making text-to-video generation efficient for rapid concept prototyping and creative experiments.
### Key Features:
* **High Quality**: Generates videos up to 720p resolution with smooth motion
* **Fast Processing**: Optimized for standard use cases with quick turnaround
* **Strong Prompt Alignment**: Improved fidelity in interpreting and visualizing input prompts
* **Flexible Duration**: Generate videos from 5 to 10 seconds
* **Multiple Aspect Ratios**: Support for landscape (16:9), portrait (9:16), and square (1:1) formats
* **Creative Control**: CFG scale parameter for fine-tuning generation flexibility
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://api.example.com/api/v1/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Kling-Text2Video-V1.6-Standard",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.7
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | ------ | -------- | ---------------------------------------- | ------- | ---------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be "Kling-Text2Video-V1.6-Standard" |
| `payload.prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `payload.negative_prompt` | string | No | Text describing what to avoid | "" | Max 2500 characters |
| `payload.duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `payload.aspect_ratio` | string | No | Video aspect ratio | "16:9" | Options: "16:9", "9:16", "1:1" |
| `payload.cfg_scale` | float | No | Generation flexibility control | 0.5 | 0.0 to 1.0 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Text2Video-V1.6-Standard",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Text2Video-V1.6-Standard",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.7
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=Kling-Text2Video-V1.6-Standard
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests?model_id=Kling-Text2Video-V1.6-Standard" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Kling-Text2Video-V1.6-Standard
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Kling-Text2Video-V1.6-Standard" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Text2Video-V1.6-Standard",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.056 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.056 = $0.28
* 10-second video: 10 × $0.056 = $0.56
## Video Specifications
* **Duration**: 5-10 seconds
* **Aspect Ratios**:
* Landscape: 16:9 (default)
* Portrait: 9:16
* Square: 1:1
* **Quality**: Up to 720p resolution with smooth motion
* **Format**: MP4 video with thumbnail image
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Motion Description**: Include details about camera movement and scene dynamics
3. **Negative Prompts**: Use negative prompts to avoid unwanted elements like blur or distortion
4. **CFG Scale Tuning**:
* Lower values (0.3-0.5): More creative, less prompt adherence
* Higher values (0.7-1.0): More prompt adherence, less creative variation
5. **Aspect Ratio Selection**: Choose based on intended use (16:9 for landscape, 9:16 for mobile, 1:1 for social media)
6. **Duration Planning**: Use 5 seconds for quick concepts, 10 seconds for more complex scenes
# Kling-Text2Video-V2.1-Master
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-text2video-v2-1-master
API usage guide for Kling-Text2Video-V2.1-Master.
**Model ID**
```bash theme={null}
Kling-Text2Video-V2.1-Master
```
**Calling method:** async
# Kling-Text2Video-V2.1-Master API Usage Guide
## Overview
Kling-Text2Video-V2.1-Master is a state-of-the-art text-to-video generation model that creates imaginative videos from text descriptions. This model represents a significant improvement in dynamics, aesthetics, and prompt adherence, making it ideal for creating high-quality video content from simple text prompts.
## Key Features
* **Enhanced Dynamics**: Greatly improved motion and fluidity in generated videos
* **Superior Aesthetics**: Better visual quality and artistic style
* **Strong Prompt Adherence**: More accurate interpretation of text descriptions
* **Multiple Aspect Ratios**: Support for 16:9, 9:16, and 1:1 aspect ratios
* **Flexible Duration**: 5 or 10-second video generation options
## Use Cases
* Creative video content generation
* Marketing and advertising videos
* Educational content creation
* Entertainment and storytelling
* Prototype and concept visualization
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header.
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Kling-Text2Video-V2.1-Master",
"payload": {
"prompt": "A majestic dragon soaring through a mystical forest with glowing eyes and flowing scales",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------ | -------- | ---------------------------------------- | -------- | ------------------------------------ |
| `prompt` | string | No | Text prompt describing the desired video | `""` | Max 2500 characters |
| `negative_prompt` | string | No | Text describing what to avoid | `""` | Max 2500 characters |
| `duration` | string | No | Video length in seconds | `"5"` | Options: `"5"`, `"10"` |
| `aspect_ratio` | string | No | Video aspect ratio | `"16:9"` | Options: `"16:9"`, `"9:16"`, `"1:1"` |
| `cfg_scale` | float | No | Flexibility in video generation | `0.5` | `0.0` to `1.0`, step `0.1` |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Text2Video-V2.1-Master",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Text2Video-V2.1-Master",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic dragon soaring through a mystical forest with glowing eyes and flowing scales",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Text2Video-V2.1-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Text2Video-V2.1-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Kling-Image2Video-V2.1-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Kling-Text2Video-V2.1-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Text2Video-V2.1-Master",
"other-model-1",
"other-model-2"
]
}
```
# Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Use negative prompts to avoid unwanted elements like "blurry, low quality, distorted"
3. **Aspect Ratio Selection**: Choose the right aspect ratio for your target platform
* **16:9**: Landscape videos, cinematic content
* **9:16**: Mobile viewing, social media stories
* **1:1**: Social media posts, Instagram
4. **CFG Scale Tuning**: Adjust the flexibility of video generation
* **0.0–0.3**: High flexibility, creative variations
* **0.4–0.6**: Balanced creativity and prompt adherence (recommended)
* **0.7–1.0**: Strong prompt adherence, less creative variation
5. **Duration Considerations**: Choose appropriate video length
* **5 seconds**: Quick content, social media, previews
* **10 seconds**: More detailed scenes, longer narratives
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.28 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.28 = $1.40
* 10-second video: 10 × $0.28 = $2.80
## Video Specifications
* **Duration**: 5 or 10 seconds
* **Aspect Ratios**: 16:9, 9:16, 1:1
* **Quality**: High definition with excellent detail and clarity
* **Format**: MP4 video with thumbnail image
# Kling-Text2Video-V2-Master
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-text2video-v2-master
API usage guide for Kling-Text2Video-V2-Master.
**Model ID**
```bash theme={null}
Kling-Text2Video-V2-Master
```
**Calling method:** async
# Kling-Text2Video-V2-Master API Usage Guide
## Overview
**Kling-Text2Video-V2-Master** is a powerful text-to-video generation model that creates imaginative videos from text descriptions.\
This model offers excellent dynamics, aesthetics, and prompt adherence, making it ideal for creating high-quality video content from simple text prompts.
## Key Features
* **Enhanced Dynamics**: Improved motion and fluidity in generated videos
* **Superior Aesthetics**: High visual quality and artistic style
* **Strong Prompt Adherence**: Accurate interpretation of text descriptions
* **Multiple Aspect Ratios**: Support for 16:9, 9:16, and 1:1 aspect ratios
* **Flexible Duration**: 5 or 10-second video generation options
## Use Cases
* Creative video content generation
* Marketing and advertising videos
* Educational content creation
* Entertainment and storytelling
* Prototype and concept visualization
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Kling-Text2Video-V2-Master",
"payload": {
"prompt": "A majestic dragon soaring through a mystical forest with glowing eyes and flowing scales",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | ------ | -------- | ---------------------------------------- | ------- | ------------------------------------ |
| `model` | string | Yes | Model identifier | - | Must be “Kling-Text2Video-V2-Master” |
| `payload.prompt` | string | No | Text prompt describing the desired video | "" | Max 2500 characters |
| `payload.image` | string | Yes | Reference image (Base64 or URL) | - | Max 2500 characters |
| `payload.duration` | string | No | Video length in seconds | "5" | Options: "5", "10" |
| `payload.negative_prompt` | string | No | Text describing what to avoid | "" | “16:9”, “9:16”, “1:1” |
| `payload.cfg.scale` | float | No | Generation flexibility control | 0.5 | 0.0 to 1.0, step 0.1 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Kling-Text2Video-V2-Master",
"status": "queued",
"created_at": 1749618001,
"updated_at": 1749618001,
"queued_at": 1749618001
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Kling-Text2Video-V2-Master",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic dragon soaring through a mystical forest with glowing eyes and flowing scales",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1749618001,
"updated_at": 1749618008,
"queued_at": 1749618001
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/requests?model_id=Kling-Text2Video-V2-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Kling-Text2Video-V2-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Kling-Text2Video-V2-Master
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Kling-Text2Video-V2-Master' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Text2Video-V2-Master",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.28 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.28 = $1.40
* 10-second video: 10 × $0.28 = $2.80
## Video Specifications
* **Duration**: 5–10 seconds
* **Aspect Ratios**:
* Landscape: 16:9 (default)
* Portrait: 9:16
* Square: 1:1
* **Quality**: High-definition with excellent detail and clarity
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Use negative prompts to avoid unwanted elements like “blurry, low quality, distorted”
3. **Aspect Ratio Selection**: Choose the right aspect ratio for your target platform
4. **CFG Scale Tuning**: Adjust the flexibility of video generation
5. **Duration Considerations**: Choose appropriate video length
# kling-v2-5-turbo
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-v2-5-turbo
API usage guide for kling-v2-5-turbo.
**Model ID**
```bash theme={null}
kling-v2-5-turbo
```
**Calling method:** async
# kling-v2-5-turbo API Usage Guide
## Overview
**kling-v2-5-turbo** is Kling AI's latest-generation video-synthesis model, capable of transforming text descriptions or reference images into polished, high-fidelity video clips with cinematic camera work, smooth realistic motion, and consistent visual style. It features stronger prompt understanding that can handle complex, multi-step instructions and causal relationships, improved physics-aware dynamics and stable camera control for fluid, natural action scenes, and greatly enhanced style/lighting/texture consistency across frames.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v2-5-turbo",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"mode": "pro",
"cfg_scale": 0.5
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | -------------------- |
| `prompt` | string | Yes | Positive text prompt. Cannot exceed 2500 characters. | - | Required |
| `image` | string | No | Support image URL (.jpg/.jpeg/.png). The image file size cannot exceed 10MB, andthe width and height dimensions of the image shall not be less than 300px, and the aspect ratio of the image should be between 1:2.5 \~ 2.5:1. | - | Max 1 image. |
| `duration` | string | No | Video Length, unit: s (seconds). | "5" | Options: "5", "10" |
| `negative_prompt` | string | No | Negative text prompt. Cannot exceed 2500 characters. | "" | Optional |
| `mode` | string | No | - | "pro" | Options: "pro" |
| `cfg_scale` | float | No | Flexibility in video generation; The higher the value, the lower the model's degree of flexibility, and the stronger the relevance to the user's prompt. | 0.5 | 0 to 1 with step 0.1 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "kling-v2-5-turbo",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "kling-v2-5-turbo",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/image.jpg",
"duration": "5",
"negative_prompt": "blurry, low quality, distorted",
"mode": "pro",
"cfg_scale": 0.5
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=kling-v2-5-turbo
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=kling-v2-5-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/kling-v2-5-turbo
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/kling-v2-5-turbo" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"kling-v2-5-turbo",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: \$0.07 per second
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Specify unwanted elements to improve quality
# kling-v2-6
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-v2-6
API usage guide for kling-v2-6.
**Model ID**
```bash theme={null}
kling-v2-6
```
**Calling method:** async
# kling-v2-6 API Usage Guide
## Overview
**kling-v2-6** is Kling AI's latest-generation video-synthesis model, capable of transforming text descriptions or reference images into polished, high-fidelity video clips with cinematic camera work, smooth realistic motion, and consistent visual style. It features stronger prompt understanding that can handle complex, multi-step instructions and causal relationships, improved physics-aware dynamics and stable camera control for fluid, natural action scenes, and greatly enhanced style/lighting/texture consistency across frames.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST ""https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests"" \
-H ""Authorization: Bearer YOUR_API_KEY"" \
-H ""Content-Type: application/json"" \
-d '{
""model"": ""kling-v2-6"",
""payload"": {
""prompt"": ""A majestic eagle soaring through a mountain landscape at sunset"",
""sound"": ""on"",
""image"": ""https://example.com/image.jpg"",
""duration"": ""5"",
""mode"": ""pro"",
""cfg_scale"": 0.5
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ---------------- |
| `prompt` | string | Yes | Text prompt. Cannot exceed 2500 characters. | - | Required |
| `image` | string | No | Support image URL (.jpg/.jpeg/.png). The image file size cannot exceed 10MB, andthe width and height dimensions of the image shall not be less than 300px, and the aspect ratio of the image should be between 1:2.5 \~ 2.5:1. | - | Max 1 image. |
| `sound` | string | No | Whether to have sound or not | no | Options: yes, no |
| `duration` | string | No | Video Length, unit: s (seconds). | 5 | Options: 5, 10 |
| `mode` | string | No | - | pro | Options: pro |
| `cfg_scale` | string | No | Flexibility in video generation; The higher the value, the lower the model's degree of flexibility, and the stronger the relevance to the user's prompt. | 0.5 | Min: 0, Max: 1 |
### Response
```json theme={null}
{
""request_id"": ""550e8400-e29b-41d4-a716-446655440000"",
""model"": ""kling-v2-5-turbo"",
""status"": ""queued"",
""created_at"": 1750442925,
""updated_at"": 1750442925,
""queued_at"": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET ""https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000"" \
-H ""Authorization: Bearer YOUR_API_KEY""
```
### Response
```json theme={null}
{
""request_id"": ""550e8400-e29b-41d4-a716-446655440000"",
""org_id"": ""your-org-id"",
""model"": ""kling-v2-6"",
""status"": ""success"",
""is_public"": false,
""payload"": {
""prompt"": ""A majestic eagle soaring through a mountain landscape at sunset"",
""sound"": ""on"",
""image"": ""https://example.com/image.jpg"",
""duration"": ""5"",
""mode"": ""pro"",
""cfg_scale"": 0.5,
},
""outcome"": {
""video_url"": ""https://storage.googleapis.com/bucket/generated-video.mp4"",
""thumbnail_image_url"": ""https://storage.googleapis.com/bucket/thumbnail.jpg""
},
""created_at"": 1750442925,
""updated_at"": 1750442930,
""queued_at"": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=kling-v2-6
```
### Example
```bash theme={null}
curl -X GET ""https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=kling-v2-6"" \
-H ""Authorization: Bearer YOUR_API_KEY""
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: $0.07 per second (no audio), $0.14 per second (with audio)
# kling-v3-image-to-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-v3-image-to-video
API usage guide for kling-v3-image-to-video.
**Model ID**
```bash theme={null}
kling-v3-image-to-video
```
**Calling method:** async
# Kling I2V (v3.0) API Documentation
Kling v3.0 is a professional-grade image-to-video foundation model. It specializes in cinematic 720p generation with native audio-visual synchronization and precise "start-to-end" frame guidance.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: $0.084 (std, per second, no audio); $0.126 (std, per second, with audio); $0.168 (pro, per second, with audio); $0.42 (4k, per second)
* Duration: 3-15 seconds
* Resolution: Cinematic 720p/1080p/4k
* Features: Native Audio, Start/End Frame Guidance
## 3. Motion & Guidance Logic
### Start & End Frame Guidance
You can provide both a starting image (image) and an ending image (image\_tail) to dictate the exact transition of the video. The model intelligently interpolates the motion between these two specific visual states.
### Native Audio Generation
When 'sound' is enabled, the model generates synchronized ambient sound or dialogue based on the prompt. This increases the per-second rate to \$0.252.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :--------------- | :----- | :------- | :-------------------------------------------------------- |
| prompt | string | Yes | Describe the motion and action (up to 2500 chars). |
| image | string | Yes | The starting frame image (Base64 string or URL). |
| image\_tail | string | No | Optional end frame image to guide the video's conclusion. |
| negative\_prompt | string | No | Elements to exclude (e.g., 'blurry, distorted'). |
| duration | enum | No | Total duration in seconds (3-15). Default: "5". |
| sound | enum | No | Generate synchronized audio. Options: "on", "off". |
| mode | enum | No | Resolution of output video. Options: "std", "pro", "4k". |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "[https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests](https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests)" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-image-to-video",
"payload": {
"image": "[https://example.com/start_frame.jpg](https://example.com/start_frame.jpg)",
"image_tail": "[https://example.com/end_frame.jpg](https://example.com/end_frame.jpg)",
"prompt": "A cinematic shot of a dragon taking flight from a cliffside.",
"duration": "5",
"sound": "on"
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Video generation is currently in progress.
* success: Generation completed. URLs available in outcome.media\_urls.
* failed: Video generation failed. Check logs for details.
# kling-v3-text-to-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/kling-v3-text-to-video
API usage guide for kling-v3-text-to-video.
**Model ID**
```bash theme={null}
kling-v3-text-to-video
```
**Calling method:** async
# Kling T2V (v3.0) API Documentation
Kling v3.0 is a professional-grade text-to-video foundation model. It specializes in cinematic 720p generation with native audio-visual synchronization, driven purely by text prompts.
## 1. API Endpoint & Authentication
Base URL: [https://console.gmicloud.ai](https://console.gmicloud.ai)
Endpoint: POST /api/v1/ie/requestqueue/apikey/requests
Header:
Authorization: Bearer YOUR\_API\_KEY
Content-Type: application/json
## 2. Model Specifications
* Pricing: $0.084 (std, per second, no audio); $0.126 (std, per second, with audio); $0.168 (pro, per second, with audio); $0.42 (4k, per second)
* Duration: 3-15 seconds
* Resolution: Cinematic 720p/1080p/4k
* Features: Native Audio Generation
## 3. Native Audio Generation
When 'sound' is enabled, the model generates synchronized ambient sound or dialogue based on the prompt. This increases the per-second rate to \$0.252.
## 4. Parameter Reference
| Parameter | Type | Required | Description |
| :--------------- | :----- | :------- | :------------------------------------------------------- |
| prompt | string | Yes | Describe the scene and motion (up to 2500 chars). |
| negative\_prompt | string | No | Elements to exclude (e.g., 'blurry, distorted'). |
| duration | enum | No | Total duration in seconds (3-15). Default: "5". |
| sound | enum | No | Generate synchronized audio. Options: "on", "off". |
| mode | enum | No | Resolution of output video. Options: "std", "pro", "4k". |
## 5. Example CURL Request
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-text-to-video",
"payload": {
"prompt": "A cinematic shot of a dragon taking flight from a cliffside at sunset.",
"duration": "5",
"sound": "on"
}
}'
```
## 6. Checking Request Status
```bash theme={null}
Endpoint: GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
* queued: Request is waiting to be processed by GPU resources.
* processing: Video generation is currently in progress.
* success: Generation completed. URLs available in outcome.media\_urls.
* failed: Video generation failed. Check logs for details.
# LTX-2
Source: https://docs.gmicloud.ai/model-quickstarts/video/ltx-2
API usage guide for LTX-2.
**Model ID**
```bash theme={null}
LTX-2
```
**Calling method:** async
LTX-2 is an audio-video generation diffusion model. This config exposes a video generation interface (text-to-video with optional image conditioning).
# LTX-2-KeyframeInterpolation
Source: https://docs.gmicloud.ai/model-quickstarts/video/ltx-2-keyframeinterpolation
API usage guide for LTX-2-KeyframeInterpolation.
**Model ID**
```bash theme={null}
LTX-2-KeyframeInterpolation
```
**Calling method:** async
LTX-2-KeyframeInterpolation is an audio-video generation diffusion model. This config exposes a video generation interface (text-to-video with optional image conditioning).
# LTX2-Distilled
Source: https://docs.gmicloud.ai/model-quickstarts/video/ltx2-distilled
API usage guide for LTX2-Distilled.
**Model ID**
```bash theme={null}
LTX2-Distilled
```
**Calling method:** async
LTX2-Distilled is an audio-video generation diffusion model. This config exposes a video generation interface (text-to-video with optional image conditioning).
# LTX2-ICLoRA
Source: https://docs.gmicloud.ai/model-quickstarts/video/ltx2-iclora
API usage guide for LTX2-ICLoRA.
**Model ID**
```bash theme={null}
LTX2-ICLoRA
```
**Calling method:** async
LTX2-ICLoRA is an audio-video generation diffusion model. This config exposes a video generation interface (text-to-video with optional image conditioning).
# LTX2-Ti2VidTwoStages
Source: https://docs.gmicloud.ai/model-quickstarts/video/ltx2-ti2vidtwostages
API usage guide for LTX2-Ti2VidTwoStages.
**Model ID**
```bash theme={null}
LTX2-Ti2VidTwoStages
```
**Calling method:** async
LTX2-Ti2VidTwoStages is an audio-video generation diffusion model. This config exposes a video generation interface (text-to-video with optional image conditioning).
# luma-ray-3-2-edit
Source: https://docs.gmicloud.ai/model-quickstarts/video/luma-ray-3-2-edit
API usage guide for luma-ray-3-2-edit.
**Model ID**
```bash theme={null}
luma-ray-3-2-edit
```
**Calling method:** async
# Luma Ray 3.2 — Edit
## Overview
`luma-ray-3-2-edit` uses Luma's `ray-3.2` model to re-render an existing video under a new text prompt — video-to-video editing via the Luma Agents API. The output keeps the **source video's aspect ratio** and follows its **duration**. How much the edit preserves the source is set under edit conditioning (`edit_auto_controls` or `edit_strength`).
Reference the source video two ways:
* **By generation id** (recommended): `source_generation_id`, the id of a prior completed video generation owned by the same API key. Create one with **Luma Ray 3.2 — Generate**.
* **Inline (advanced)**: base64 `source_data` plus `source_media_type`. The source must be 30 seconds or shorter. Direct source-URL ingestion is not yet supported.
## Authentication
```
Authorization: Bearer YOUR_API_KEY
```
## Submit
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "luma-ray-3-2-edit",
"payload": {
"prompt": "Transform the scene into moonlit 35mm film footage",
"source_generation_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"resolution": "720p",
"edit_auto_controls": true
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default |
| ---------------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | ------- |
| `model` | string | Yes | Must be `luma-ray-3-2-edit` | - |
| `prompt` | string | Yes | How to transform the source video, 1–6000 characters | - |
| `source_generation_id` | string | Yes\* | Id of a prior completed video owned by the same API key, 30s or shorter. \*Required unless `source_data` is provided instead | "" |
| `resolution` | enum | No | Output resolution: `540p`, `720p`, `1080p` | `720p` |
| `edit_auto_controls` | boolean | No | Model derives the full conditioning schedule from the source (recommended). Mutually exclusive with `edit_strength` | - |
| `edit_strength` | enum | No | Manual preservation preset: `adhere_1..3`, `flex_1..3`, `reimagine_1..3`. Mutually exclusive with `edit_auto_controls` | - |
| `pose_strength` | enum | No | Pose conditioning: None / precise / coarse. None = not applied | None |
| `depth_blur` | float | No | Depth conditioning, 0-1. Higher allows more geometric freedom. Unset = not applied | - |
| `normals_augmentation` | float | No | Surface-normals conditioning, 0-1. Higher reinterprets geometry more. Unset = not applied | - |
| `trajectory_sparsity` | float | No | Motion-trajectory conditioning, 0-1. Higher uses fewer motion anchors. Unset = not applied | - |
| `face_enabled` | boolean | No | Enable face-identity conditioning | false |
| `hdr` | boolean | No | HDR-encoded MP4. Requires HDR access and 720p/1080p | `false` |
| `exr_export` | boolean | No | Export an EXR file alongside the MP4. Requires `hdr: true` | `false` |
| `start_frame_url` | image URL | No | Optional single guide frame (JPEG/PNG/WebP) | - |
| `source_data` | string | No | Inline base64 source video (advanced), alternative to `source_generation_id`, 30s or shorter | "" |
| `source_media_type` | string | No | MIME type for `source_data`, e.g. `video/mp4` | "" |
## Status
Video generation is asynchronous. The submit returns `status: processing` with a `request_id`; poll until terminal:
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
`status` is `queued` → `processing` → `success` or `failed`.
## Response
```json theme={null}
{
"request_id": "cd5b59d5-1b3f-4fd5-9899-15ecea1f28ba",
"model": "luma-ray-3-2-edit",
"status": "success",
"outcome": {
"video_url": "https://storage.googleapis.com/.../output.mp4",
"generation_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"thumbnail_image_url": "https://storage.googleapis.com/.../thumbnail.jpg"
}
}
```
Use `generation_id` to chain a follow-up edit, extend, or reframe.
## Constraints
* `aspect_ratio` is derived from the source and silently ignored if set.
* `540p` is not available with `hdr: true`; `hdr` requires 720p/1080p and HDR access; `exr_export` requires `hdr: true`.
* `edit_auto_controls` is mutually exclusive with `edit_strength` and the per-signal controls (pose/depth/normals/trajectory/face) — don't combine.
* Source video must be 30 seconds or shorter. Direct source-URL ingestion is not yet supported.
## Pricing
Billed at the **edit-tier per 5-second block**. The output duration follows the source video and is billed in 5-second blocks, rounded up.
| Quality | 540p | 720p | 1080p |
| --------- | ------ | ------ | ------ |
| SDR | \$0.72 | \$1.08 | \$2.16 |
| HDR | — | \$2.16 | \$4.32 |
| HDR + EXR | — | \$3.78 | \$7.56 |
# luma-ray-3-2-generate
Source: https://docs.gmicloud.ai/model-quickstarts/video/luma-ray-3-2-generate
API usage guide for luma-ray-3-2-generate.
**Model ID**
```bash theme={null}
luma-ray-3-2-generate
```
**Calling method:** async
# Luma Ray 3.2 — Generate
## Overview
`luma-ray-3-2-generate` uses Luma's `ray-3.2` model to create video from a text prompt (text-to-video) and from anchor images (image-to-video) via the Luma Agents API. It also covers **extend** and **chain-referenced interpolation** when a keyframe carries a prior generation id. Output is an **MP4** (HDR is a request knob, `hdr: true`, not a separate model). For restyling an existing video use **Luma Ray 3.2 — Edit**; for aspect-ratio outpaint use **Luma Ray 3.2 — Reframe**.
## Authentication
```
Authorization: Bearer YOUR_API_KEY
```
## Submit
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "luma-ray-3-2-generate",
"payload": {
"prompt": "A slow dolly shot through a misty greenhouse at sunrise",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "5s"
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default |
| --------------------------- | --------- | -------- | --------------------------------------------------------------------------- | ------- |
| `model` | string | Yes | Must be `luma-ray-3-2-generate` | - |
| `prompt` | string | Yes | Text description of the video, 1–6000 characters | - |
| `aspect_ratio` | enum | No | `9:16`, `3:4`, `1:1`, `4:3`, `16:9`, `21:9` | `16:9` |
| `resolution` | enum | No | `540p`, `720p`, `1080p` | `720p` |
| `duration` | enum | No | `5s` or `10s` (a 10s video bills as two 5s blocks) | `5s` |
| `hdr` | boolean | No | HDR-encoded MP4. Requires HDR access and 720p/1080p | `false` |
| `exr_export` | boolean | No | Export an EXR file alongside the MP4. Requires `hdr: true` | `false` |
| `loop` | boolean | No | Generate a seamless loop | `false` |
| `start_frame_url` | image URL | No | Start anchor frame for image-to-video (JPEG/PNG/WebP) | - |
| `end_frame_url` | image URL | No | End anchor frame for image-to-video or interpolation | - |
| `start_frame_generation_id` | string | No | Chain-reference a prior video as the start (forward extend / interpolation) | "" |
| `end_frame_generation_id` | string | No | Chain-reference a prior video as the end (backward extend / interpolation) | "" |
## Modes
* **Text-to-video**: just a `prompt`.
* **Image-to-video**: set `start_frame_url` and/or `end_frame_url`. Not supported with `duration: 10s`.
* **Extend**: exactly one chain-ref keyframe — `start_frame_generation_id` (forward, continues past the prior clip) or `end_frame_generation_id` (backward, prepends before it). Standard dynamic range only; returns one 5s block per call; `loop` is forward-only.
* **Interpolation**: set both keyframes, at least one a chain-ref `*_generation_id`.
## Status
Video generation is asynchronous and takes longer than image generation (a 5s/720p clip is usually well under two minutes; 10s/1080p/HDR can run several times longer). The submit returns `status: processing` with a `request_id`; poll until terminal:
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
`status` is `queued` → `processing` → `success` or `failed`.
## Response
```json theme={null}
{
"request_id": "cd5b59d5-1b3f-4fd5-9899-15ecea1f28ba",
"model": "luma-ray-3-2-generate",
"status": "success",
"outcome": {
"video_url": "https://storage.googleapis.com/.../output.mp4",
"generation_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"thumbnail_image_url": "https://storage.googleapis.com/.../thumbnail.jpg"
}
}
```
Output is a single MP4 (`video_url`). Use `generation_id` to chain a follow-up extend, edit, or reframe. Presigned URLs expire after \~1 hour — re-poll to mint a fresh one.
## Constraints
* `aspect_ratio` accepts the six video ratios above; the image-only ratios `3:1`, `2:1`, `1:2`, `1:3` are rejected.
* `540p` is not available with `hdr: true`.
* `10s` is not supported with `hdr`, `start_frame`, or `end_frame`.
* `loop` is not supported with `10s`, `hdr`, or `end_frame`; on extend it is forward-only.
* `hdr` requires 720p/1080p and HDR access, and is rejected on extend; `exr_export` requires `hdr: true` and is rejected on extend.
## Pricing
Billed at the **create-tier per 5-second block**. A 10s video is two blocks; each extend call returns one 5s block.
| Quality | 540p | 720p | 1080p |
| --------- | ------ | ------ | ------ |
| SDR | \$0.15 | \$0.30 | \$1.20 |
| HDR | — | \$1.20 | \$4.80 |
| HDR + EXR | — | \$2.10 | \$8.40 |
HDR and HDR+EXR are not available on extend (standard dynamic range only).
# luma-ray-3-2-reframe
Source: https://docs.gmicloud.ai/model-quickstarts/video/luma-ray-3-2-reframe
API usage guide for luma-ray-3-2-reframe.
**Model ID**
```bash theme={null}
luma-ray-3-2-reframe
```
**Calling method:** async
# Luma Ray 3.2 — Reframe
## Overview
`luma-ray-3-2-reframe` uses Luma's `ray-3.2` model to AI-outpaint a prior completed video to a **different aspect ratio** via the Luma Agents API. The source's content is preserved frame-for-frame; the model fills the expanded canvas around it — same content, new shape. This is distinct from **Generate** (new content from scratch) and **Edit** (restyle existing content). Reframe is **standard dynamic range only** and the output follows the source video's duration.
Reference the source video two ways:
* **By generation id** (recommended): `source_generation_id`, the id of a prior completed video generation owned by the same API key. Create one with **Luma Ray 3.2 — Generate**.
* **Inline (advanced)**: base64 `source_data` plus `source_media_type`. The source must be 30 seconds or shorter. Direct source-URL ingestion is not yet supported.
## Authentication
```
Authorization: Bearer YOUR_API_KEY
```
## Submit
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "luma-ray-3-2-reframe",
"payload": {
"prompt": "extend the scene to cinematic widescreen",
"aspect_ratio": "21:9",
"source_generation_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"resolution": "720p"
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default |
| ---------------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------- | ------- |
| `model` | string | Yes | Must be `luma-ray-3-2-reframe` | - |
| `prompt` | string | Yes | Content to paint into the newly exposed canvas area, 1–6000 characters | - |
| `aspect_ratio` | enum | Yes | Target ratio: `9:16`, `3:4`, `1:1`, `4:3`, `16:9`, `21:9` — must differ from the source's ratio | `16:9` |
| `resolution` | enum | No | Output resolution: `540p`, `720p`, `1080p` | `720p` |
| `source_generation_id` | string | Yes\* | Id of a prior completed video owned by the same API key, 30s or shorter. \*Required unless `source_data` is provided instead | "" |
| `source_data` | string | No | Inline base64 source video (advanced), alternative to `source_generation_id`, 30s or shorter | "" |
| `source_media_type` | string | No | MIME type for `source_data`, e.g. `video/mp4` | "" |
## Status
Video generation is asynchronous and takes longer than image generation. The submit returns `status: processing` with a `request_id`; poll until terminal:
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
`status` is `queued` → `processing` → `success` or `failed`.
## Response
```json theme={null}
{
"request_id": "cd5b59d5-1b3f-4fd5-9899-15ecea1f28ba",
"model": "luma-ray-3-2-reframe",
"status": "success",
"outcome": {
"video_url": "https://storage.googleapis.com/.../output.mp4",
"generation_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"thumbnail_image_url": "https://storage.googleapis.com/.../thumbnail.jpg"
}
}
```
Use `generation_id` to chain a follow-up edit, extend, or reframe.
## Constraints
* `aspect_ratio` is required and must differ from the source's ratio — reframing to the same ratio has no effect.
* Standard dynamic range only: `hdr`, `exr_export`, `loop`, and keyframes (`start_frame`/`end_frame`) are not applicable to reframe.
* Source video must be 30 seconds or shorter. Direct source-URL ingestion is not yet supported.
## Pricing
Billed at the **create-tier per 5-second block, standard dynamic range only**. The output duration follows the source video and is billed in 5-second blocks, rounded up.
| Quality | 540p | 720p | 1080p |
| ------- | ------ | ------ | ------ |
| SDR | \$0.15 | \$0.30 | \$1.20 |
HDR and EXR are not available on reframe.
# MiniMax-H3
Source: https://docs.gmicloud.ai/model-quickstarts/video/minimax-h3
API usage guide for MiniMax-H3.
**Model ID**
```bash theme={null}
MiniMax-H3
```
**Calling method:** async
# MiniMax-H3 API Usage Guide
## Overview
MiniMax-H3 generates videos from text prompts and optional image, video, or audio references. It supports text-to-video, first/last-frame image-to-video, and reference-to-video generation.
## Submit a Request
```json theme={null}
{
"model": "MiniMax-H3",
"payload": {
"prompt": "A cinematic view of a spacecraft launching at sunset",
"resolution": "2K",
"duration": 5,
"ratio": "16:9"
}
}
```
## Supported Inputs
* `prompt`: required text prompt, up to 7000 characters.
* `first_frame_image` and `last_frame_image`: frame image URLs.
* `reference_images`: up to 9 reference images.
* `reference_videos`: up to 3 reference videos.
* `reference_audios`: up to 3 reference audio files; audio cannot be used alone.
Frame-based inputs and reference-media inputs cannot be mixed in the same request. MiniMax performs final validation.
## Output
Completed requests return a permanent video URL and generated thumbnail in the request outcome.
# Minimax-Hailuo-02
Source: https://docs.gmicloud.ai/model-quickstarts/video/minimax-hailuo-02
API usage guide for Minimax-Hailuo-02.
**Model ID**
```bash theme={null}
Minimax-Hailuo-02
```
**Calling method:** async
# Minimax-Hailuo-02 API Usage Guide
## Overview
**Minimax-Hailuo-02** is a video generation model that creates high-quality short videos from text prompts, optionally enhanced by a first-frame image. It supports camera movement instructions and offers flexible control over duration, resolution, and prompt optimization.
***
## Authentication
All API requests require authentication using an API key. Include it in the `Authorization` header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-02",
"payload": {
"prompt": "A serene ocean scene with waves gently rolling under a pink sunset [Pan Right]",
"duration": 6,
"resolution": "768P",
"prompt_optimizer": true,
"fast_pretreatment": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 characters). Supports camera movement instructions like `[Tilt Left]`, `[Pan Right]`. | "" | Required |
| `duration` | enum | No | Video duration in seconds. **1080P is not available for 10s videos.** | 6 | Options: `6`, `10` |
| `resolution` | enum | No | Output resolution. For 6s: `512P`, `768P`, `1080P` For 10s: `512P`, `768P` | "768P" | Options depend on duration |
| `first_frame_image` | image | Cond. | First frame image. **Required for 512P**, optional for `768P` or `1080P`. | "" | Max 1 image |
| `prompt_optimizer` | boolean | No | Automatically optimize prompt for better generation quality | true | true / false |
| `fast_pretreatment` | boolean | No | Reduce processing time during prompt optimization | false | true / false |
### Response
```json theme={null}
{
"request_id": "7a99e510-3b20-48d1-89a1-0cd72b6242fb",
"model": "Minimax-Hailuo-02",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7a99e510-3b20-48d1-89a1-0cd72b6242fb",
"org_id": "your-org-id",
"model": "Minimax-Hailuo-02",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A serene ocean scene with waves gently rolling under a pink sunset [Pan Right]",
"duration": 6,
"resolution": "768P",
"first_frame_image": "",
"prompt_optimizer": true,
"fast_pretreatment": false
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=Minimax-Hailuo-02
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Minimax-Hailuo-02" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Minimax-Hailuo-02
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Minimax-Hailuo-02" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Master",
"Kling-Text2Video-V2.1-Master",
"Luma-Ray2",
"Veo3",
"Veo3-Fast",
"Wan-AI_Wan2.1-T2V-14B",
"Wan-AI_Wan2.1-FLF2V-14B-720P",
"Wan-AI_Wan2.1-I2V-14B-720P"
]
}
```
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use detailed descriptions and camera movement tags like \[Tilt Left], \[Pan Right].
2. **First Frame Image**: Required for 512P videos, optional for 768P/1080P.
3. **Prompt Optimizer**: Keep prompt\_optimizer enabled for better quality.
4. **Fast Pretreatment**: Use fast\_pretreatment=true to reduce preprocessing time.
5. **Resolution Choice**: For 10s videos, only 512P and 768P are available.
## Examples
### Quick Ocean Scene
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-02",
"payload": {
"prompt": "A calm beach with seagulls flying across the sky [Pan Left]",
"duration": 6,
"resolution": "512P",
"prompt_optimizer": true
}
}'
```
### Animated with First Frame
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-02",
"payload": {
"prompt": "Extend this scene into a mystical forest journey",
"duration": 10,
"resolution": "768P",
"first_frame_image": "https://example.com/frame.jpg",
"fast_pretreatment": true
}
}'
```
# Minimax-Hailuo-2.3
Source: https://docs.gmicloud.ai/model-quickstarts/video/minimax-hailuo-2-3
API usage guide for Minimax-Hailuo-2.3.
**Model ID**
```bash theme={null}
Minimax-Hailuo-2.3
```
**Calling method:** async
# Minimax-Hailuo-2.3 API Usage Guide
## Overview
**Minimax-Hailuo-2.3** is a video generation model that creates high-quality short videos from text prompts, optionally guided by first-frame images. It supports camera movement instructions (e.g., \[Tilt Left], \[Pan Right]) and offers flexible control over duration, resolution, and prompt optimization.
### Key Features:
* Exceptional human physics, enabling dynamic and fluid movements such as flips, dancing sequences (including belly dancing and waltz), and more.
* Powerful VFX capabilities, delivering cinematic realism and immersive visual effects.
* Seamless style transformation, allowing for versatile and creative aesthetic shifts.
* Advanced stylization options, offering transformations like Pixar-style visuals and surrealist effects (e.g., water light).
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-2.3",
"payload": {
"prompt": "A serene ocean scene with waves under a pink sunset [Pan Right]",
"duration": 6,
"resolution": "768P",
"prompt_optimizer": true,
"fast_pretreatment": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 chars). Supports camera movement tags like `[Tilt Left]`, `[Pan Right]`. | "" | Required |
| `first_frame_image` | image | No | A string containing an image URL. This image will be used as the first frame in the generated video. | "" | Required for `512P`; optional for `768P` and `1080P`. Max 1 image |
| `duration` | enum | No | Video duration in seconds. | 6 | Options: 6, 10 |
| `resolution` | enum | No | Output resolution. | "768P" | For 6s: `512P`, `768P`, `1080P`; For 10s: `512P`, `768P` |
| `prompt_optimizer` | boolean | No | Automatically optimize prompt for better quality. | true | true / false |
| `fast_pretreatment` | boolean | No | Reduce processing time during prompt optimization. | false | true / false |
### Response
```json theme={null}
{
"request_id": "7a99e510-3b20-48d1-89a1-0cd72b6242fb",
"model": "Minimax-Hailuo-2.3",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7a99e510-3b20-48d1-89a1-0cd72b6242fb",
"org_id": "your-org-id",
"model": "Minimax-Hailuo-2.3",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A serene ocean scene with waves under a pink sunset [Pan Right]",
"duration": 6,
"resolution": "768P",
"first_frame_image": "",
"prompt_optimizer": true,
"fast_pretreatment": false
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=Minimax-Hailuo-2.3
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Minimax-Hailuo-2.3" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Minimax-Hailuo-2.3
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Minimax-Hailuo-2.3" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Master",
"Kling-Text2Video-V2.1-Master",
"Luma-Ray2",
"Veo3",
"Veo3-Fast",
"Wan-AI_Wan2.1-T2V-14B",
"Wan-AI_Wan2.1-FLF2V-14B-720P",
"Wan-AI_Wan2.1-I2V-14B-720P",
"Minimax-Hailuo-2.3"
]
}
```
## Examples
### Quick Ocean Scene
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-2.3",
"payload": {
"prompt": "A calm beach with seagulls flying across the sky [Pan Left]",
"duration": 6,
"resolution": "512P",
"prompt_optimizer": true
}
}'
```
### Animated with First Frame
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-2.3",
"payload": {
"prompt": "Extend this scene into a mystical forest journey",
"duration": 10,
"resolution": "768P",
"first_frame_image": "https://example.com/frame.jpg",
"fast_pretreatment": true
}
}'
```
# Minimax-Hailuo-2.3-Fast
Source: https://docs.gmicloud.ai/model-quickstarts/video/minimax-hailuo-2-3-fast
API usage guide for Minimax-Hailuo-2.3-Fast.
**Model ID**
```bash theme={null}
Minimax-Hailuo-2.3-Fast
```
**Calling method:** async
# Minimax-Hailuo-2.3-Fast API Usage Guide
## Overview
**Minimax-Hailuo-2.3-Fast** is a video generation model that creates high-quality short videos from text prompts, optionally guided by first-frame images. It supports camera movement instructions (e.g., \[Tilt Left], \[Pan Right]) and offers flexible control over duration, resolution, and prompt optimization.
### Key Features:
* Exceptional human physics, enabling dynamic and fluid movements such as flips, dancing sequences (including belly dancing and waltz), and more.
* Powerful VFX capabilities, delivering cinematic realism and immersive visual effects.
* Seamless style transformation, allowing for versatile and creative aesthetic shifts.
* Advanced stylization options, offering transformations like Pixar-style visuals and surrealist effects (e.g., water light).
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-2.3-Fast",
"payload": {
"prompt": "A serene ocean scene with waves under a pink sunset [Pan Right]",
"duration": 6,
"resolution": "768P",
"prompt_optimizer": true,
"fast_pretreatment": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 chars). Supports camera movement tags like `[Tilt Left]`, `[Pan Right]`. | "" | Required |
| `first_frame_image` | image | No | A string containing an image URL. This image will be used as the first frame in the generated video. | "" | Required for `512P`; optional for `768P` and `1080P`. Max 1 image |
| `duration` | enum | No | Video duration in seconds. | 6 | Options: 6, 10 |
| `resolution` | enum | No | Output resolution. | "768P" | For 6s: `512P`, `768P`, `1080P`; For 10s: `512P`, `768P` |
| `prompt_optimizer` | boolean | No | Automatically optimize prompt for better quality. | true | true / false |
| `fast_pretreatment` | boolean | No | Reduce processing time during prompt optimization. | false | true / false |
### Response
```json theme={null}
{
"request_id": "7a99e510-3b20-48d1-89a1-0cd72b6242fb",
"model": "Minimax-Hailuo-2.3-Fast",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "7a99e510-3b20-48d1-89a1-0cd72b6242fb",
"org_id": "your-org-id",
"model": "Minimax-Hailuo-2.3-Fast",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A serene ocean scene with waves under a pink sunset [Pan Right]",
"duration": 6,
"resolution": "768P",
"first_frame_image": "",
"prompt_optimizer": true,
"fast_pretreatment": false
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=Minimax-Hailuo-2.3-Fast
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Minimax-Hailuo-2.3-Fast" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Minimax-Hailuo-2.3-Fast
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Minimax-Hailuo-2.3-Fast" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Kling-Image2Video-V2.1-Master",
"Kling-Text2Video-V2.1-Master",
"Luma-Ray2",
"Veo3",
"Veo3-Fast",
"Wan-AI_Wan2.1-T2V-14B",
"Wan-AI_Wan2.1-FLF2V-14B-720P",
"Wan-AI_Wan2.1-I2V-14B-720P",
"Minimax-Hailuo-2.3-Fast"
]
}
```
## Examples
### Quick Ocean Scene
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-2.3-Fast",
"payload": {
"prompt": "A calm beach with seagulls flying across the sky [Pan Left]",
"duration": 6,
"resolution": "512P",
"prompt_optimizer": true
}
}'
```
### Animated with First Frame
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Minimax-Hailuo-2.3-Fast",
"payload": {
"prompt": "Extend this scene into a mystical forest journey",
"duration": 10,
"resolution": "768P",
"first_frame_image": "https://example.com/frame.jpg",
"fast_pretreatment": true
}
}'
```
# pixverse-v5.5-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v5-5-i2v
API usage guide for pixverse-v5.5-i2v.
**Model ID**
```bash theme={null}
pixverse-v5.5-i2v
```
**Calling method:** async
# Pixverse v5.5 Image-to-Video API Usage Guide
## Overview
Pixverse v5.5 Image-to-Video (I2V) is an advanced model designed to animate static images using text guidance. It supports cinematic camera controls, high-quality motion consistency, and integrated audio generation to bring static frames to life.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
***
## Submit Video Generation Request
### Base URL
[https://console.gmicloud.ai](https://console.gmicloud.ai)
### Endpoint
POST /api/v1/ie/requestqueue/apikey/requests
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v5.5-i2v",
"payload": {
"image_url": "https://example.com/source_image.jpg",
"prompt": "The character turns their head and smiles, cinematic lighting",
"negative_prompt": "distorted face, static, morphing",
"duration": "5",
"aspect_ratio": "16:9",
"quality": "1080p",
"style": "none",
"thinking_type": "auto",
"generate_audio_switch": true,
"generate_multi_clip_switch": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------------------- | ------- | ------------------------------------ |
| image\_url | string | Yes | URL of the source image (JPG, PNG, WebP). | - | Must be a public URL. |
| prompt | string | Yes | Description of the motion or action. | - | Describe the change. |
| negative\_prompt | string | No | Elements to avoid in the animation. | "" | - |
| duration | enum | Yes | Video length in seconds. | 5 | 5, 8, 10 (10s unavailable at 1080p). |
| aspect\_ratio | enum | Yes | Frame dimensions. | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4. |
| quality | enum | Yes | Video resolution. | 540p | 360p, 540p, 720p, 1080p. |
| thinking\_type | enum | No | Internal prompt reasoning. | auto | enabled, disabled, auto. |
| generate\_audio\_switch | boolean | No | Generate synchronized SFX/BGM. | false | - |
| generate\_multi\_clip\_switch | boolean | No | Enable cinematic camera changes. | false | - |
| seed | integer | No | Seed for reproducibility. | - | 0 - 2147483647. |
Visual Style Options: none (Default), anime, 3d\_animation, clay, comic, cyberpunk.
***
## Check Request Status
### Endpoint
GET /api/v1/ie/requestqueue/apikey/requests/
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "pixverse",
"model": "pixverse-v5.5-i2v",
"status": "success",
"payload": {
"image_url": "https://example.com/source_image.jpg",
"prompt": "The character turns their head..."
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-i2v-video.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | ------------------------------------- |
| queued | Request is waiting in the queue |
| processing | Video is being animated |
| success | Animation complete; URL is in outcome |
| failed | Request failed |
| cancelled | Request was cancelled |
# pixverse-v5.5-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v5-5-t2v
API usage guide for pixverse-v5.5-t2v.
**Model ID**
```bash theme={null}
pixverse-v5.5-t2v
```
**Calling method:** async
# Pixverse v5.5 Text-to-Video API Usage Guide
## Overview
Pixverse v5.5 is an advanced video generation model supporting high-quality motion, cinematic multi-shot camera control, and integrated audio synchronization. This API allows for seamless text-to-video generation with granular control over style, resolution, and prompt optimization.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
***
## Submit Video Generation Request
### Base URL
[https://console.gmicloud.ai](https://console.gmicloud.ai)
### Endpoint
POST /api/v1/ie/requestqueue/apikey/requests
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v5.5-t2v",
"payload": {
"prompt": "A majestic cinematic shot of a dragon flying over a crystalline lake at sunset",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"quality": "1080p",
"style": "none",
"thinking_type": "auto",
"generate_audio_switch": true,
"generate_multi_clip_switch": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------------------- | ------- | ------------------------------------ |
| prompt | string | Yes | Primary text prompt describing the video. | - | Max 2048 chars. |
| negative\_prompt | string | No | Elements to exclude from the video. | "" | - |
| duration | enum | Yes | Video length in seconds. | 5 | 5, 8, 10 (10s unavailable at 1080p). |
| aspect\_ratio | enum | Yes | Frame dimensions. | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4. |
| quality | enum | Yes | Video resolution. | 540p | 360p (Turbo), 540p, 720p, 1080p. |
| thinking\_type | enum | No | Internal prompt optimization. | auto | enabled, disabled, auto. |
| generate\_audio\_switch | boolean | No | Generate BGM and sound effects. | false | - |
| generate\_multi\_clip\_switch | boolean | No | Enable dynamic camera transitions. | false | - |
| seed | integer | No | Seed for reproducible results. | - | 0 - 2147483647. |
Visual Style Options: none (Default), anime, 3d\_animation, clay, comic, cyberpunk.
***
## Check Request Status
### Endpoint
GET /api/v1/ie/requestqueue/apikey/requests/
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "pixverse",
"model": "pixverse-v5.5-t2v",
"status": "success",
"payload": {
"prompt": "A majestic cinematic shot of a dragon...",
"duration": "5",
"quality": "1080p"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video generation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
# pixverse-v5.5-transition
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v5-5-transition
API usage guide for pixverse-v5.5-transition.
**Model ID**
```bash theme={null}
pixverse-v5.5-transition
```
**Calling method:** async
# Pixverse v5.5 Transition API Usage Guide
## Overview
Pixverse v5.5 Transition allows for morphing effects and seamless scene evolutions by specifying a starting and an ending image. The model creates fluid intermediate frames to produce a transformation guided by a transition prompt.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
***
## Submit Video Generation Request
### Base URL
[https://console.gmicloud.ai](https://console.gmicloud.ai)
### Endpoint
POST /api/v1/ie/requestqueue/apikey/requests
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v5.5-transition",
"payload": {
"first_frame_image": "https://example.com/start.jpg",
"last_frame_image": "https://example.com/end.jpg",
"prompt": "A seed growing rapidly into a giant oak tree, timelapse style",
"negative_prompt": "flickering, low quality, morphing artifacts",
"duration": "5",
"quality": "1080p",
"generate_audio_switch": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------- | ------- | -------- | --------------------------------------------------- | ------- | ------------------------------------ |
| first\_frame\_image | string | Yes | URL of the image to be the first frame. | - | JPG, PNG, WebP. |
| last\_frame\_image | string | Yes | URL of the image to be the last frame. | - | Requires first\_frame\_image. |
| prompt | string | Yes | Describes the transformation connecting the images. | - | Max 2048 chars. |
| negative\_prompt | string | No | Elements to exclude from the transition. | "" | - |
| duration | enum | Yes | Video length in seconds. | 5 | 5, 8, 10 (10s unavailable at 1080p). |
| quality | enum | Yes | Video resolution. | 540p | 360p (Turbo), 540p, 720p, 1080p. |
| generate\_audio\_switch | boolean | No | Generate synchronized audio/SFX. | false | - |
| seed | integer | No | Seed for reproducibility. | - | 0 - 2147483647. |
***
## Check Request Status
### Endpoint
GET /api/v1/ie/requestqueue/apikey/requests/
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "pixverse",
"model": "pixverse-v5.5-transition",
"status": "success",
"payload": {
"first_frame_image": "...",
"last_frame_image": "...",
"prompt": "A seed growing into an oak tree"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-transition.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video transformation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
# pixverse-v5.6-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v5-6-i2v
API usage guide for pixverse-v5.6-i2v.
**Model ID**
```bash theme={null}
pixverse-v5.6-i2v
```
**Calling method:** async
# Pixverse v5.6 Image-to-Video API Usage Guide
## Overview
Pixverse v5.6 Image-to-Video (I2V) is an advanced model designed to animate static images using text guidance. It supports cinematic camera controls, high-quality motion consistency, and integrated audio generation to bring static frames to life.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
***
## Submit Video Generation Request
### Base URL
[https://console.gmicloud.ai](https://console.gmicloud.ai)
### Endpoint
POST /api/v1/ie/requestqueue/apikey/requests
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v5.6-i2v",
"payload": {
"image_url": "https://example.com/source_image.jpg",
"prompt": "The character turns their head and smiles, cinematic lighting",
"negative_prompt": "distorted face, static, morphing",
"duration": "5",
"aspect_ratio": "16:9",
"quality": "1080p",
"style": "none",
"thinking_type": "auto",
"generate_audio_switch": true,
"generate_multi_clip_switch": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------------------- | ------- | ------------------------------------ |
| image\_url | string | Yes | URL of the source image (JPG, PNG, WebP). | - | Must be a public URL. |
| prompt | string | Yes | Description of the motion or action. | - | Describe the change. |
| negative\_prompt | string | No | Elements to avoid in the animation. | "" | - |
| duration | enum | Yes | Video length in seconds. | 5 | 5, 8, 10 (10s unavailable at 1080p). |
| aspect\_ratio | enum | Yes | Frame dimensions. | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4. |
| quality | enum | Yes | Video resolution. | 540p | 360p, 540p, 720p, 1080p. |
| thinking\_type | enum | No | Internal prompt reasoning. | auto | enabled, disabled, auto. |
| generate\_audio\_switch | boolean | No | Generate synchronized SFX/BGM. | false | - |
| generate\_multi\_clip\_switch | boolean | No | Enable cinematic camera changes. | false | - |
| seed | integer | No | Seed for reproducibility. | - | 0 - 2147483647. |
Visual Style Options: none (Default), anime, 3d\_animation, clay, comic, cyberpunk.
***
## Check Request Status
### Endpoint
GET /api/v1/ie/requestqueue/apikey/requests/
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "pixverse",
"model": "pixverse-v5.6-i2v",
"status": "success",
"payload": {
"image_url": "https://example.com/source_image.jpg",
"prompt": "The character turns their head..."
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-i2v-video.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | ------------------------------------- |
| queued | Request is waiting in the queue |
| processing | Video is being animated |
| success | Animation complete; URL is in outcome |
| failed | Request failed |
| cancelled | Request was cancelled |
# pixverse-v5.6-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v5-6-t2v
API usage guide for pixverse-v5.6-t2v.
**Model ID**
```bash theme={null}
pixverse-v5.6-t2v
```
**Calling method:** async
# Pixverse v5.6 Text-to-Video API Usage Guide
## Overview
Pixverse v5.6 is an advanced video generation model supporting high-quality motion, cinematic multi-shot camera control, and integrated audio synchronization. This API allows for seamless text-to-video generation with granular control over style, resolution, and prompt optimization.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
***
## Submit Video Generation Request
### Base URL
[https://console.gmicloud.ai](https://console.gmicloud.ai)
### Endpoint
POST /api/v1/ie/requestqueue/apikey/requests
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v5.6-t2v",
"payload": {
"prompt": "A majestic cinematic shot of a dragon flying over a crystalline lake at sunset",
"negative_prompt": "blurry, low quality, distorted",
"duration": "5",
"aspect_ratio": "16:9",
"quality": "1080p",
"style": "none",
"thinking_type": "auto",
"generate_audio_switch": true,
"generate_multi_clip_switch": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------------- | ------- | -------- | ----------------------------------------- | ------- | ------------------------------------ |
| prompt | string | Yes | Primary text prompt describing the video. | - | Max 2048 chars. |
| negative\_prompt | string | No | Elements to exclude from the video. | "" | - |
| duration | enum | Yes | Video length in seconds. | 5 | 5, 8, 10 (10s unavailable at 1080p). |
| aspect\_ratio | enum | Yes | Frame dimensions. | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4. |
| quality | enum | Yes | Video resolution. | 540p | 360p (Turbo), 540p, 720p, 1080p. |
| thinking\_type | enum | No | Internal prompt optimization. | auto | enabled, disabled, auto. |
| generate\_audio\_switch | boolean | No | Generate BGM and sound effects. | false | - |
| generate\_multi\_clip\_switch | boolean | No | Enable dynamic camera transitions. | false | - |
| seed | integer | No | Seed for reproducible results. | - | 0 - 2147483647. |
Visual Style Options: none (Default), anime, 3d\_animation, clay, comic, cyberpunk.
***
## Check Request Status
### Endpoint
GET /api/v1/ie/requestqueue/apikey/requests/
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "pixverse",
"model": "pixverse-v5.6-t2v",
"status": "success",
"payload": {
"prompt": "A majestic cinematic shot of a dragon...",
"duration": "5",
"quality": "1080p"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video generation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
# pixverse-v5.6-transition
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v5-6-transition
API usage guide for pixverse-v5.6-transition.
**Model ID**
```bash theme={null}
pixverse-v5.6-transition
```
**Calling method:** async
# Pixverse v5.6 Transition API Usage Guide
## Overview
Pixverse v5.6 Transition allows for morphing effects and seamless scene evolutions by specifying a starting and an ending image. The model creates fluid intermediate frames to produce a transformation guided by a transition prompt.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR\_API\_KEY
***
## Submit Video Generation Request
### Base URL
[https://console.gmicloud.ai](https://console.gmicloud.ai)
### Endpoint
POST /api/v1/ie/requestqueue/apikey/requests
### Request Format (cURL)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v5.6-transition",
"payload": {
"first_frame_image": "https://example.com/start.jpg",
"last_frame_image": "https://example.com/end.jpg",
"prompt": "A seed growing rapidly into a giant oak tree, timelapse style",
"negative_prompt": "flickering, low quality, morphing artifacts",
"duration": "5",
"quality": "1080p",
"generate_audio_switch": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------- | ------- | -------- | --------------------------------------------------- | ------- | ------------------------------------ |
| first\_frame\_image | string | Yes | URL of the image to be the first frame. | - | JPG, PNG, WebP. |
| last\_frame\_image | string | Yes | URL of the image to be the last frame. | - | Requires first\_frame\_image. |
| prompt | string | Yes | Describes the transformation connecting the images. | - | Max 2048 chars. |
| negative\_prompt | string | No | Elements to exclude from the transition. | "" | - |
| duration | enum | Yes | Video length in seconds. | 5 | 5, 8, 10 (10s unavailable at 1080p). |
| quality | enum | Yes | Video resolution. | 540p | 360p (Turbo), 540p, 720p, 1080p. |
| generate\_audio\_switch | boolean | No | Generate synchronized audio/SFX. | false | - |
| seed | integer | No | Seed for reproducibility. | - | 0 - 2147483647. |
***
## Check Request Status
### Endpoint
GET /api/v1/ie/requestqueue/apikey/requests/
### Example Response
```bash theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "pixverse",
"model": "pixverse-v5.6-transition",
"status": "success",
"payload": {
"first_frame_image": "...",
"last_frame_image": "...",
"prompt": "A seed growing into an oak tree"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-transition.mp4"
},
"created_at": 1750442925,
"updated_at": 1750442930
}
```
***
## Request Status Values
| Status | Description |
| ---------- | --------------------------------------- |
| queued | Request is waiting to be processed |
| processing | Video transformation is in progress |
| success | Video generation completed successfully |
| failed | Video generation failed |
| cancelled | Request was cancelled |
# pixverse-v6-extend
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v6-extend
API usage guide for pixverse-v6-extend.
**Model ID**
```bash theme={null}
pixverse-v6-extend
```
**Calling method:** async
# Pixverse v6 Video Extension API Documentation
## Overview
Pixverse v6 provides advanced video extension capabilities, allowing you to seamlessly extend an existing video.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
`Authorization: Bearer YOUR_API_KEY`
## Submit Video Extension Request
### Base URL
`https://console.gmicloud.ai`
### Endpoint
`POST /api/v1/ie/requestqueue/apikey/requests`
## Request Parameters
| Parameter | Type | Required | Description | Default |
| :---------------------- | :------ | :------- | :----------------------------------------------------------- | :------ |
| `prompt` | string | Yes | Primary text prompt describing the video (up to 5000 chars). | "" |
| `video` | video | Yes | Video upload to extend (max 1920x1920). | null |
| `duration` | integer | Yes | Video length in seconds. 1-15s. | 5 |
| `quality` | enum | Yes | Video resolution (360p, 540p, 720p, 1080p). | "540p" |
| `generate_audio_switch` | boolean | No | Automatically generate BGM and sound effects. | false |
| `seed` | integer | No | Set a specific seed for reproducible results (0-2147483647). | null |
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: 360p: $0.025($0.035 with audio). 540p: $0.035($0.045). 720p: $0.045(0.06). 1080p: $0.09(\$0.115)
# pixverse-v6-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v6-i2v
API usage guide for pixverse-v6-i2v.
**Model ID**
```bash theme={null}
pixverse-v6-i2v
```
**Calling method:** async
# Pixverse v6 Image-to-Video API Documentation
## Overview
Pixverse v6 provides advanced image-to-video generation, supporting dynamic camera changes and multiple resolutions up to 1080p.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## Submit Image-to-Video Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v6-i2v",
"payload": {
"prompt": "A cinematic shot of a futuristic city at sunset.",
"image": "https://example.com/start_frame.jpg",
"duration": 5,
"quality": "1080p",
"generate_audio_switch": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| ---------------------------- | ------- | -------- | ------------------------------------------------------------ | ------- |
| `prompt` | string | Yes | Primary text prompt describing the video (up to 5000 chars). | "" |
| `image` | image | Yes | Image upload for the video. | null |
| `duration` | integer | Yes | Video length in seconds. 1-15s. | 5 |
| `quality` | enum | Yes | Video resolution (360p, 540p, 720p, 1080p). | "540p" |
| `generate_audio_switch` | boolean | No | Automatically generate BGM and sound effects. | false |
| `generate_multi_clip_switch` | boolean | No | Enable dynamic camera changes and transitions. | false |
| `seed` | integer | No | Set a specific seed for reproducible results (0-2147483647). | null |
### Response
```
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "pixverse-v6-i2v",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "pixverse-v6-i2v",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../pixverse_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Video is currently being generated |
| `success` | Video generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: 360p: $0.025($0.035 with audio). 540p: $0.035($0.045). 720p: $0.045(0.06). 1080p: $0.09(\$0.115)
# pixverse-v6-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v6-t2v
API usage guide for pixverse-v6-t2v.
**Model ID**
```bash theme={null}
pixverse-v6-t2v
```
**Calling method:** async
# Pixverse v6 Text-to-Video API Documentation
## Overview
Pixverse v6 provides advanced text-to-video generation, supporting dynamic camera changes and multiple resolutions up to 1080p.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Text-to-Video Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v6-t2v",
"payload": {
"prompt": "A cinematic shot of a futuristic city at sunset.",
"duration": 5,
"aspect_ratio": "16:9",
"quality": "1080p",
"generate_audio_switch": true
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| ---------------------------- | ------- | -------- | ------------------------------------------------------------ | ------- |
| `prompt` | string | Yes | Primary text prompt describing the video (up to 5000 chars). | "" |
| `duration` | integer | Yes | Video length in seconds. 1-15s. | 5 |
| `aspect_ratio` | enum | Yes | Video aspect ratio (16:9, 9:16, 1:1, 4:3, 3:4). | "16:9" |
| `quality` | enum | Yes | Video resolution (360p, 540p, 720p, 1080p). | "540p" |
| `generate_audio_switch` | boolean | No | Automatically generate BGM and sound effects. | false |
| `generate_multi_clip_switch` | boolean | No | Enable dynamic camera changes and transitions. | false |
| `seed` | integer | No | Set a specific seed for reproducible results (0-2147483647). | null |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "pixverse-v6-t2v",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "pixverse-v6-t2v",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../pixverse_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description | | | |
| ----------- | ------------------------------- | -- | ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue | \n | `processing` | Video is currently being generated |
| `success` | Video generation completed | \n | `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled | | | |
# pixverse-v6-transition
Source: https://docs.gmicloud.ai/model-quickstarts/video/pixverse-v6-transition
API usage guide for pixverse-v6-transition.
**Model ID**
```bash theme={null}
pixverse-v6-transition
```
**Calling method:** async
# Pixverse v6 First-Last-Frame Transition API Documentation
## Overview
Pixverse v6 provides advanced first-last-frame video generation, creating a seamless transition between two provided images.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## Submit Transition Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v6-transition",
"payload": {
"prompt": "A cinematic transition from day to night over a city skyline.",
"first_frame_img": "https://example.com/day_city.jpg",
"last_frame_img": "https://example.com/night_city.jpg",
"duration": 5,
"quality": "1080p",
"generate_audio_switch": true
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default |
| :---------------------- | :------ | :------- | :----------------------------------------------------------- | :------ |
| `prompt` | string | Yes | Primary text prompt describing the video (up to 5000 chars). | "" |
| `first_frame_img` | image | Yes | First frame of your video. | "" |
| `last_frame_img` | image | Yes | Ending frame for your video. | "" |
| `duration` | integer | Yes | Video length in seconds. 1-15s. | 5 |
| `quality` | enum | Yes | Video resolution (360p, 540p, 720p, 1080p). | "540p" |
| `generate_audio_switch` | boolean | No | Automatically generate BGM and sound effects. | false |
| `seed` | integer | No | Set a specific seed for reproducible results (0-2147483647). | null |
## Response
```
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "pixverse-v6-transition",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "pixverse-v6-transition",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../pixverse_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description |
| :----------- | :----------------------------------------- |
| `queued` | Request is waiting in the queue |
| `processing` | Video is currently being generated |
| `success` | Video generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: 360p: $0.025($0.035 with audio). 540p: $0.035($0.045). 720p: $0.045(0.06). 1080p: $0.09(\$0.115)
# seedance-1-0-pro-250528
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-1-0-pro-250528
API usage guide for seedance-1-0-pro-250528.
**Model ID**
```bash theme={null}
seedance-1-0-pro-250528
```
**Calling method:** async
# seedance-1-0-pro-250528 API Usage Guide
## Overview
**seedance-1-0-pro-250528** is a professional-grade video generation model that supports both text-to-video and image-to-video workflows. It is designed for flexible, high-quality video synthesis with customizable duration, resolution, aspect ratio, and camera behavior.
This model is ideal for creators who need cinematic, controllable outputs with reproducibility via seeds.
### Key Features
* **Text-to-Video & Image-to-Video**: Supports pure text prompts and optionally an initial first frame
* **Flexible Duration**: 3–12 seconds of generated video
* **Multiple Resolutions**: 480p, 720p, or 1080p outputs
* **Aspect Ratios**: Standard and cinematic ratios supported (16:9, 9:16, 21:9, etc.)
* **Camera Controls**: Option to fix or allow camera motion
* **Reproducibility**: Seed parameter ensures deterministic output
* **Watermark Control**: Choose whether to embed watermark
***
## Authentication
All API requests require authentication using an API key. Include it in the `Authorization` header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-250528",
"payload": {
"prompt": "The head gradually rises, revealing the climber`s back.",
"first_frame": "https://storage.googleapis.com/gmi-video-assests-prod/public-assets/person-walking-winter-snow-boots-1193959625-770x533-1_jpg.jpeg",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"camerafixed": false,
"seed": 42,
"watermark": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------- | ------- | -------- | -------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `prompt` | string | Yes | Text description with optional flags like `--ratio`, `--resolution`, `--duration`, `--camerafixed` | "" | Required |
| `duration` | integer | No | Duration in seconds | 5 | 3–12 |
| `resolution` | enum | No | Output resolution | "720p" | Options: `"480p"`, `"720p"`, `"1080p"` |
| `ratio` | enum | No | Aspect ratio of output | "16:9" | Options: `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"21:9"`, `"1:1"` |
| `camerafixed` | boolean | No | Whether camera stays fixed | false | true / false |
| `seed` | integer | No | Random seed for reproducibility | null | 0–4294967295 |
| `watermark` | boolean | No | Whether to include watermark | false | true / false |
| `first_frame` | image | No | First frame image for Image-to-Video (optional for Pro) | "" | Must be a publicly accessible image url |
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"model": "seedance-1-0-pro-250528",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"org_id": "your-org-id",
"model": "seedance-1-0-pro-250528",
"status": "success",
"payload": {
"prompt": "A futuristic city skyline glowing with neon lights, camera panning slowly across tall skyscrapers",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"camerafixed": false,
"seed": 42,
"watermark": false
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=seedance-1-0-pro-250528
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=seedance-1-0-pro-250528" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedance-1-0-pro-250528
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/seedance-1-0-pro-250528" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"seedance-1-0-pro-250528",
"Minimax-Hailuo-02",
"Wan-AI_Wan2.2-I2V-A14B",
"Wan-AI_Wan2.2-T2V-A14B",
"Veo3-Fast",
"Luma-Ray2",
"Veo3",
"Kling-Text2Video-V2.1-Master",
"Kling-Image2Video-V2.1-Standard",
"Kling-Image2Video-V2.1-Pro",
"Kling-Image2Video-V2.1-Master",
"Kling-Text2Video-V1.6-Standard",
"Kling-Text2Video-V2-Master",
"Kling-Image2Video-V2-Master",
"Kling-Image2Video-V1.6-Standard",
"Kling-Image2Video-V1.6-Pro",
"Wan-AI_Wan2.1-I2V-14B-720P",
"Wan-AI_Wan2.1-I2V-14B-480P",
"Wan-AI_Wan2.1-FLF2V-14B-720P",
"Wan-AI_Wan2.1-T2V-14B"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: TBD
* **8-second video**:
## Tips for Better Results
1. **Detailed Prompts**: More descriptive text yields better visuals
2. **Use First Frame for I2V**: Provide a starting image for higher temporal consistency
3. **Seeds for Control**: Use a fixed seed for reproducibility
4. **Camerafixed**: Set true to keep perspective locked
5. **Resolution vs Cost**: Higher resolutions take longer and may cost more
## Examples
### Cinematic Cityscape
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-250528",
"payload": {
"prompt": "A cyberpunk city drenched in rain, with flying cars weaving between neon-lit towers",
"duration": 10,
"resolution": "1080p",
"ratio": "21:9",
"camerafixed": true
}
}'
```
### Image-to-Video (First Frame)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-250528",
"payload": {
"prompt": "Extend this frame into a surreal animation of a floating island",
"first_frame": "https://example.com/myimage.jpg",
"duration": 6,
"resolution": "720p"
}
}'
```
# seedance-1-0-pro-fast-251015
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-1-0-pro-fast-251015
API usage guide for seedance-1-0-pro-fast-251015.
**Model ID**
```bash theme={null}
seedance-1-0-pro-fast-251015
```
**Calling method:** async
# seedance-1-0-pro-fast-251015 API Usage Guide
## Overview
**seedance-1-0-pro-fast-251015** is a professional-grade video generation model that supports both text-to-video and image-to-video workflows. It is designed for flexible, high-quality video synthesis with customizable duration, resolution, aspect ratio, and camera behavior.
This model is ideal for creators who need cinematic, controllable outputs with reproducibility via seeds.
### Key Features
* **Text-to-Video & Image-to-Video**: Supports pure text prompts and optionally an initial first frame
* **Flexible Duration**: 3–12 seconds of generated video
* **Multiple Resolutions**: 480p, 720p, or 1080p outputs
* **Aspect Ratios**: Standard and cinematic ratios supported (16:9, 9:16, 21:9, etc.)
* **Camera Controls**: Option to fix or allow camera motion
* **Reproducibility**: Seed parameter ensures deterministic output
* **Watermark Control**: Choose whether to embed watermark
***
## Authentication
All API requests require authentication using an API key. Include it in the `Authorization` header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-fast-251015",
"payload": {
"prompt": "The head gradually rises, revealing the climber`s back.",
"first_frame": "https://storage.googleapis.com/gmi-video-assests-prod/public-assets/person-walking-winter-snow-boots-1193959625-770x533-1_jpg.jpeg",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"camerafixed": false,
"seed": 42,
"watermark": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------- | ------- | -------- | -------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `prompt` | string | Yes | Text description with optional flags like `--ratio`, `--resolution`, `--duration`, `--camerafixed` | "" | Required |
| `duration` | integer | No | Duration in seconds | 5 | 3–12 |
| `resolution` | enum | No | Output resolution | "720p" | Options: `"480p"`, `"720p"`, `"1080p"` |
| `ratio` | enum | No | Aspect ratio of output | "16:9" | Options: `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"21:9"`, `"1:1"` |
| `camerafixed` | boolean | No | Whether camera stays fixed | false | true / false |
| `seed` | integer | No | Random seed for reproducibility | null | 0–4294967295 |
| `watermark` | boolean | No | Whether to include watermark | false | true / false |
| `first_frame` | image | No | First frame image for Image-to-Video (optional for Pro) | "" | Must be a publicly accessible image url |
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"model": "seedance-1-0-pro-fast-251015",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"org_id": "your-org-id",
"model": "seedance-1-0-pro-fast-251015",
"status": "success",
"payload": {
"prompt": "A futuristic city skyline glowing with neon lights, camera panning slowly across tall skyscrapers",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"camerafixed": false,
"seed": 42,
"watermark": false
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=seedance-1-0-pro-fast-251015
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=seedance-1-0-pro-fast-251015" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedance-1-0-pro-fast-251015
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/seedance-1-0-pro-fast-251015" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: TBD
* **8-second video**:
## Tips for Better Results
1. **Detailed Prompts**: More descriptive text yields better visuals
2. **Use First Frame for I2V**: Provide a starting image for higher temporal consistency
3. **Seeds for Control**: Use a fixed seed for reproducibility
4. **Camerafixed**: Set true to keep perspective locked
5. **Resolution vs Cost**: Higher resolutions take longer and may cost more
## Examples
### Cinematic Cityscape
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-fast-251015",
"payload": {
"prompt": "A cyberpunk city drenched in rain, with flying cars weaving between neon-lit towers",
"duration": 10,
"resolution": "1080p",
"ratio": "21:9",
"camerafixed": true
}
}'
```
### Image-to-Video (First Frame)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-fast-251015",
"payload": {
"prompt": "Extend this frame into a surreal animation of a floating island",
"first_frame": "https://example.com/myimage.jpg",
"duration": 6,
"resolution": "720p"
}
}'
```
# seedance-1-5-pro-251215
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-1-5-pro-251215
API usage guide for seedance-1-5-pro-251215.
**Model ID**
```bash theme={null}
seedance-1-5-pro-251215
```
**Calling method:** async
# seedance-1-5-pro-251215 API Usage Guide
## Overview
**seedance-1-5-pro-251215** is a professional-grade video generation model that supports both text-to-video and image-to-video workflows. It is designed for flexible, high-quality video synthesis with customizable duration, resolution, aspect ratio, and camera behavior.
This model is ideal for creators who need cinematic, controllable outputs with reproducibility via seeds.
### Key Features
* **Text-to-Video & Image-to-Video**: Supports pure text prompts and optionally an initial first frame
* **Flexible Duration**: 3–12 seconds of generated video
* **Multiple Resolutions**: 480p, 720p, or 1080p outputs
* **Aspect Ratios**: Standard and cinematic ratios supported (16:9, 9:16, 21:9, etc.)
* **Camera Controls**: Option to fix or allow camera motion
* **Reproducibility**: Seed parameter ensures deterministic output
* **Watermark Control**: Choose whether to embed watermark
***
## Authentication
All API requests require authentication using an API key. Include it in the `Authorization` header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-250528",
"payload": {
"prompt": "The head gradually rises, revealing the climber`s back.",
"first_frame": "https://storage.googleapis.com/gmi-video-assests-prod/public-assets/person-walking-winter-snow-boots-1193959625-770x533-1_jpg.jpeg",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"camerafixed": false,
"seed": 42,
"watermark": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------- | ------- | -------- | -------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `prompt` | string | Yes | Text description with optional flags like `--ratio`, `--resolution`, `--duration`, `--camerafixed` | "" | Required |
| `duration` | integer | No | Duration in seconds | 5 | 3–12 |
| `resolution` | enum | No | Output resolution | "720p" | Options: `"480p"`, `"720p"`, `"1080p"` |
| `ratio` | enum | No | Aspect ratio of output | "16:9" | Options: `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"21:9"`, `"1:1"` |
| `camerafixed` | boolean | No | Whether camera stays fixed | false | true / false |
| `seed` | integer | No | Random seed for reproducibility | null | 0–4294967295 |
| `watermark` | boolean | No | Whether to include watermark | false | true / false |
| `first_frame` | image | No | First frame image for Image-to-Video (optional for Pro) | "" | Must be a publicly accessible image url |
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"model": "seedance-1-0-pro-250528",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"org_id": "your-org-id",
"model": "seedance-1-0-pro-250528",
"status": "success",
"payload": {
"prompt": "A futuristic city skyline glowing with neon lights, camera panning slowly across tall skyscrapers",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"camerafixed": false,
"seed": 42,
"watermark": false
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=seedance-1-0-pro-250528
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=seedance-1-0-pro-250528" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedance-1-0-pro-250528
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/seedance-1-0-pro-250528" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"seedance-1-0-pro-250528",
"Minimax-Hailuo-02",
"Wan-AI_Wan2.2-I2V-A14B",
"Wan-AI_Wan2.2-T2V-A14B",
"Veo3-Fast",
"Luma-Ray2",
"Veo3",
"Kling-Text2Video-V2.1-Master",
"Kling-Image2Video-V2.1-Standard",
"Kling-Image2Video-V2.1-Pro",
"Kling-Image2Video-V2.1-Master",
"Kling-Text2Video-V1.6-Standard",
"Kling-Text2Video-V2-Master",
"Kling-Image2Video-V2-Master",
"Kling-Image2Video-V1.6-Standard",
"Kling-Image2Video-V1.6-Pro",
"Wan-AI_Wan2.1-I2V-14B-720P",
"Wan-AI_Wan2.1-I2V-14B-480P",
"Wan-AI_Wan2.1-FLF2V-14B-720P",
"Wan-AI_Wan2.1-T2V-14B"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: TBD
* **8-second video**:
## Tips for Better Results
1. **Detailed Prompts**: More descriptive text yields better visuals
2. **Use First Frame for I2V**: Provide a starting image for higher temporal consistency
3. **Seeds for Control**: Use a fixed seed for reproducibility
4. **Camerafixed**: Set true to keep perspective locked
5. **Resolution vs Cost**: Higher resolutions take longer and may cost more
## Examples
### Cinematic Cityscape
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-250528",
"payload": {
"prompt": "A cyberpunk city drenched in rain, with flying cars weaving between neon-lit towers",
"duration": 10,
"resolution": "1080p",
"ratio": "21:9",
"camerafixed": true
}
}'
```
### Image-to-Video (First Frame)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-1-0-pro-250528",
"payload": {
"prompt": "Extend this frame into a surreal animation of a floating island",
"first_frame": "https://example.com/myimage.jpg",
"duration": 6,
"resolution": "720p"
}
}'
```
# seedance-2-0-260128
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-2-0-260128
API usage guide for seedance-2-0-260128.
**Model ID**
```bash theme={null}
seedance-2-0-260128
```
**Calling method:** async
# Seedance 2.0 API Usage Guide
## Overview
**Seedance 2.0** is BytePlus's flagship video generation model. It supports text-to-video (T2V), image-to-video (I2V) using first/last frame conditioning, and reference-to-video (R2V) using reference images, videos, or audio.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format (T2V)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-260128",
"payload": {
"prompt": "A majestic eagle soaring over snowy mountains at sunset",
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": true
}
}'
```
### Request Format (I2V — first frame)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-260128",
"payload": {
"first_frame": "https://example.com/frame.jpg",
"prompt": "Camera slowly pans upward",
"duration": 5,
"resolution": "720p",
"ratio": "16:9"
}
}'
```
### Request Format (R2V — reference images)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-260128",
"payload": {
"reference_images": ["https://example.com/ref1.jpg"],
"prompt": "Cinematic slow motion",
"duration": 7,
"resolution": "720p",
"ratio": "16:9"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| -------------------------- | ------------ | -------- | -------------------------------------- | ------------ |
| `payload.prompt` | string | No\* | Text description. Optional for I2V/R2V | `""` |
| `payload.first_frame` | image URL | No\* | First frame image URL (I2V) | — |
| `payload.last_frame` | image URL | No | Last frame image URL (I2V) | — |
| `payload.reference_images` | image URL\[] | No\* | Reference image URLs (R2V, max 9) | — |
| `payload.reference_videos` | video URL\[] | No\* | Reference video URLs (R2V, max 3) | — |
| `payload.reference_audios` | audio URL\[] | No | Reference audio URLs (R2V, max 3) | — |
| `payload.duration` | integer | No | Video length in seconds (4–15) | `5` |
| `payload.resolution` | enum | No | Output resolution: 480p / 720p / 1080p | `"720p"` |
| `payload.ratio` | enum | No | Aspect ratio | `"adaptive"` |
| `payload.generate_audio` | boolean | No | Generate audio track | `true` |
| `payload.watermark` | boolean | No | Add watermark | `false` |
| `payload.seed` | integer | No | Reproducibility seed (-1 = random) | — |
| `payload.web_search` | boolean | No | Enrich prompt with web search | `false` |
\*At least one of `prompt`, `first_frame`, `reference_images`, or `reference_videos` must be provided.
### Response
```json theme={null}
{
"request_id": "abc123",
"model": "seedance-2-0-260128",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/..."}],
"thumbnail_image_url": "https://storage.googleapis.com/..."
}
}
```
## Pricing (per second of video)
| Resolution | Price / second |
| ---------- | -------------- |
| 480p | \$0.07 |
| 720p | \$0.152 |
| 1080p | \$0.374 |
## Check Request Status
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
# seedance-2-0-260128-upscale
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-2-0-260128-upscale
API usage guide for seedance-2-0-260128-upscale.
**Model ID**
```bash theme={null}
seedance-2-0-260128-upscale
```
**Calling method:** async
# Seedance 2.0 API Usage Guide
## Overview
**Seedance 2.0** is BytePlus's flagship video generation model. It supports text-to-video (T2V), image-to-video (I2V) using first/last frame conditioning, and reference-to-video (R2V) using reference images, videos, or audio.
## Authentication
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format (T2V)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-260128",
"payload": {
"prompt": "A majestic eagle soaring over snowy mountains at sunset",
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": true
}
}'
```
### Request Format (I2V — first frame)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-260128",
"payload": {
"first_frame": "https://example.com/frame.jpg",
"prompt": "Camera slowly pans upward",
"duration": 5,
"resolution": "720p",
"ratio": "16:9"
}
}'
```
### Request Format (R2V — reference images)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-260128",
"payload": {
"reference_images": ["https://example.com/ref1.jpg"],
"prompt": "Cinematic slow motion",
"duration": 7,
"resolution": "720p",
"ratio": "16:9"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default |
| -------------------------- | ------------ | -------- | -------------------------------------- | ------------ |
| `payload.prompt` | string | No\* | Text description. Optional for I2V/R2V | `""` |
| `payload.first_frame` | image URL | No\* | First frame image URL (I2V) | — |
| `payload.last_frame` | image URL | No | Last frame image URL (I2V) | — |
| `payload.reference_images` | image URL\[] | No\* | Reference image URLs (R2V, max 9) | — |
| `payload.reference_videos` | video URL\[] | No\* | Reference video URLs (R2V, max 3) | — |
| `payload.reference_audios` | audio URL\[] | No | Reference audio URLs (R2V, max 3) | — |
| `payload.duration` | integer | No | Video length in seconds (4–15) | `5` |
| `payload.resolution` | enum | No | Output resolution: 480p / 720p / 1080p | `"720p"` |
| `payload.ratio` | enum | No | Aspect ratio | `"adaptive"` |
| `payload.generate_audio` | boolean | No | Generate audio track | `true` |
| `payload.watermark` | boolean | No | Add watermark | `false` |
| `payload.seed` | integer | No | Reproducibility seed (-1 = random) | — |
| `payload.web_search` | boolean | No | Enrich prompt with web search | `false` |
\*At least one of `prompt`, `first_frame`, `reference_images`, or `reference_videos` must be provided.
### Response
```json theme={null}
{
"request_id": "abc123",
"model": "seedance-2-0-260128",
"status": "success",
"outcome": {
"media_urls": [{"id": "0", "url": "https://storage.googleapis.com/..."}],
"thumbnail_image_url": "https://storage.googleapis.com/..."
}
}
```
## Pricing (per second of video)
| Resolution | Price / second |
| ---------- | -------------- |
| 480p | \$0.056 |
| 720p | \$0.122 |
| 1080p | \$0.299 |
## Check Request Status
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
# seedance-2-0-fast-260128
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-2-0-fast-260128
API usage guide for seedance-2-0-fast-260128.
**Model ID**
```bash theme={null}
seedance-2-0-fast-260128
```
**Calling method:** async
# seedance-2-0-fast-260128 API Usage Guide
## Overview
**seedance-2-0-fast-260128** is the next-generation video generation model supporting text, first/last frame images, reference images, reference videos, reference audios.
***
## Authentication
All API requests require authentication using an API key. Include it in the `Authorization` header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-fast-260128",
"payload": {
"prompt": "A lone astronaut walks across a crimson Martian landscape at sunset.",
"first_frame": "https://example.com/frame.jpg",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"seed": 42,
"watermark": false,
"generate_audio": true,
"web_search": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------- | ------- | -------- | -------------------------------------- | -------- | --------------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video | `""` | Required |
| `duration` | integer | No | Duration in seconds | `5` | 4–15 |
| `resolution` | enum | No | Output resolution | `"720p"` | `"480p"`, `"720p"` |
| `ratio` | enum | No | Aspect ratio | `"16:9"` | `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"21:9"`, `"adaptive"` |
| `seed` | integer | No | Random seed for reproducibility | `null` | 0–4294967295 |
| `watermark` | boolean | No | Whether to embed a watermark | `false` | true / false |
| `generate_audio` | boolean | No | Whether to synthesize audio | `true` | true / false |
| `web_search` | boolean | No | Whether to enable web search grounding | `false` | true / false |
| `first_frame` | image | No | First frame image for I2V | `""` | Publicly accessible URL |
| `last_frame` | image | No | Last frame image for I2V | `""` | Publicly accessible URL |
| `reference_images` | array | No | Reference images (URLs) | `[]` | Array of publicly accessible URLs |
| `reference_videos` | array | No | Reference videos (URLs) | `[]` | Array of publicly accessible URLs |
| `reference_audios` | array | No | Reference audio files (URLs) | `[]` | Array of publicly accessible URLs |
| `reference_asset_ids` | array | No | Pre-uploaded asset IDs | `[]` | Array of asset ID strings |
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"model": "seedance-2-0-fast-260128",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/c1c5a812-3c44-4c77-b02c-91c934abcd12" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"org_id": "your-org-id",
"model": "seedance-2-0-fast-260128",
"status": "success",
"payload": {
"prompt": "A lone astronaut walks across a crimson Martian landscape at sunset.",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"seed": 42,
"watermark": false,
"generate_audio": true
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=seedance-2-0-fast-260128
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedance-2-0-fast-260128
```
## Tips for Better Results
1. **Detailed Prompts**: More descriptive text yields better visuals
2. **Use First/Last Frame**: Anchor the start and end for tighter I2V consistency
3. **Adaptive Ratio**: Use `adaptive` to let the model choose the best ratio for your content
4. **Seeds for Control**: Use a fixed seed for reproducible outputs
5. **Audio Sync**: Enable `generate_audio` for immersive, sound-matched videos
6. **Extended Duration**: Take advantage of up to 15 seconds for complex scenes
## Examples
### Text-to-Video
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-fast-260128",
"payload": {
"prompt": "A thunderstorm rolls over a medieval castle at night, lightning illuminating stone towers",
"duration": 12,
"resolution": "720p",
"ratio": "21:9",
"generate_audio": true
}
}'
```
### Image-to-Video with First and Last Frame
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-fast-260128",
"payload": {
"prompt": "The flower slowly blooms, petals unfurling in morning light",
"first_frame": "https://example.com/bud.jpg",
"last_frame": "https://example.com/bloom.jpg",
"duration": 6,
"resolution": "720p",
"ratio": "1:1",
"generate_audio": false
}
}'
```
### With Reference Assets
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-fast-260128",
"payload": {
"prompt": "The character walks through a neon-lit alley",
"reference_asset_ids": ["asset-id-abc123"],
"reference_images": ["https://example.com/style-ref.jpg"],
"duration": 10,
"resolution": "720p",
"ratio": "adaptive"
}
}'
```
# seedance-2-5-260628
Source: https://docs.gmicloud.ai/model-quickstarts/video/seedance-2-5-260628
API usage guide for seedance-2-5-260628.
**Model ID**
```bash theme={null}
seedance-2-5-260628
```
**Calling method:** async
# seedance-2-5-260628 API Usage Guide
## Overview
**seedance-2-5-260628** is the latest-generation Dreamina Seedance video generation model, supporting text-to-video and image-to-video workflows with rich reference inputs including images, videos, audios, and pre-uploaded avatar assets.
### Key Features
* **Text-to-Video & Image-to-Video**: Supports pure text prompts with optional first/last frame anchoring
* **Flexible Duration**: 4-15 seconds of generated video
* **Resolutions**: 480p and 720p outputs
* **Flexible Aspect Ratios**: Standard, cinematic, and adaptive ratios
* **Audio Generation**: Optional audio synthesis alongside video
* **Web Search**: Grounded generation using live web search
* **Rich References**: Reference images, videos, audios, and avatar asset IDs
* **Reproducibility**: Seed parameter ensures deterministic output
* **Watermark Control**: Choose whether to embed a watermark
***
## Authentication
All API requests require authentication using an API key. Include it in the `Authorization` header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5-260628",
"payload": {
"prompt": "A lone astronaut walks across a crimson Martian landscape at sunset.",
"first_frame": "https://example.com/frame.jpg",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"seed": 42,
"watermark": false,
"generate_audio": true,
"web_search": false
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------ | ------- | -------- | -------------------------------------- | -------- | --------------------------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video | `""` | Required |
| `duration` | integer | No | Duration in seconds | `5` | 4-15 |
| `resolution` | enum | No | Output resolution | `"720p"` | `"480p"`, `"720p"` |
| `ratio` | enum | No | Aspect ratio | `"16:9"` | `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"21:9"`, `"adaptive"` |
| `seed` | integer | No | Random seed for reproducibility | `null` | 0-4294967295 |
| `watermark` | boolean | No | Whether to embed a watermark | `false` | true / false |
| `generate_audio` | boolean | No | Whether to synthesize audio | `true` | true / false |
| `web_search` | boolean | No | Whether to enable web search grounding | `false` | true / false |
| `first_frame` | image | No | First frame image for I2V | `""` | Publicly accessible URL |
| `last_frame` | image | No | Last frame image for I2V | `""` | Publicly accessible URL |
| `reference_images` | array | No | Reference images (URLs) | `[]` | Up to 9 publicly accessible URLs |
| `reference_videos` | array | No | Reference videos (URLs) | `[]` | Up to 3 publicly accessible URLs |
| `reference_audios` | array | No | Reference audio files (URLs) | `[]` | Up to 3 publicly accessible URLs |
| `avatar_asset_ids` | array | No | Pre-uploaded avatar asset IDs | `[]` | Array of asset ID strings |
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"model": "seedance-2-5-260628",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/c1c5a812-3c44-4c77-b02c-91c934abcd12" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "c1c5a812-3c44-4c77-b02c-91c934abcd12",
"org_id": "your-org-id",
"model": "seedance-2-5-260628",
"status": "success",
"payload": {
"prompt": "A lone astronaut walks across a crimson Martian landscape at sunset.",
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"seed": 42,
"watermark": false,
"generate_audio": true
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=seedance-2-5-260628
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/seedance-2-5-260628
```
## Tips for Better Results
1. **Detailed Prompts**: More descriptive text yields better visuals
2. **Use First/Last Frame**: Anchor the start and end for tighter I2V consistency
3. **Adaptive Ratio**: Use `adaptive` to let the model choose the best ratio for your content
4. **Seeds for Control**: Use a fixed seed for reproducible outputs
5. **Audio Sync**: Enable `generate_audio` for immersive, sound-matched videos
6. **Reference Videos**: Supplying a reference video guides motion and timbre, and is priced differently from a text-only generation
## Examples
### Text-to-Video
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5-260628",
"payload": {
"prompt": "A thunderstorm rolls over a medieval castle at night, lightning illuminating stone towers",
"duration": 12,
"resolution": "720p",
"ratio": "21:9",
"generate_audio": true
}
}'
```
### Image-to-Video with First and Last Frame
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5-260628",
"payload": {
"prompt": "The flower slowly blooms, petals unfurling in morning light",
"first_frame": "https://example.com/bud.jpg",
"last_frame": "https://example.com/bloom.jpg",
"duration": 6,
"resolution": "720p",
"ratio": "1:1",
"generate_audio": false
}
}'
```
### With Reference Assets
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5-260628",
"payload": {
"prompt": "The character walks through a neon-lit alley",
"avatar_asset_ids": ["asset-id-abc123"],
"reference_images": ["https://example.com/style-ref.jpg"],
"duration": 10,
"resolution": "720p",
"ratio": "adaptive"
}
}'
```
# skyreels-v4-image-to-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/skyreels-v4-image-to-video
API usage guide for skyreels-v4-image-to-video.
**Model ID**
```bash theme={null}
skyreels-v4-image-to-video
```
**Calling method:** async
# skyreels-v4-image-to-video API Usage Guide
## Overview
**skyreels-v4-image-to-video** animates a first-frame image into high-definition 1080p video with text-guided motion and optional sound effects.
Requests are sent through the request-queue API and results are fetched by polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "skyreels-v4-image-to-video",
"payload": {
"prompt": "A cat slowly turns its head and looks at the camera with curious eyes",
"first_frame_image": "https://example.com/cat-photo.jpg",
"duration": 5,
"sound": false,
"mode": "std"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------------- | ------------- | -------- | -------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"skyreels-v4-image-to-video"` |
| `payload.prompt` | string | Yes | Text prompt describing the video to generate | - | Max length: 1280 tokens |
| `payload.first_frame_image` | string (URL) | Yes | URL of the first frame image | - | Supported formats: jpg/jpeg, png, gif, bmp |
| `payload.duration` | integer | No | Duration of the generated video in seconds | 5 | Min: 3, Max: 15 |
| `payload.sound` | boolean | No | Whether the generated video includes sound effects | false | 14 credits/s with sound, 12 credits/s without |
| `payload.mode` | string (enum) | No | Quality/performance mode | "std" | Options: "fast", "std", "pro"; currently only "std" is supported |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "skyreels-v4-image-to-video",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "skyreels-v4-image-to-video",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A cat slowly turns its head and looks at the camera with curious eyes",
"first_frame_image": "https://example.com/cat-photo.jpg",
"duration": 5,
"sound": false,
"mode": "std"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=skyreels-v4-image-to-video
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=skyreels-v4-image-to-video" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
# skyreels-v4-omni
Source: https://docs.gmicloud.ai/model-quickstarts/video/skyreels-v4-omni
API usage guide for skyreels-v4-omni.
**Model ID**
```bash theme={null}
skyreels-v4-omni
```
**Calling method:** async
# skyreels-v4-omni API Usage Guide
## Overview
**skyreels-v4-omni** is the V4 reference-driven generation/editing model.
Unlike `skyreels-v4-text-to-video`, Omni requires references and supports workflows such as:
* keyframe-guided generation
* subject/background replacement
* motion/style transfer from reference video
* local edits and object insertion/removal
**Important:** at least one of `ref_images` or `ref_videos` must be provided, otherwise upstream returns `422` (`At least one reference must be provided`).
## Authentication
All Request Queue API requests require an API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
Provider-side SkyReels credentials are injected by backend config.
## Submit Omni Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Example (image references)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "skyreels-v4-omni",
"payload": {
"prompt": "Use @subject1 as the main character and animate @keyframe1 into a cinematic shot",
"duration": 5,
"aspect_ratio": "16:9",
"sound": false,
"mode": "std",
"ref_images": [
{
"tag": "@subject1",
"type": "subject",
"image_urls": ["https://example.com/subject.png"]
},
{
"tag": "@keyframe1",
"type": "keyframe",
"time_stamp": 0,
"image_urls": ["https://example.com/frame0.png"]
}
]
}
}'
```
### Example (video reference)
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "skyreels-v4-omni",
"payload": {
"prompt": "Transfer camera motion from @video1 while preserving the subject style",
"mode": "std",
"ref_videos": [
{
"tag": "@video1",
"type": "reference",
"video_url": "https://example.com/ref.mp4"
}
]
}
}'
```
## Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| -------------------------- | ------------- | -------- | ---------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------ |
| `model` | string | Yes | Model identifier | - | Must be `"skyreels-v4-omni"` |
| `payload.prompt` | string | Yes | Prompt text; tags in refs must appear in prompt | - | Max \~1280 tokens |
| `payload.feature_mode` | string (enum) | No | UI/workflow hint only; not forwarded upstream | `image_reference` | `image_reference`, `video_reference`, `editing` |
| `payload.duration` | integer | No | Output duration in seconds | 5 | 3-15; removed when `ref_videos` exists |
| `payload.aspect_ratio` | string (enum) | No | Output ratio | `16:9` | `16:9`, `4:3`, `1:1`, `9:16`, `3:4`; ignored with `ref_videos` |
| `payload.ref_images` | json array | No | Image reference objects (`tag`, `type`, `image_urls`, optional `time_stamp`) | - | At least one ref required if no `ref_videos`; subject refs max 4 |
| `payload.ref_videos` | json array | No | Video reference objects (`tag`, `type`, `video_url`) | - | Max one reference video, max \~10s |
| `payload.sound` | boolean | No | Enable sound effects | false | Not effective in some video-reference scenarios |
| `payload.prompt_optimizer` | boolean | No | Auto prompt refinement | true | Optional |
| `payload.mode` | string (enum) | No | Quality/perf mode | `std` | Documented `fast`, `std`, `pro`; currently only `std` is supported |
## Response (Request Accepted)
```json theme={null}
{
"request_id": "660f9500-f30c-52e5-b827-557766550000",
"model": "skyreels-v4-omni",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/660f9500-f30c-52e5-b827-557766550000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Success Response Example
```json theme={null}
{
"request_id": "660f9500-f30c-52e5-b827-557766550000",
"model": "skyreels-v4-omni",
"status": "success",
"outcome": {
"video_url": "https://storage.googleapis.com/your-bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/your-bucket/generated-thumbnail.jpg",
"duration": 5,
"resolution": "1920x1080"
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ---------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Generation is in progress |
| `success` | Generation completed successfully |
| `failed` | Generation failed |
| `cancelled` | Request was cancelled |
## Routing and Endpoint Notes
Provider endpoint used by this model:
* Submit: `POST https://api-gateway.skyreels.ai/api/v1/video/omni-video/submit`
* Query: `GET https://api-gateway.skyreels.ai/api/v1/video/omni-video/task/{task_id}`
Prompt-only generation should use `skyreels-v4-text-to-video` instead of Omni.
# skyreels-v4-text-to-video
Source: https://docs.gmicloud.ai/model-quickstarts/video/skyreels-v4-text-to-video
API usage guide for skyreels-v4-text-to-video.
**Model ID**
```bash theme={null}
skyreels-v4-text-to-video
```
**Calling method:** async
# skyreels-v4-text-to-video API Usage Guide
## Overview
**skyreels-v4-text-to-video** generates high-definition 1080p video from text prompts with optional sound effects and flexible aspect ratios.
Requests are sent through the request-queue API and results are fetched by polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "skyreels-v4-text-to-video",
"payload": {
"prompt": "A drone flying over a lush green valley at golden hour with cinematic motion",
"duration": 5,
"aspect_ratio": "16:9",
"sound": false,
"mode": "std"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ---------------------- | ------------- | -------- | -------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"skyreels-v4-text-to-video"` |
| `payload.prompt` | string | Yes | Text prompt describing the video to generate | - | Max length: 1280 tokens |
| `payload.duration` | integer | No | Duration of the generated video in seconds | 5 | Min: 3, Max: 15 |
| `payload.aspect_ratio` | string (enum) | No | Aspect ratio of the generated video | "16:9" | Options: "16:9", "4:3", "1:1", "9:16", "3:4" |
| `payload.sound` | boolean | No | Whether the generated video includes sound effects | false | 14 credits/s with sound, 12 credits/s without |
| `payload.mode` | string (enum) | No | Quality/performance mode | "std" | Options: "fast", "std", "pro"; currently only "std" is supported |
### Response
```json theme={null}
{
"request_id": "660f9500-f30c-52e5-b827-557766550000",
"model": "skyreels-v4-text-to-video",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/660f9500-f30c-52e5-b827-557766550000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "660f9500-f30c-52e5-b827-557766550000",
"org_id": "your-org-id",
"model": "skyreels-v4-text-to-video",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A drone flying over a lush green valley at golden hour with cinematic motion",
"duration": 5,
"aspect_ratio": "16:9",
"sound": false,
"mode": "std"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=skyreels-v4-text-to-video
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=skyreels-v4-text-to-video" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
# veo-3.1-fast-generate-001
Source: https://docs.gmicloud.ai/model-quickstarts/video/veo-3-1-fast-generate-001
API usage guide for veo-3.1-fast-generate-001.
**Model ID**
```bash theme={null}
veo-3.1-fast-generate-001
```
**Calling method:** async
# veo-3.1-fast-generate-001 API Usage Guide
## Overview
**Veo 3.1 Fast** is a model variant optimized for quicker turnaround. It supports generating videos from text prompts, animating a single reference image, and two-frame guidance using first and last frames. Supports 16:9 and 9:16 aspect ratios, 4/6/8-second durations, 720p/1080p/4K resolution, 24 FPS.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-001",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0,
"resolution": "1080p"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------ | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 characters). Describe scenes, actions, camera moves, and visual style. | - | Required |
| `image` | string | No | Optional first frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `lastFrame` | string | No | Optional last frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `durationSeconds` | integer | No | Video length in seconds (4, 6, or 8). Reference image to video only supports 8 seconds. | 6 | Options: "4, 6, 8 |
| `aspectRatio` | string | No | Aspect ratio of the generated video. Some features may restrict supported aspect ratios. | "16:9" | Options: "16:9", "9:16" |
| `generateAudio` | boolean | No | Whether generate audio. | true | Optional |
| `negativePrompt` | string | No | Describe what you don't want to see in the video (max 500 characters). | - | Optional |
| `personGeneration` | string | No | Control whether people can appear in the video. | "allow\_all" | Options: "allow\_all", "allow\_adult", "disallow" |
| `seed` | integer | No | Random seed for reproducibility. Leave empty for random results. | - | Range: 0 to 4294967295 |
| `resolution` | string | No | Output video resolution. Higher resolutions take longer to generate. | "720p" | Options: "720p", "1080p", "4k" |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "veo-3.1-fast-generate-001",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"user_id": "your-user-id",
"model": "veo-3.1-fast-generate-001",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": "https://example.com/reference_image.jpg",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0,
"resolution": "1080p"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-fast-generate-001
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-fast-generate-001" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/veo-3.1-fast-generate-001
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/veo-3.1-fast-generate-001" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"veo-3.1-fast-generate-001",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: \$0.15 per second
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Specify unwanted elements to improve quality
# veo-3.1-fast-generate-preview
Source: https://docs.gmicloud.ai/model-quickstarts/video/veo-3-1-fast-generate-preview
API usage guide for veo-3.1-fast-generate-preview.
**Model ID**
```bash theme={null}
veo-3.1-fast-generate-preview
```
**Calling method:** async
# veo-3.1-fast-generate-preview API Usage Guide
## Overview
**Veo 3.1 Fast** is a preview variant optimized for quicker turnaround. It supports generating videos from text prompts, animating a single reference image, and two-frame guidance using first and last frames. Supports 16:9 and 9:16 aspect ratios, 4/6/8-second durations, 24 FPS.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-preview",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------ | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 characters). Describe scenes, actions, camera moves, and visual style. | - | Required |
| `image` | string | No | Optional first frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `lastFrame` | string | No | Optional last frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `durationSeconds` | integer | No | Video length in seconds (4, 6, or 8). Reference image to video only supports 8 seconds. | 6 | Options: "4, 6, 8 |
| `aspectRatio` | string | No | Aspect ratio of the generated video. Some features may restrict supported aspect ratios. | "16:9" | Options: "16:9", "9:16" |
| `generateAudio` | boolean | No | Whether generate audio. | true | Optional |
| `negativePrompt` | string | No | Describe what you don't want to see in the video (max 500 characters). | - | Optional |
| `personGeneration` | string | No | Control whether people can appear in the video. | "allow\_all" | Options: "allow\_all", "allow\_adult", "disallow" |
| `seed` | integer | No | Random seed for reproducibility. Leave empty for random results. | - | Range: 0 to 4294967295 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "veo-3.1-fast-generate-preview",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"user_id": "your-user-id",
"model": "veo-3.1-fast-generate-preview",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": "https://example.com/reference_image.jpg",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-fast-generate-preview
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-fast-generate-preview" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/veo-3.1-fast-generate-preview
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/veo-3.1-fast-generate-preview" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"veo-3.1-fast-generate-preview",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: \$0.15 per second
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Specify unwanted elements to improve quality
# veo-3.1-generate-001
Source: https://docs.gmicloud.ai/model-quickstarts/video/veo-3-1-generate-001
API usage guide for veo-3.1-generate-001.
**Model ID**
```bash theme={null}
veo-3.1-generate-001
```
**Calling method:** async
# veo-3.1-generate-001 API Usage Guide
## Overview
**Veo 3.1** is Google's latest video generation model . It supports generating videos from text prompts, animating a single reference image, and generating videos guided by both a first and last frame. It offers 16:9 and 9:16 aspect ratios, durations of 4/6/8 seconds, and produces 24 FPS videos at 720p, 1080p, or 4K resolution (availability may vary by feature).
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-generate-001",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": "https://example.com/reference_image.jpg",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0,
"resolution": "1080p"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------ | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 characters). Describe scenes, actions, camera moves, and visual style. | - | Required |
| `reference_image` | string | No | Provide up to three images of a single person, character, or product. Veo preserves the subject's appearance in the output video.The aspect ratio MUST be 16:9 if a reference image is provided. Reference images will be ignored if a frame image is provided. Supported formats: jpeg, png, webp. | - | Max 3 images |
| `image` | string | No | Optional first frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `lastFrame` | string | No | Optional last frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `durationSeconds` | integer | No | Video length in seconds (4, 6, or 8). Reference image to video only supports 8 seconds. | 6 | Options: "4, 6, 8 |
| `aspectRatio` | string | No | Aspect ratio of the generated video. Some features may restrict supported aspect ratios. | "16:9" | Options: "16:9", "9:16" |
| `generateAudio` | boolean | No | Whether generate audio. | true | Optional |
| `negativePrompt` | string | No | Describe what you don't want to see in the video (max 500 characters). | - | Optional |
| `personGeneration` | string | No | Control whether people can appear in the video. | "allow\_all" | Options: "allow\_all", "allow\_adult", "disallow" |
| `seed` | integer | No | Random seed for reproducibility. Leave empty for random results. | - | Range: 0 to 4294967295 |
| `resolution` | string | No | Output video resolution. Higher resolutions take longer to generate. | "720p" | Options: "720p", "1080p", "4k" |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "veo-3.1-generate-001",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"user_id": "your-user-id",
"model": "veo-3.1-generate-001",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": "https://example.com/reference_image.jpg",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0,
"resolution": "1080p"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-generate-001
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-generate-001" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/veo-3.1-generate-001
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/veo-3.1-generate-001" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"veo-3.1-generate-001",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: \$0.40 per second
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Specify unwanted elements to improve quality
# veo-3.1-generate-preview
Source: https://docs.gmicloud.ai/model-quickstarts/video/veo-3-1-generate-preview
API usage guide for veo-3.1-generate-preview.
**Model ID**
```bash theme={null}
veo-3.1-generate-preview
```
**Calling method:** async
# veo-3.1-generate-preview API Usage Guide
## Overview
**Veo 3.1** is Google's latest video generation model in preview. It supports generating videos from text prompts, animating a single reference image, and generating videos guided by both a first and last frame. It offers 16:9 and 9:16 aspect ratios, durations of 4/6/8 seconds, and produces 24 FPS videos at 720p or 1080p (availability may vary by feature).
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-generate-preview",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": "https://example.com/reference_image.jpg",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------ | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 characters). Describe scenes, actions, camera moves, and visual style. | - | Required |
| `reference_image` | string | No | Provide up to three images of a single person, character, or product. Veo preserves the subject's appearance in the output video.The aspect ratio MUST be 16:9 if a reference image is provided. Reference images will be ignored if a frame image is provided. Supported formats: jpeg, png, webp. | - | Max 3 images |
| `image` | string | No | Optional first frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `lastFrame` | string | No | Optional last frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `durationSeconds` | integer | No | Video length in seconds (4, 6, or 8). Reference image to video only supports 8 seconds. | 6 | Options: "4, 6, 8 |
| `aspectRatio` | string | No | Aspect ratio of the generated video. Some features may restrict supported aspect ratios. | "16:9" | Options: "16:9", "9:16" |
| `generateAudio` | boolean | No | Whether generate audio. | true | Optional |
| `negativePrompt` | string | No | Describe what you don't want to see in the video (max 500 characters). | - | Optional |
| `personGeneration` | string | No | Control whether people can appear in the video. | "allow\_all" | Options: "allow\_all", "allow\_adult", "disallow" |
| `seed` | integer | No | Random seed for reproducibility. Leave empty for random results. | - | Range: 0 to 4294967295 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "veo-3.1-generate-preview",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"user_id": "your-user-id",
"model": "veo-3.1-generate-preview",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"reference_image": "https://example.com/reference_image.jpg",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 6,
"aspectRatio": "16:9",
"generateAudio": true,
"negativePrompt": "blurry, low quality, distorted",
"personGeneration": "allow_all",
"seed": 0
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-generate-preview
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-generate-preview" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/veo-3.1-generate-preview
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/veo-3.1-generate-preview" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"veo-3.1-generate-preview",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Unit Price**: \$0.40 per second
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Specify unwanted elements to improve quality
# veo-3.1-lite-generate-001
Source: https://docs.gmicloud.ai/model-quickstarts/video/veo-3-1-lite-generate-001
API usage guide for veo-3.1-lite-generate-001.
**Model ID**
```bash theme={null}
veo-3.1-lite-generate-001
```
**Calling method:** async
# veo-3.1-lite-generate-001 API Usage Guide
## Overview
**Veo 3.1 Lite** is a cost-effective variant of Google's Veo 3.1 video generation model. It supports generating videos from text prompts and two-frame (first + last frame) guided generation. It offers 16:9 and 9:16 aspect ratios, durations of 4/6/8 seconds, and produces 24 FPS videos at 720p or 1080p resolution.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-lite-generate-001",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 8,
"aspectRatio": "16:9",
"generateAudio": true,
"personGeneration": "allow_all",
"seed": 0,
"resolution": "720p"
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------ | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| `prompt` | string | Yes | Text description of the video to generate (max 2000 characters). Describe scenes, actions, camera moves, and visual style. | - | Required |
| `image` | string | No | Optional first frame for two-frame guided video generation. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `lastFrame` | string | No | Optional last frame for two-frame guided video generation. Requires `image` to also be set. Supported formats: JPEG/PNG/WebP. | - | Max 1 image |
| `durationSeconds` | integer | No | Video length in seconds (4, 6, or 8). | 8 | Options: 4, 6, 8 |
| `aspectRatio` | string | No | Aspect ratio of the generated video. | "16:9" | Options: "16:9", "9:16" |
| `generateAudio` | boolean | No | Whether to generate audio. | true | Optional |
| `personGeneration` | string | No | Control whether people can appear in the video. | "allow\_all" | Options: "allow\_all", "allow\_adult", "disallow" |
| `seed` | integer | No | Random seed for reproducibility. Leave empty for random results. | - | Range: 0 to 4294967295 |
| `resolution` | string | No | Output video resolution. Lite supports 720p and 1080p only. | "720p" | Options: "720p", "1080p" |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "veo-3.1-lite-generate-001",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"user_id": "your-user-id",
"model": "veo-3.1-lite-generate-001",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset",
"image": "https://example.com/image.jpg",
"lastFrame": "https://example.com/lastFrame.jpg",
"durationSeconds": 8,
"aspectRatio": "16:9",
"generateAudio": true,
"personGeneration": "allow_all",
"seed": 0,
"resolution": "720p"
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-lite-generate-001
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=veo-3.1-lite-generate-001" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/veo-3.1-lite-generate-001
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/veo-3.1-lite-generate-001" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"veo-3.1-lite-generate-001",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **720p Video + Audio**: \$0.05 per second
* **1080p Video + Audio**: \$0.08 per second
* **720p Video only**: \$0.03 per second
* **1080p Video only**: \$0.05 per second
## Tips for Better Results
1. **Clear, Descriptive Prompts**: Use specific, detailed descriptions for better video quality
2. **Negative Prompts**: Specify unwanted elements to improve quality
# vidu-q2-pro-flfv
Source: https://docs.gmicloud.ai/model-quickstarts/video/vidu-q2-pro-flfv
API usage guide for vidu-q2-pro-flfv.
**Model ID**
```bash theme={null}
vidu-q2-pro-flfv
```
**Calling method:** async
# Vidu Q2 Pro First-Last-Frame-to-Video API Usage Guide
## Overview
**Vidu Q2 Pro** is a first-last-frame-to-video model designed to generate 720p video content transitioning between a specified starting and ending frame, guided by a descriptive text prompt. It supports custom durations up to 8 seconds. This model is hosted externally by Vidu and accessible via the GMI Cloud request queue.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q2-pro-flfv",
"payload": {
"prompt": "A smooth transition from a blooming flower to a withered state",
"first_frame_image": "https://example.com/start_frame.jpg",
"last_frame_image": "https://example.com/end_frame.jpg",
"duration": 5,
"seed": 42
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------- | ------- | -------- | --------------------------------------------------------------- | ------- | -------------- |
| `first_frame_image` | string | Yes | Image URL to be the first frame of the generated video. | - | 1 image |
| `last_frame_image` | string | Yes | Image URL to be the last frame of the video. | - | 1 image |
| `prompt` | string | Yes | Text prompt (max 2000 characters) describing the desired video. | - | Max 2000 chars |
| `duration` | integer | No | Video duration in seconds. | 5 | Min: 1, Max: 8 |
| `seed` | integer | No | Random seed. If not set, a random seed is used. | null | - |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q2-pro-flfv",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q2-pro-flfv",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../vidu_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Video is currently being rendered |
| `success` | Video generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Base fee + per second
* **Price**: $0.075 baseline + $0.05 per second of video
* **Unit**: Video
## Tips for Better Results
1. **Provide Clear Frames**: Ensure the first and last frame images have consistent subjects and lighting for smoother transitions.
2. **Logical Prompts**: Describe how the transition between the two states should occur.
3. **Mind the Limits**: The maximum duration for this model is 8 seconds.
# vidu-q2-pro-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/vidu-q2-pro-i2v
API usage guide for vidu-q2-pro-i2v.
**Model ID**
```bash theme={null}
vidu-q2-pro-i2v
```
**Calling method:** async
# Vidu Q2 Pro Image-to-Video API Usage Guide
## Overview
**Vidu Q2 Pro** is an image-to-video model designed to generate high-quality 720p video content from a starting image and a descriptive text prompt. It supports custom durations up to 10 seconds. This model is hosted externally by Vidu and accessible via the GMI Cloud request queue.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q2-pro-i2v",
"payload": {
"prompt": "A cinematic drone shot moving forward from this scene",
"images": "https://example.com/start_frame.jpg",
"duration": 5,
"seed": 42
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ---------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------- |
| `images` | string | Yes | An image to be used as the start frame of the generated video. Exactly 1 image. Accepts public URL or Base64; formats: png, jpeg, jpg, webp. | - | Exactly 1 image |
| `prompt` | string | Yes | Text prompt (max 2000 characters) describing the desired video. | - | Max 2000 chars |
| `duration` | integer | No | Video duration in seconds. | 5 | Min: 1, Max: 10 |
| `seed` | integer | No | Random seed. If not set, a random seed is used. | null | - |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q2-pro-i2v",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q2-pro-i2v",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../vidu_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Video is currently being rendered |
| `success` | Video generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Base fee + per second
* **Price**: $0.075 baseline, +$0.05 every second of video
* **Unit**: Video
## Tips for Better Results
1. **High-Quality Inputs**: Use clear, high-resolution starting images for the best results.
2. **Prompt Alignment**: Describe the motion, lighting, and camera movement you want to see applied to the starting image.
3. **Mind the Limits**: The maximum duration for this model is 10 seconds.
# vidu-q3-pro-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/vidu-q3-pro-i2v
API usage guide for vidu-q3-pro-i2v.
**Model ID**
```bash theme={null}
vidu-q3-pro-i2v
```
**Calling method:** async
# Vidu Q3 Pro Image-to-Video API Usage Guide
## Overview
**Vidu Q3 Pro** is an image-to-video model designed to generate high-quality 1080p video content from a starting image and a descriptive text prompt. It supports custom durations up to 16 seconds and optional audio generation. This model is hosted externally by Vidu and accessible via the GMI Cloud request queue.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q3-pro-i2v",
"payload": {
"prompt": "A cinematic drone shot moving forward from this scene",
"images": "https://example.com/start_frame.jpg",
"duration": 5,
"audio": true,
"seed": 42
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ---------- | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------- | ------- | --------------- |
| `images` | string | Yes | An image to be used as the start frame of the generated video. Accepts public URL or Base64; formats: png, jpeg, jpg, webp. | - | Exactly 1 image |
| `prompt` | string | Yes | Text prompt (max 2000 characters) describing the desired video. | - | Max 2000 chars |
| `duration` | integer | No | Video duration in seconds. | 5 | Min: 1, Max: 16 |
| `audio` | boolean | No | Whether to have audio in the video or not. | true | - |
| `seed` | integer | No | Random seed. If not set, a random seed is used. | null | - |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q3-pro-i2v",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q3-pro-i2v",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../vidu_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Video is currently being rendered |
| `success` | Video generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Per second of video
* **Price**: \$0.16 per second
* **Unit**: Video Second
## Tips for Better Results
1. **High-Quality Inputs**: Use clear, high-resolution starting images for the best results.
2. **Prompt Alignment**: Describe the motion, lighting, and camera movement you want to see applied to the starting image.
3. **Audio Sync**: Keep the audio toggle true if your prompt includes elements that produce sound.
# vidu-q3-pro-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/vidu-q3-pro-t2v
API usage guide for vidu-q3-pro-t2v.
**Model ID**
```bash theme={null}
vidu-q3-pro-t2v
```
**Calling method:** async
# Vidu Q3 Pro Text-to-Video API Usage Guide
## Overview
**Vidu Q3 Pro** is a text-to-video model designed to generate high-quality 1080p video content from descriptive prompts. It supports custom durations up to 16 seconds and optional audio generation. This model is hosted externally by Vidu and accessible via the GMI Cloud request queue.
## Authentication
All API requests require authentication using your API key. Include it in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q3-pro-t2v",
"payload": {
"prompt": "Cinematic shot of a futuristic city with flying vehicles, sunset lighting, high detail",
"duration": 5,
"audio": true,
"seed": 42
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ---------- | ------- | -------- | --------------------------------------- | ------- | --------------- |
| `prompt` | string | Yes | Text description of the desired video. | - | Max 2000 chars |
| `duration` | integer | No | Length of the video in seconds. | 5 | Min: 1, Max: 16 |
| `audio` | boolean | No | Whether to include generated audio. | false | - |
| `seed` | integer | No | Specific seed for reproducible results. | null | - |
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q3-pro-t2v",
"status": "queued",
"created_at": 1772184500
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Response
```json theme={null}
{
"request_id": "8fbb88gd-cd78-5132-0g2c-07c4ge944225",
"model": "vidu-q3-pro-t2v",
"status": "success",
"outcome": {
"media_urls": [
{
"id": "0",
"url": "https://storage.googleapis.com/gmi-generated-assets/.../vidu_output_0.mp4"
}
]
}
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------------ |
| `queued` | Request is waiting in the queue |
| `processing` | Video is currently being rendered |
| `success` | Video generation completed |
| `failed` | Generation failed (check logs for details) |
| `cancelled` | Request was manually cancelled |
## Pricing
* **Pricing Type**: Per second of video
* **Price**: \$0.16 per second
* **Unit**: Video Second
## Tips for Better Results
1. **Prompt Detail**: Describe lighting, camera movement, and atmosphere for better cinematic results.
2. **Audio Sync**: Enabling audio works best when the prompt includes sound-producing elements (e.g., "thunderstorm", "crowded street").
3. **Consistency**: Use a fixed `seed` value if you want to tweak a prompt while keeping the general composition similar.
# Wan-AI_Wan2.1-FLF2V-14B-720P
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan-ai-wan2-1-flf2v-14b-720p
API usage guide for Wan-AI_Wan2.1-FLF2V-14B-720P.
**Model ID**
```bash theme={null}
Wan-AI_Wan2.1-FLF2V-14B-720P
```
**Calling method:** async
# Wan-AI\_Wan2.1-FLF2V-14B-720P API Usage Guide
## Overview
Wan2.1 FLF2V-14B-720P is a state-of-the-art first-last-frame-to-video generation model that creates dynamic videos from first and last frame images. This model generates smooth transitions and interpolations between two given frames, achieving exceptional performance in frame-to-video generation.
### Key Features
* High-definition 720P video output
* Advanced frame interpolation technology
* Chinese and English text generation capabilities
* Multi-GPU support with FSDP + xDiT USP technology
* 14B parameter Diffusion Transformer architecture
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://api.example.com/api/v1/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Wan-AI_Wan2.1-FLF2V-14B-720P",
"payload": {
"prompt": "A beautiful sunset transition from day to night",
"first_frame_image": "your_first_frame_image_data_here",
"last_frame_image": "your_last_frame_image_data_here",
"video_length": 5,
"prompt_extend": false,
"seed": -1
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| --------------------------- | ------- | -------- | ---------------------------------------- | ------- | --------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be "Wan-AI\_Wan2.1-FLF2V-14B-720P" |
| `payload.prompt` | string | Yes | Text prompt describing the desired video | - | Required |
| `payload.first_frame_image` | string | Yes | Base64 image for the first frame | - | Required |
| `payload.last_frame_image` | string | Yes | Base64 image for the last frame | - | Required |
| `payload.video_length` | integer | No | Length of the generated video in seconds | 5 | 5, 10 |
| `payload.prompt_extend` | boolean | No | Enable advanced prompt extension | false | true/false |
| `payload.seed` | integer | No | Seed for reproducible results | -1 | -1 to 2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Wan-AI_Wan2.1-FLF2V-14B-720P",
"status": "queued",
"created_at": 1749002469,
"updated_at": 1749002469,
"queued_at": 1749002469
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Wan-AI_Wan2.1-FLF2V-14B-720P",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A beautiful sunset transition from day to night",
"first_frame_image": "your_first_frame_image_data_here",
"last_frame_image": "your_last_frame_image_data_here",
"video_length": 5,
"prompt_extend": false,
"seed": -1
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/path/video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/path/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1749002469,
"updated_at": 1749002475,
"queued_at": 1749002469
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------ |
| `queued` | Request is waiting to be processed |
| `processing` | Request is currently being processed |
| `success` | Request completed successfully |
| `failed` | Request failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=Wan-AI_Wan2.1-FLF2V-14B-720P
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests?model_id=Wan-AI_Wan2.1-FLF2V-14B-720P" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Wan-AI_Wan2.1-FLF2V-14B-720P
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Wan-AI_Wan2.1-FLF2V-14B-720P" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Wan-AI_Wan2.1-FLF2V-14B-720P",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.06 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.06 = $0.30
* 10-second video: 10 × $0.06 = $0.60
## Video Specifications
* **Duration**: 5-10 seconds
* **Resolution**: 720P (1280x720)
* **Quality**: High-definition with excellent detail and clarity
## Tips for Better Results
1. **Image Quality**: Use high-quality, clear images for first and last frames
2. **Prompt Writing**: Use detailed, descriptive prompts in Chinese for best results
3. **Frame Selection**: Choose frames that have clear visual differences and logical connection
4. **Performance Optimization**: Use appropriate video\_length, enable prompt\_extend for complex scenarios, use seed for reproducibility
# Wan-AI_Wan2.1-I2V-14B-480P
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan-ai-wan2-1-i2v-14b-480p
API usage guide for Wan-AI_Wan2.1-I2V-14B-480P.
**Model ID**
```bash theme={null}
Wan-AI_Wan2.1-I2V-14B-480P
```
**Calling method:** async
# Wan-AI\_Wan2.1-I2V-14B-480P API Usage Guide
## Overview
**Wan-AI\_Wan2.1-I2V-14B-480P** is a comprehensive and open video foundation model that transforms static images into dynamic videos. This 480P-optimized version offers advantages in terms of fast generation and excellent quality, making it ideal for efficient video creation workflows.
### Key Features:
* **SOTA Performance**: Consistently outperforms existing open-source models and state-of-the-art commercial solutions across multiple benchmarks
* **Fast Generation**: Optimized for 480P resolution providing faster generation times while maintaining excellent quality
* **Consumer-GPU Friendly**: More accessible for consumer-grade hardware with lower VRAM requirements
* **Visual Text Generation**: Capable of generating both Chinese and English text with robust text generation capabilities
* **Multi-GPU Support**: Optimized for both single and multi-GPU inference using FSDP + xDiT USP technology
### Use Cases:
* Animating static images efficiently
* Creating dynamic presentations from still photos
* Bringing artwork and photographs to life
* Rapid prototyping for video content
* Marketing and advertising content creation
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://api.example.com/api/v1/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Wan-AI_Wan2.1-I2V-14B-480P",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape with dramatic motion and wind effects",
"path_input_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 42
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| -------------------------- | ------- | -------- | ------------------------------------------------------------------------ | ------- | ------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be "Wan-AI\_Wan2.1-I2V-14B-480P" |
| `payload.prompt` | string | Yes | Detailed text description of the desired video content, motion and style | - | Required |
| `payload.path_input_image` | string | Yes | Input image to be transformed into a video | - | Required |
| `payload.video_length` | integer | No | Length of the generated video in seconds | 5 | Options: 5, 10 |
| `payload.prompt_extend` | boolean | No | Enable advanced prompt extension for better results | false | true/false |
| `payload.seed` | integer | No | Seed for reproducible results | -1 | -1 to 2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Wan-AI_Wan2.1-I2V-14B-480P",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Wan-AI_Wan2.1-I2V-14B-480P",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape with dramatic motion and wind effects",
"path_input_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 42
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=Wan-AI_Wan2.1-I2V-14B-480P
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests?model_id=Wan-AI_Wan2.1-I2V-14B-480P" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Wan-AI_Wan2.1-I2V-14B-480P
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Wan-AI_Wan2.1-I2V-14B-480P" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Wan-AI_Wan2.1-I2V-14B-480P",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.04 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.04 = $0.20
* 10-second video: 10 × $0.04 = $0.40
## Video Specifications
* **Duration**: 5-10 seconds
* **Resolution**: Fixed at 480P (832x480)
* **Quality**: Excellent quality optimized for fast generation
## Tips for Better Results
1. **High-Quality Input Images**: Use clear, well-lit images with good composition
2. **Detailed Prompts**: Provide comprehensive descriptions of desired motion and style
3. **Prompt Extension**: Enable for enhanced results with more detailed scene generation
4. **Seed Usage**:
* Use -1 for random generation (default)
* Use specific values (0-2147483647) for reproducible results
5. **Video Length**:
* 5 seconds: Quick animations, social media content
* 10 seconds: More complex motion sequences, detailed storytelling
6. **Image Requirements**:
* Use high-quality images with clear subjects
* Avoid overly complex or cluttered images
* Ensure good lighting and contrast
## Parameter Examples
### Landscape Animation
```json theme={null}
{
"prompt": "A serene mountain lake with gentle ripples and flowing water motion",
"path_input_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 12345
}
```
### Portrait Animation
```json theme={null}
{
"prompt": "A person walking through a forest with flowing hair and natural movement",
"path_input_image": "your_image_data_here",
"video_length": 5,
"prompt_extend": false,
"seed": -1
}
```
### Artistic Transformation
```json theme={null}
{
"prompt": "A painting coming to life with flowing brushstrokes and dynamic colors",
"path_input_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 42
}
```
### Product Animation
```json theme={null}
{
"prompt": "A product rotating smoothly with subtle lighting changes and professional presentation",
"path_input_image": "your_image_data_here",
"video_length": 5,
"prompt_extend": false,
"seed": 789
}
```
### Nature Animation
```json theme={null}
{
"prompt": "Flowers blooming with gentle swaying motion and natural wind effects",
"path_input_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": -1
}
```
## Advanced Features
### Prompt Extension
Enable advanced prompt extension for enhanced scene generation:
```json theme={null}
{
"prompt": "A magical forest scene with flowing elements",
"path_input_image": "your_image_data_here",
"prompt_extend": true,
"video_length": 10
}
```
### Reproducible Results
Use specific seeds for consistent video generation:
```json theme={null}
{
"prompt": "A flowing river with gentle motion",
"path_input_image": "your_image_data_here",
"seed": 42,
"video_length": 10
}
```
### Model Architecture Details
* **Architecture**: 14B parameter Diffusion Transformer
* **Dimension**: 5120
* **Heads**: 40
* **Layers**: 40
* **Resolution**: 480P (832x480)
* **VRAM Requirement**: Lower than 720P variant, more accessible for consumer GPUs
## Best Practices
1. **Image Quality**: Use high-resolution, well-composed images for best results
2. **Motion Description**: Be specific about the type of motion you want to see
3. **Prompt Extension**: Enable for complex scenes requiring detailed generation
4. **Seed Management**: Use consistent seeds for series of related videos
5. **Fast Generation**: This 480P model is optimized for quick turnaround times
6. **Consumer Hardware**: More accessible for users with standard GPU setups
## Image Input Guidelines
### Image Requirements
* **Quality**: High-resolution images work best
* **Composition**: Clear subjects with good framing
* **Lighting**: Well-lit images with good contrast
* **Content**: Avoid overly complex or cluttered scenes
# Wan-AI_Wan2.1-I2V-14B-720P
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan-ai-wan2-1-i2v-14b-720p
API usage guide for Wan-AI_Wan2.1-I2V-14B-720P.
**Model ID**
```bash theme={null}
Wan-AI_Wan2.1-I2V-14B-720P
```
**Calling method:** async
# Wan-AI\_Wan2.1-I2V-14B-720P API Usage Guide
## Overview
**Wan-AI\_Wan2.1-I2V-14B-720P** is a comprehensive and open video foundation model that transforms static images into dynamic videos. After thousands of rounds of human evaluations, this model has outperformed both closed-source and open-source alternatives, achieving state-of-the-art performance.
### Key Features:
* **SOTA Performance**: Consistently outperforms existing open-source models and state-of-the-art commercial solutions across multiple benchmarks
* **High Definition**: Creates high-quality videos at 720P resolution
* **Visual Text Generation**: Capable of generating both Chinese and English text with robust text generation capabilities
* **Multi-GPU Support**: Optimized for both single and multi-GPU inference using FSDP + xDiT USP technology
### Use Cases:
* Animating static images
* Creating dynamic presentations from still photos
* Bringing artwork and photographs to life
* Marketing and advertising content
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://api.example.com/api/v1/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Wan-AI_Wan2.1-I2V-14B-720P",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape with dramatic motion and wind effects",
"path_to_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 42
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------------- | ------- | -------- | ------------------------------------------------------------------------ | ------- | ------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be "Wan-AI\_Wan2.1-I2V-14B-720P" |
| `payload.prompt` | string | Yes | Detailed text description of the desired video content, motion and style | - | Required |
| `payload.path_to_image` | string | Yes | Input image to be transformed into a video | - | Required |
| `payload.video_length` | integer | No | Length of the generated video in seconds | 5 | Options: 5, 10 |
| `payload.prompt_extend` | boolean | No | Enable advanced prompt extension for better results | false | true/false |
| `payload.seed` | integer | No | Seed for reproducible results | -1 | -1 to 2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Wan-AI_Wan2.1-I2V-14B-720P",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Wan-AI_Wan2.1-I2V-14B-720P",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape with dramatic motion and wind effects",
"path_to_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 42
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"qworker_id": "worker-123",
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/apikey/requests?model_id=Wan-AI_Wan2.1-I2V-14B-720P
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/requests?model_id=Wan-AI_Wan2.1-I2V-14B-720P" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Get Model Information
### Endpoint
```
GET /api/v1/apikey/models/Wan-AI_Wan2.1-I2V-14B-720P
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models/Wan-AI_Wan2.1-I2V-14B-720P" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"Wan-AI_Wan2.1-I2V-14B-720P",
"other-model-1",
"other-model-2"
]
}
```
## Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.60 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.60 = $3.00
* 10-second video: 10 × $0.60 = $6.00
## Video Specifications
* **Duration**: 5-10 seconds
* **Resolution**: Fixed at 720P (1280x720)
* **Quality**: High definition with excellent detail and clarity
## Tips for Better Results
1. **High-Quality Input Images**: Use clear, well-lit images with good composition
2. **Detailed Prompts**: Provide comprehensive descriptions of desired motion and style
3. **Prompt Extension**: Enable for enhanced results with more detailed scene generation
4. **Seed Usage**:
* Use -1 for random generation (default)
* Use specific values (0-2147483647) for reproducible results
5. **Video Length**:
* 5 seconds: Quick animations, social media content
* 10 seconds: More complex motion sequences, detailed storytelling
6. **Image Requirements**:
* Use high-quality images with clear subjects
* Avoid overly complex or cluttered images
* Ensure good lighting and contrast
7. **High Definition Benefits**:
* Better detail preservation
* Sharper motion sequences
* Professional quality output
## Parameter Examples
### High-Quality Landscape Animation
```json theme={null}
{
"prompt": "A serene mountain lake with gentle ripples and flowing water motion",
"path_to_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 12345
}
```
### Professional Portrait Animation
```json theme={null}
{
"prompt": "A person walking through a forest with flowing hair and natural movement",
"path_to_image": "your_image_data_here",
"video_length": 5,
"prompt_extend": false,
"seed": -1
}
```
### Artistic Transformation
```json theme={null}
{
"prompt": "A painting coming to life with flowing brushstrokes and dynamic colors",
"path_to_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": 42
}
```
### Product Animation
```json theme={null}
{
"prompt": "A product rotating smoothly with subtle lighting changes and professional presentation",
"path_to_image": "your_image_data_here",
"video_length": 5,
"prompt_extend": false,
"seed": 789
}
```
### Nature Animation
```json theme={null}
{
"prompt": "Flowers blooming with gentle swaying motion and natural wind effects",
"path_to_image": "your_image_data_here",
"video_length": 10,
"prompt_extend": true,
"seed": -1
}
```
## Advanced Features
### Prompt Extension
Enable advanced prompt extension for enhanced scene generation:
```json theme={null}
{
"prompt": "A magical forest scene with flowing elements",
"path_to_image": "your_image_data_here",
"prompt_extend": true,
"video_length": 10
}
```
### Reproducible Results
Use specific seeds for consistent video generation:
```json theme={null}
{
"prompt": "A flowing river with gentle motion",
"path_to_image": "your_image_data_here",
"seed": 42,
"video_length": 10
}
```
### Model Architecture Details
* **Architecture**: 14B parameter Diffusion Transformer
* **Dimension**: 5120
* **Heads**: 40
* **Layers**: 40
* **Resolution**: 720P (1280x720)
* **VRAM Requirement**: 24GB+ recommended (supports multi-GPU inference)
## Best Practices
1. **Image Quality**: Use high-resolution, well-composed images for best results
2. **Motion Description**: Be specific about the type of motion you want to see
3. **Prompt Extension**: Enable for complex scenes requiring detailed generation
4. **Seed Management**: Use consistent seeds for series of related videos
5. **High Definition**: This 720P model provides superior quality for professional use
6. **Hardware Requirements**: Ensure adequate GPU resources for optimal performance
## Image Input Guidelines
### Image Requirements
* **Quality**: High-resolution images work best
* **Composition**: Clear subjects with good framing
* **Lighting**: Well-lit images with good contrast
* **Content**: Avoid overly complex or cluttered scenes
# Wan-AI_Wan2.1-T2V-14B
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan-ai-wan2-1-t2v-14b
API usage guide for Wan-AI_Wan2.1-T2V-14B.
**Model ID**
```bash theme={null}
Wan-AI_Wan2.1-T2V-14B
```
**Calling method:** async
# Wan-AL\_Wan2.1-T2V-14B API Usage Guide
## Overview
**Wan-AL\_Wan2.1-T2V-14B** is a comprehensive and open video foundation model that pushes the boundaries of text-to-video generation. After thousands of rounds of human evaluations, this model has outperformed both closed-source and open-source alternatives, achieving state-of-the-art performance.
### Key Features:
* **SOTA Performance**: Consistently outperforms existing open-source models and state-of-the-art commercial solutions across multiple benchmarks
* **High Definition**: Creates high-quality videos at both 480P and 720P resolution
* **Visual Text Generation**: First video model capable of generating both Chinese and English text with robust text generation capabilities
* **Multi-GPU Support**: Optimized for both single and multi-GPU inference using FSDP + xDiT USP technology
### Use Cases:
* Creative content generation
* Storytelling and visualization
* Educational materials and presentations
* Marketing and advertising content
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "Wan-AL_Wan2.1-T2V-14B",
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset with dramatic lighting",
"video_resolution": "832x480",
"video_length": 5,
"prompt_extend": true,
"seed": -1
}
}'
```
# Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------- | -------- | ------------------------------------------------------------------------- | ---------- | ------------------------------ |
| prompt | string | Yes | Detailed text description of the desired video content, motion, and style | - | Required |
| video\_resolution | string | No | Resolution of the generated video | "832\*480" | Options: "832*480", "1280*720" |
| video\_length | integer | No | Length of the generated video in seconds | 5 | Options: 5, 10 |
| prompt\_extend | boolean | No | Enable advanced prompt extension for better results | false | true/false |
| seed | integer | No | Seed for reproducible results. Use -1 for random result | -1 | -1 to 2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "Wan-AI_Wan2.1-T2V-14B",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "Wan-AI_Wan2.1-T2V-14B",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A majestic eagle soaring through a mountain landscape at sunset with dramatic lighting",
"video_resolution": "1280*720",
"video_length": 10,
"prompt_extend": true,
"seed": 42
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=Wan-AI_Wan2.1-T2V-14B
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=Wan-AI_Wan2.1-T2V-14B' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## Get Model Information
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models/Wan-AI_Wan2.1-T2V-14B
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models/Wan-AI_Wan2.1-T2V-14B' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
## List Available Models
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/models
```
### Example
```bash theme={null}
curl --location 'https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/models' \
--header 'Authorization: Bearer YOUR_API_KEY'
```
### Response
```json theme={null}
{
"model_ids": [
"Wan-AI_Wan2.1-T2V-14B",
"other-model-1",
"other-model-2"
]
}
```
# Pricing
* **Pricing Type**: Video length based pricing
* **Price**: \$0.08 per second
* **Unit**: Second
Example cost calculation:
* 5-second video: 5 × $0.08 = $0.40
* 10-second video: 10 × $0.08 = $0.80
## Video Specifications
* **Duration**: 5, 10 seconds
* **Resolutions**:
* 480P (832×480) – economical option
* 720P (1280×720) – high definition
* **Quality**: State-of-the-art performance with advanced text generation capabilities
## Tips for Better Results
1. **Detailed Prompts**: Provide comprehensive descriptions including scene, motion, lighting, and style
2. **Resolution Selection**:
* Use 480P for faster generation and testing
* Use 720P for high-quality final content
3. **Prompt Extension**: Enable for enhanced results with more detailed scene generation
4. **Seed Usage**:
* Use `-1` for random generation (default)
* Use specific values (0–2147483647) for reproducible results
5. **Video Length**:
* 5 seconds: Quick content, social media
* 10 seconds: More complex scenes, detailed storytelling
6. **Text Generation**: This model excels at generating videos with text elements in both Chinese and English
## Parameter Examples
### High-Quality Landscape Scene
```json theme={null}
{
"prompt": "A serene mountain lake reflecting snow-capped peaks at golden hour with gentle ripples on the water surface",
"video_resolution": "1280*720",
"video_length": 10,
"prompt_extend": true,
"seed": 12345
}
```
### Reproducible Content
```json theme={null}
{
"prompt": "A futuristic cityscape with flying cars and neon lights at night",
"video_resolution": "1280*720",
"video_length": 10,
"prompt_extend": true,
"seed": 42
}
```
### Text-Heavy Content
```json theme={null}
{
"prompt": "A classroom scene with a teacher writing mathematical equations on a blackboard, clear readable text",
"video_resolution": "1280*720",
"video_length": 10,
"prompt_extend": true,
"seed": -1
}
```
### Creative Animation
```json theme={null}
{
"prompt": "An abstract geometric pattern with flowing colors and dynamic movement",
"video_resolution": "1280*720",
"video_length": 5,
"prompt_extend": false,
"seed": 789
}
```
## Advanced Features
### Prompt Extension
Enable advanced prompt extension for enhanced scene generation:
```json theme={null}
{
"prompt": "A magical forest with glowing mushrooms",
"prompt_extend": true,
"video_resolution": "1280*720",
"video_length": 10
}
```
### Reproducible Results
Use specific seeds for consistent video generation:
```json theme={null}
{
"prompt": "A flowing river in a forest",
"seed": 42,
"video_resolution": "1280*720",
"video_length": 10
}
```
# Best Practices
1. **Detailed Descriptions**: Include specific details about motion, lighting, atmosphere
2. **Text Elements**: This model excels at generating videos with readable text
3. **Resolution Choice**: Balance quality vs. generation time based on your needs
4. **Seed Management**: Use consistent seeds for series of related videos
5. **Prompt Extension**: Enable for complex scenes requiring detailed generation
# Wan2.2-Animate-14B
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-2-animate-14b
API usage guide for Wan2.2-Animate-14B.
**Model ID**
```bash theme={null}
Wan2.2-Animate-14B
```
**Calling method:** async
Wan2.2-Animate-14B is a state-of-the-art video animation model that supports image-to-video generation using template videos. It features pose transfer, face swapping, and advanced animation capabilities with support for various resolutions and frame rates.
# wan2.5-i2v-preview
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-5-i2v-preview
API usage guide for wan2.5-i2v-preview.
**Model ID**
```bash theme={null}
wan2.5-i2v-preview
```
**Calling method:** async
Wan2.5 I2V Preview is a comprehensive and open video foundation model that transforms static images into dynamic videos. This model supports advanced features including prompt extension, audio input, watermark control, and various resolution and duration options. It excels at animating static images with detailed motion, camera movements, and visual effects while maintaining the original image's composition and style.
# wan2.6-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-6-i2v
API usage guide for wan2.6-i2v.
**Model ID**
```bash theme={null}
wan2.6-i2v
```
**Calling method:** async
# wan2.6-i2v API Usage Guide
## Overview
**wan2.6-i2v** converts images into videos with intelligent shot scheduling, optional prompt extension, and audio support.
Requests are sent through the request-queue API and results are fetched by polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.6-i2v",
"payload": {
"prompt": "Slow cinematic pan around a futuristic tower at sunset with neon accents",
"img_url": "https://example.com/reference-image.jpg",
"audio_url": null,
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"duration": 10,
"prompt_extend": true,
"shot_type": "single",
"audio": true,
"watermark": false,
"seed": 987654321
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | -------------- | -------- | ------------------------------------------ | -------- | ---------------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"wan2.6-i2v"` |
| `payload.prompt` | string | No | Text prompt guiding motion/styling | "" | Max 1500 characters |
| `payload.img_url` | string (URL) | Yes | Reference image | - | 360–2000 px width/height, ≤10 MB, 1 image |
| `payload.audio_url` | string (URL) | No | wav/mp3 audio to align with | null | 3–30s, ≤15 MB; excess trimmed to duration |
| `payload.negative_prompt` | string | No | What to avoid in the video | "" | Max 500 characters |
| `payload.resolution` | string (enum) | No | Output resolution tier | "1080P" | Options: "720P", "1080P"; aspect ratio follows input image |
| `payload.duration` | integer (enum) | No | Video length in seconds | 5 | Options: 5, 10, 15 |
| `payload.prompt_extend` | boolean | No | LLM rewrites prompt for richer detail | true | - |
| `payload.shot_type` | string (enum) | No | Single vs multi-shot sequencing | "single" | Options: "single", "multi"; applied when `prompt_extend` is true |
| `payload.audio` | boolean | No | Auto-generate audio if `audio_url` not set | true | - |
| `payload.watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `payload.seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.6-i2v",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.6-i2v",
"status": "success",
"is_public": false,
"payload": {
"prompt": "Slow cinematic pan around a futuristic tower at sunset with neon accents",
"img_url": "https://example.com/reference-image.jpg",
"audio_url": null,
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"duration": 10,
"prompt_extend": true,
"shot_type": "single",
"audio": true,
"watermark": false,
"seed": 987654321
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.6-i2v
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.6-i2v" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"wan2.6-t2v",
"wan2.6-i2v",
"wan2.6-r2v"
]
}
```
# wan2.6-r2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-6-r2v
API usage guide for wan2.6-r2v.
**Model ID**
```bash theme={null}
wan2.6-r2v
```
**Calling method:** async
# wan2.6-r2v API Usage Guide
## Overview
**wan2.6-r2v** performs reference-to-video generation.
Requests are submitted via the request-queue API and results are retrieved by polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.6-r2v",
"payload": {
"prompt": "character1 walks into a cozy cafe and greets character2 at the counter",
"reference_video_urls": [
"https://example.com/character1.mp4",
"https://example.com/character2.mp4"
],
"negative_prompt": "blurry, low quality, distorted",
"size": "1920*1080",
"duration": 10,
"shot_type": "single",
"watermark": false,
"seed": 424242
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------------ | ----------------------- | -------- | -------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"wan2.6-r2v"` |
| `payload.prompt` | string | No | Text prompt describing the scene; reference characters with `character1`, `character2`, etc. | "" | Max 1500 characters |
| `payload.reference_video_urls` | array of strings (URLs) | Yes | Reference videos used to extract appearance/voice | - | 1–3 videos; each contains one character; order maps to `character1..3` |
| `payload.negative_prompt` | string | No | What to avoid in the video | "" | Max 500 characters |
| `payload.size` | string (enum) | No | Output resolution | "1920\*1080" | Options: "1280\*720", "720\*1280", "960\*960", "1088\*832", "832\*1088", "1920\*1080", "1080\*1920", "1440\*1440", "1632\*1248", "1248\*1632" |
| `payload.duration` | integer (enum) | No | Video length in seconds | 5 | Options: 5, 10 |
| `payload.shot_type` | string (enum) | No | Single vs multi-shot sequencing | "single" | Options: "single", "multi" |
| `payload.watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `payload.seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.6-r2v",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.6-r2v",
"status": "success",
"is_public": false,
"payload": {
"prompt": "character1 walks into a cozy cafe and greets character2 at the counter",
"reference_video_urls": [
"https://example.com/character1.mp4",
"https://example.com/character2.mp4"
],
"negative_prompt": "blurry, low quality, distorted",
"size": "1920*1080",
"duration": 10,
"shot_type": "single",
"watermark": false,
"seed": 424242
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.6-r2v
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.6-r2v" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"wan2.6-t2v",
"wan2.6-i2v",
"wan2.6-r2v"
]
}
```
# wan2.6-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-6-t2v
API usage guide for wan2.6-t2v.
**Model ID**
```bash theme={null}
wan2.6-t2v
```
**Calling method:** async
# wan2.6-t2v API Usage Guide
## Overview
**wan2.6-t2v** is Wan AI's text-to-video model with reference-aware generation.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.6-t2v",
"payload": {
"prompt": "Dynamic product showcase with cinematic camera moves and soft rim lighting",
"negative_prompt": "blurry, low quality, distorted",
"size": "1920*1080",
"duration": 10,
"prompt_extend": true,
"audio_url": null,
"audio": true,
"watermark": false,
"seed": 12345
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ------------------------- | -------------- | -------- | ------------------------------------------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `model` | string | Yes | Model identifier | - | Must be `"wan2.6-t2v"` |
| `payload.prompt` | string | Yes | Text prompt describing desired video | - | Max 1500 characters |
| `payload.audio_url` | string (URL) | No | wav/mp3 audio to drive the video | null | 3–30s, ≤15 MB; excess trimmed to duration |
| `payload.negative_prompt` | string | No | What to avoid in the video | "" | Max 500 characters |
| `payload.size` | string (enum) | No | Output resolution | "1920\*1080" | Options: "1280\*720", "720\*1280", "960\*960", "1088\*832", "832\*1088", "1920\*1080", "1080\*1920", "1440\*1440", "1632\*1248", "1248\*1632" |
| `payload.duration` | integer (enum) | No | Video length in seconds | 5 | Options: 5, 10, 15 |
| `payload.prompt_extend` | boolean | No | Let LLM rewrite prompt for richer detail | true | - |
| `payload.shot_type` | string (enum) | No | Single vs multi-shot sequencing | "single" | Options: "single", "multi"; applied when `prompt_extend` is true |
| `payload.audio` | boolean | No | Auto-generate audio if `audio_url` not set | true | - |
| `payload.watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `payload.seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.6-t2v",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.6-t2v",
"status": "success",
"is_public": false,
"payload": {
"prompt": "Dynamic product showcase with cinematic camera moves and soft rim lighting",
"negative_prompt": "blurry, low quality, distorted",
"size": "1920*1080",
"duration": 10,
"prompt_extend": true,
"shot_type": "multi",
"audio_url": null,
"audio": true,
"watermark": false,
"seed": 12345
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.6-t2v
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.6-t2v" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://api.example.com/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"model_ids": [
"wan2.6-t2v",
"wan2.6-i2v",
"wan2.6-r2v"
]
}
```
# wan2.7-i2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-7-i2v
API usage guide for wan2.7-i2v.
**Model ID**
```bash theme={null}
wan2.7-i2v
```
**Calling method:** async
# wan2.7-i2v API Usage Guide
## Overview
**wan2.7-i2v** converts images into videos with improved visual fidelity, temporal consistency, and flexible media inputs. It supports first frame, last frame, driving audio, and first clip as media references, with continuous duration from 2 to 15 seconds.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-i2v",
"payload": {
"prompt": "Slow cinematic pan around a futuristic tower at sunset with neon accents",
"first_frame": "https://example.com/start-frame.jpg",
"last_frame": "https://example.com/end-frame.jpg",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"duration": 10,
"prompt_extend": true,
"watermark": false,
"seed": 987654321
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------------- | -------- | ------------------------------------- | ------- | ---------------------------- |
| `prompt` | string | No | Text prompt guiding motion/styling | "" | Max 1500 characters |
| `negative_prompt` | string | No | What to avoid in the video | "" | Max 500 characters |
| `first_frame` | image (URL) | No | Starting frame image | null | 360–2000 px, ≤10 MB, 1 image |
| `last_frame` | image (URL) | No | Ending frame image | null | 360–2000 px, ≤10 MB, 1 image |
| `driving_audio` | audio (URL) | No | Audio to drive video generation | null | wav/mp3, 3–30s, ≤15 MB |
| `first_clip` | video (URL) | No | Video clip used as starting reference | null | 1 video |
| `resolution` | string (enum) | No | Output resolution tier | "1080P" | Options: `"720P"`, `"1080P"` |
| `duration` | integer | No | Video length in seconds | 5 | 2–15 |
| `prompt_extend` | boolean | No | LLM rewrites prompt for richer detail | true | - |
| `watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.7-i2v",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.7-i2v",
"status": "success",
"is_public": false,
"payload": {
"prompt": "Slow cinematic pan around a futuristic tower at sunset with neon accents",
"first_frame": "https://example.com/start-frame.jpg",
"last_frame": "https://example.com/end-frame.jpg",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"duration": 10,
"prompt_extend": true,
"watermark": false,
"seed": 987654321
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-i2v
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-i2v" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Tips for Better Results
1. **Provide clear reference frames**: High-quality first/last frame images yield smoother interpolation
2. **Detailed prompts**: Describe motion, camera movement, and atmosphere explicitly
3. **Prompt Extension**: Keep `prompt_extend` enabled for short prompts
4. **Driving Audio**: Supply `driving_audio` for precise audio-visual synchronization
5. **First Clip**: Use `first_clip` to provide motion reference from an existing video
6. **Seed for reproducibility**: Fix a seed value to regenerate consistent results
# wan2.7-r2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-7-r2v
API usage guide for wan2.7-r2v.
**Model ID**
```bash theme={null}
wan2.7-r2v
```
**Calling method:** async
# wan2.7-r2v API Usage Guide
## Overview
**wan2.7-r2v** generates videos based on reference images and videos, preserving character appearance, object identity, scene layout, and vocal timbre. It supports an optional first frame for joint control and flexible aspect ratios with continuous duration from 2 to 15 seconds.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-r2v",
"payload": {
"prompt": "Video1 holds Image1 and plays a soothing ballad in a coffee shop, while Video2 smiles and walks towards him",
"reference_video": [
"https://example.com/role1.mp4",
"https://example.com/role2.mp4"
],
"reference_image": [
"https://example.com/object.png"
],
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"ratio": "16:9",
"duration": 10,
"prompt_extend": false,
"watermark": false,
"seed": 12345
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------------- | -------- | ------------------------------------------- | ------- | ------------------------------------------------------ |
| `prompt` | string | Yes | Text prompt describing desired video | - | Max 1500 characters |
| `negative_prompt` | string | No | What to avoid in the video | "" | Max 500 characters |
| `first_frame` | image (URL) | No | First frame image for joint control | null | Max 1 image |
| `reference_image` | array of URLs | No | Reference images for character/object/scene | \[] | Max 5; images + videos ≤ 5 total |
| `reference_video` | array of URLs | No | Reference videos for character/object/voice | \[] | Max 5; images + videos ≤ 5 total |
| `resolution` | string (enum) | No | Output resolution tier | "1080P" | Options: `"720P"`, `"1080P"` |
| `ratio` | string (enum) | No | Aspect ratio | "16:9" | Options: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"` |
| `duration` | integer | No | Video length in seconds | 5 | 2–15 |
| `prompt_extend` | boolean | No | LLM rewrites prompt for richer detail | true | - |
| `watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.7-r2v",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.7-r2v",
"status": "success",
"is_public": false,
"payload": {
"prompt": "Video1 holds Image1 and plays a soothing ballad in a coffee shop, while Video2 smiles and walks towards him",
"reference_video": ["https://example.com/role1.mp4", "https://example.com/role2.mp4"],
"reference_image": ["https://example.com/object.png"],
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"ratio": "16:9",
"duration": 10,
"prompt_extend": false,
"watermark": false,
"seed": 12345
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-r2v
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-r2v" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Tips for Better Results
1. **Reference naming in prompt**: Refer to reference videos as `Video1`, `Video2`, etc. and reference images as `Image1`, `Image2`, etc. in your prompt text
2. **Single character per reference**: Each reference asset used for a character must contain only a single character
3. **Avoid empty-scene videos**: Reference videos should contain the main character, not empty scenes
4. **First frame + references**: Combine a first frame with reference assets for tighter control over the starting composition
5. **Asset limits**: Maximum 1 first frame; at least 1 reference image or video required; total images + videos ≤ 5
6. **Seed for reproducibility**: Fix a seed value to regenerate consistent results
# wan2.7-t2v
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-7-t2v
API usage guide for wan2.7-t2v.
**Model ID**
```bash theme={null}
wan2.7-t2v
```
**Calling method:** async
# wan2.7-t2v API Usage Guide
## Overview
**wan2.7-t2v** is Wan AI's latest text-to-video model with improved visual quality and more flexible controls. It supports separate resolution and aspect-ratio selection, continuous duration from 2 to 15 seconds, and optional audio-driven generation.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Generation Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-t2v",
"payload": {
"prompt": "A drone shot gliding over a misty forest at sunrise, golden light breaking through the canopy",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"ratio": "16:9",
"duration": 10,
"audio_url": null,
"prompt_extend": true,
"watermark": false,
"seed": 12345
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------------- | -------- | ---------------------------------------- | ------- | ------------------------------------------------------ |
| `prompt` | string | Yes | Text prompt describing desired video | - | Max 1500 characters |
| `negative_prompt` | string | No | What to avoid in the video | "" | Max 500 characters |
| `audio_url` | string (URL) | No | wav/mp3 audio to drive the video | null | 3–30s, ≤15 MB; excess trimmed to duration |
| `resolution` | string (enum) | No | Output resolution tier | "1080P" | Options: `"720P"`, `"1080P"` |
| `ratio` | string (enum) | No | Aspect ratio | "16:9" | Options: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"` |
| `duration` | integer | No | Video length in seconds | 5 | 2–15 |
| `prompt_extend` | boolean | No | Let LLM rewrite prompt for richer detail | true | - |
| `watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.7-t2v",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.7-t2v",
"status": "success",
"is_public": false,
"payload": {
"prompt": "A drone shot gliding over a misty forest at sunrise, golden light breaking through the canopy",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"ratio": "16:9",
"duration": 10,
"prompt_extend": true,
"watermark": false,
"seed": 12345
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/generated-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | --------------------------------------- |
| `queued` | Request is waiting to be processed |
| `processing` | Video generation is in progress |
| `success` | Video generation completed successfully |
| `failed` | Video generation failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-t2v
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-t2v" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Tips for Better Results
1. **Detailed prompts**: Describe motion, camera movement, lighting, and atmosphere explicitly
2. **Prompt Extension**: Keep `prompt_extend` enabled for short prompts to let the model enrich them
3. **Negative prompts**: Exclude common artifacts like "blurry, low quality, deformed, extra fingers"
4. **Audio-driven**: Supply `audio_url` for precise audio-visual alignment
5. **Seed for reproducibility**: Fix a seed value to regenerate consistent results
6. **Flexible duration**: Take advantage of 2–15 second range for precise timing control
# wan2.7-videoedit
Source: https://docs.gmicloud.ai/model-quickstarts/video/wan2-7-videoedit
API usage guide for wan2.7-videoedit.
**Model ID**
```bash theme={null}
wan2.7-videoedit
```
**Calling method:** async
# wan2.7-videoedit API Usage Guide
## Overview
**wan2.7-videoedit** enables text-guided editing of existing videos. Provide a source video and describe the desired edits in a prompt. Optionally supply a reference image to guide the visual style or subject appearance of the edit.
Requests are submitted to the request-queue API and results are retrieved via polling.
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```
## Submit Video Edit Request
### Base URL
```
https://console.gmicloud.ai
```
### Endpoint
```
POST /api/v1/ie/requestqueue/apikey/requests
```
### Request Format
```bash theme={null}
curl -X POST "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-videoedit",
"payload": {
"prompt": "Change the background to a tropical beach at sunset",
"video": "https://example.com/source-video.mp4",
"reference_image": "https://example.com/beach-reference.jpg",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"duration": 5,
"audio_setting": "origin",
"prompt_extend": true,
"watermark": false,
"seed": 12345
}
}'
```
### Request Parameters
| Parameter | Type | Required | Description | Default | Constraints |
| ----------------- | ------------- | -------- | ------------------------------------------ | ------- | -------------------------------------------------------- |
| `prompt` | string | Yes | Text prompt describing the desired edit | - | Max 1500 characters |
| `negative_prompt` | string | No | What to avoid in the output | "" | Max 500 characters |
| `video` | video (URL) | Yes | Source video to edit | - | 1 video |
| `reference_image` | image (URL) | No | Reference image for style/subject guidance | null | Max 1 image |
| `resolution` | string (enum) | No | Output resolution tier | "1080P" | Options: `"720P"`, `"1080P"` |
| `duration` | integer | No | Output video length in seconds | - | 2–10 |
| `audio_setting` | string (enum) | No | Audio handling for the output video | "auto" | `"auto"`: model decides; `"origin"`: keep original audio |
| `prompt_extend` | boolean | No | LLM rewrites prompt for richer detail | true | - |
| `watermark` | boolean | No | Add fixed `AI Generated` watermark | false | - |
| `seed` | integer | No | Random seed for reproducibility | - | 0–2147483647 |
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"model": "wan2.7-videoedit",
"status": "queued",
"created_at": 1750442925,
"updated_at": 1750442925,
"queued_at": 1750442925
}
```
## Check Request Status
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests/{request_id}
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Response
```json theme={null}
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"org_id": "your-org-id",
"model": "wan2.7-videoedit",
"status": "success",
"is_public": false,
"payload": {
"prompt": "Change the background to a tropical beach at sunset",
"video": "https://example.com/source-video.mp4",
"reference_image": "https://example.com/beach-reference.jpg",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "1080P",
"duration": 5,
"audio_setting": "origin",
"prompt_extend": true,
"watermark": false,
"seed": 12345
},
"outcome": {
"video_url": "https://storage.googleapis.com/bucket/edited-video.mp4",
"thumbnail_image_url": "https://storage.googleapis.com/bucket/thumbnail.jpg"
},
"created_at": 1750442925,
"updated_at": 1750442930,
"queued_at": 1750442925
}
```
## Request Status Values
| Status | Description |
| ------------ | ------------------------------------ |
| `queued` | Request is waiting to be processed |
| `processing` | Video editing is in progress |
| `success` | Video editing completed successfully |
| `failed` | Video editing failed |
| `cancelled` | Request was cancelled |
## List Your Requests
### Endpoint
```
GET /api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-videoedit
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/ie/requestqueue/apikey/requests?model_id=wan2.7-videoedit" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## List Available Models
### Endpoint
```
GET /api/v1/apikey/models
```
### Example
```bash theme={null}
curl -X GET "https://console.gmicloud.ai/api/v1/apikey/models" \
-H "Authorization: Bearer YOUR_API_KEY"
```
## Tips for Better Results
1. **Be specific about edits**: Clearly describe what should change (e.g. "replace the sky with a stormy sky") rather than vague instructions
2. **Reference image**: Supply a reference image when you want the edit to match a specific visual style or subject appearance
3. **Audio setting**: Use `origin` to preserve the original audio track, or `auto` to let the model decide
4. **Prompt Extension**: Keep `prompt_extend` enabled for short prompts
5. **Duration**: Output duration is capped at 10 seconds; if not specified, the model decides based on the source video
6. **Seed for reproducibility**: Fix a seed value to regenerate consistent results
# Quick Start
Source: https://docs.gmicloud.ai/quickstart
Get up and running with GMI Cloud in three steps.
Sign in to the [GMI Cloud Console](https://console.gmicloud.ai). Go to **Settings → API Keys** and create a new key. Copy it — you'll use it in the next step.
GMI's inference API is OpenAI-compatible. Swap in your API key and endpoint:
```python Python theme={null}
from openai import OpenAI
client = OpenAI(
base_url="https://api.gmi-serving.com/v1",
api_key="YOUR_GMI_API_KEY",
)
response = client.chat.completions.create(
model="meta-llama/Llama-3.3-70B-Instruct",
messages=[{"role": "user", "content": "Hello, what can you do?"}],
)
print(response.choices[0].message.content)
```
```bash cURL theme={null}
curl https://api.gmi-serving.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_GMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Llama-3.3-70B-Instruct",
"messages": [{"role": "user", "content": "Hello, what can you do?"}]
}'
```
Pick where to go based on your use case:
* [Browse the model catalog](/model-quickstarts/text/overview) — text, image, video, and audio models
* [Set up a dedicated endpoint](/inference-engine/ie-intro) — reserve capacity for production
* [Provision GPU compute](/cluster-engine) — managed clusters and bare-metal for training
## Go deeper
Text, image, video, and audio models available on GMI.
Reserve capacity for production workloads.
Managed clusters and bare-metal for training and fine-tuning.
Build multi-step AI pipelines visually.
Full REST API docs for all GMI services.
Plug GMI into Hermes, Dify, and OpenClaw.