/* API Explorer */ .explorer-panel{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:24px 0 32px;background:var(--surface)} .explorer-config{padding:24px} .explorer-field{margin-bottom:16px;position:relative} .explorer-field.full{grid-column:1/-1} .explorer-field label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px} .explorer-field input,.explorer-field select,.explorer-field textarea{width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:.88rem;font-family:inherit;transition:border-color .15s} .explorer-field input:focus,.explorer-field select:focus,.explorer-field textarea:focus{outline:none;border-color:var(--accent)} .explorer-field textarea{resize:vertical;font-family:'JetBrains Mono',monospace;font-size:.82rem;line-height:1.5} .explorer-toggle-key{position:absolute;right:10px;top:28px;background:none;border:none;cursor:pointer;font-size:1rem;opacity:.5} .explorer-toggle-key:hover{opacity:1} .explorer-row{display:grid;grid-template-columns:1fr 1fr;gap:16px} .explorer-field.half{margin-bottom:16px} .explorer-cost{padding:10px 14px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);color:var(--green);font-size:.88rem;font-weight:600} .explorer-generate{width:100%;padding:14px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--accent),#5b4fd6);color:white;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px} .explorer-generate:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(124,108,255,.3)} .explorer-generate:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none} .explorer-generate.loading{background:var(--surface3);color:var(--muted)} .gen-icon{font-size:1.1rem} .explorer-result{border-top:1px solid var(--border)} .explorer-result-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface2);font-size:.82rem;font-weight:700;color:var(--muted)} .explorer-result-meta{display:flex;gap:12px;color:var(--muted);font-weight:500} .explorer-result-meta .success{color:var(--green)} .explorer-result-meta .error{color:var(--red)} .explorer-result-body{padding:20px 24px;max-height:400px;overflow-y:auto} .explorer-result-body img{max-width:100%;border-radius:8px;margin-bottom:12px} .explorer-result-body pre{font-size:.8rem;line-height:1.6;color:var(--muted2);white-space:pre-wrap;word-break:break-all} .explorer-code{border-top:1px solid var(--border)} .explorer-code-tabs{display:flex;background:var(--surface2);border-bottom:1px solid var(--border)} .code-tab{padding:10px 20px;border:none;background:none;color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s} .code-tab:hover{color:var(--text)} .code-tab.active{color:var(--accent);border-bottom-color:var(--accent)} @keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}} .loading-dots{animation:pulse 1.5s infinite}

Developer Documentation

Get from zero to generating images in under 5 minutes.

Quickstart

Get your API key

Sign up at ark-route.com/dashboard and copy your API key. You get 500 free credits (~50 images) on signup.

Make your first request

ArkRoute uses the OpenAI-compatible format. If you've used OpenAI's image API, you already know how to use ArkRoute.

Choose from 28 models

Switch between models by changing one parameter. Same endpoint, same auth, different results. Browse all models →

curl
curl -X POST https://api.ark-route.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "prompt": "a cat astronaut floating in space, photorealistic",
    "n": 1,
    "size": "1024x1024"
  }'
💡
OpenAI SDK compatible! Just change the base URL to https://api.ark-route.com and it works with the official OpenAI Python/JS SDKs.

Python (OpenAI SDK)

python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.ark-route.com/v1"
)

response = client.images.generate(
    model="seedream-4.5",
    prompt="a serene japanese garden at sunset",
    n=1,
    size="1024x1024"
)

print(response.data[0].url)

JavaScript (OpenAI SDK)

javascript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://api.ark-route.com/v1'
});

const response = await client.images.generate({
  model: 'gpt-image-2',
  prompt: 'a minimalist logo for a coffee brand',
  n: 1,
  size: '1024x1024'
});

console.log(response.data[0].url);

Authentication

All API requests require a Bearer token in the Authorization header:

header
Authorization: Bearer YOUR_API_KEY
🔑
Get your API key from the Dashboard. You can create multiple keys for different projects.

Available Models

ArkRoute routes to 28 models from 5 providers. Here are the most popular:

ModelProviderTypeCreditsBest For
nano-banana-2GoogleImage2General purpose, fast
seedream-4.5ByteDanceImage3Best Chinese AI, realistic
gpt-image-2OpenAIImage50Highest quality, text rendering
gpt-image-1-miniOpenAIImage3Fast OpenAI quality
kling-v2-masterKuaishouVideo50Best video generation
seedance-1.0ByteDanceVideo25Dance/motion videos

View all 28 models →

Image Generation

MethodEndpointDescription
POST/v1/images/generationsGenerate images from text

Request Body

ParameterTypeRequiredDescription
modelstringYesModel ID (e.g., "nano-banana-2")
promptstringYesText description of the image
nintegerNoNumber of images (default: 1)
sizestringNo"1024x1024", "1024x1536", "1536x1024"
imagestringNoBase64 reference image (for image-to-image)
response_formatstringNo"url" (default) or "b64_json"

Response

{ "created": 1714000000, "data": [ { "url": "https://storage.googleapis.com/...", "revised_prompt": "a cat astronaut..." } ] }

Video Generation

MethodEndpointDescription
POST/v1/video/generationsGenerate video from text/image

Request Body

ParameterTypeRequiredDescription
modelstringYes"kling-v2-master", "seedance-1.0", etc.
promptstringYesMotion description
imagestringNoBase64 first frame (image-to-video)
durationnumberNoVideo length in seconds (5 or 10)
aspect_ratiostringNo"16:9", "9:16", "1:1"
⏱️
Video generation is async. The response returns a task_id. Poll /v1/video/status/{task_id} until status is "completed".

Response

{ "task_id": "abc123-def456", "status": "processing", "model": "kling-v2-master" }

Video Status

MethodEndpointDescription
GET/v1/video/status/{task_id}Check video generation progress

Response (completed)

{ "task_id": "abc123-def456", "status": "completed", "video_url": "https://storage.googleapis.com/...", "duration": 5.0, "model": "kling-v2-master" }

List Models

MethodEndpointDescription
GET/v1/modelsList all available models

No authentication required. Returns model IDs, providers, types, and pricing.

SDKs & Libraries

ArkRoute is OpenAI-compatible, so you can use any OpenAI SDK:

install
# Python
pip install openai

# JavaScript/TypeScript
npm install openai

# Just change the base_url to https://api.ark-route.com/v1
🔌
MCP Support: ArkRoute also supports the Model Context Protocol. Point your MCP client to https://api.ark-route.com/mcp for tool-based image generation. Learn more →

Error Handling

CodeMeaningWhat to do
401Invalid API keyCheck your Authorization header
402Insufficient creditsBuy more credits
422Invalid parametersCheck request body format
429Rate limitedWait and retry with exponential backoff
500Provider errorRetry or try a different model

Rate Limits

Current limits per API key:

Need higher limits? Contact us for enterprise plans.

MCP Integration

API Explorer ✨

Test the API right here. Enter your API key, pick a model, and generate — no setup required.

🔑
Your API key is stored locally in your browser and never sent to our servers (only to api.ark-route.com directly).
~2 credits

ArkRoute supports the Model Context Protocol (MCP) for tool-based AI agents:

json
{
  "mcpServers": {
    "arkroute": {
      "url": "https://api.ark-route.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

This exposes generate_image and generate_video tools to any MCP-compatible AI agent (Claude, GPT, etc.).