OOMOL Fusion API

Image & Video APIs

Add image generation, image editing and video generation to your application. Use OOMOL credentials to access supported models through familiar SDKs and HTTP APIs.

Build with images and video

Generate images

Turn a text description into product visuals, illustrations and creative assets.

Edit images

Use reference images to change a scene, refine a composition or explore a new look.

Generate video

Create clips from text or supported reference media, then query the task for its result.

Choose the API for your task

Access selected interfaces from these providers through OOMOL Fusion API. Each provider has its own supported models and parameters.

OpenAI Images

Image generation and editing

/v1/provider/openai/v1

Seedream

Image generation, reference images and SSE output

/v1/provider/seedream/api/v3

Seedance

Video generation and task queries

/v1/provider/seedance/api/v3

Wanx

Video generation and task queries

/v1/provider/wanx/api/v1

Kling

Video generation and task queries

/v1/provider/kling/

MiniMax

Video generation and task queries

/v1/provider/minimax/

Support is specific to each model and operation. Uploads, cancellation and streaming vary by provider; confirm availability and limits before integrating.

View Pricing

Choose a model, see how to connect

Use the corresponding provider’s SDK or HTTP API. Each example includes the client configuration and a generation request.

  1. Configure your client

    Use the provider-specific base URL and your OOMOL token. Set the documented timeout and disable automatic creation retries to avoid duplicate generation.

  2. Call a supported model

    Keep the supported request parameters and response format. Video tasks use the corresponding provider’s task-query API.

The examples use https://fusion-api.oomol.com. Set FUSION_API_TOKEN to your OOMOL token and install the package version shown. Confirm API availability before use.

Choose a model, see how to connect
OpenAI Images · TypeScriptopenai@7.23.0
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.FUSION_API_TOKEN,
  baseURL: "https://fusion-api.oomol.com/v1/provider/openai/v1",
  maxRetries: 0,
  timeout: 1_080_000,
});

const result = await client.images.generate({
  model: "gpt-image-2",
  prompt: "A ceramic mug on a wooden table",
  size: "1536x864",
  quality: "medium",
});
console.log(result);

Base URL: https://fusion-api.oomol.com/v1/provider/openai/v1

Seedream · TypeScript@volcengine/ark-runtime@1.0.11
import { ArkRuntimeClient } from "@volcengine/ark-runtime";

const client = new ArkRuntimeClient({
  apiKey: process.env.FUSION_API_TOKEN,
  baseURL: "https://fusion-api.oomol.com/v1/provider/seedream/api/v3",
  retryTimes: 0,
  timeout: 125_000,
});

const result = await client.generateImages({
  model: "doubao-seedream-5-0-260128",
  prompt: "A ceramic mug on a wooden table",
  size: "2K",
  response_format: "url",
});
console.log(result);

Base URL: https://fusion-api.oomol.com/v1/provider/seedream/api/v3

Seedance · TypeScript@volcengine/ark-runtime@1.0.11
import { ArkRuntimeClient } from "@volcengine/ark-runtime";

const client = new ArkRuntimeClient({
  apiKey: process.env.FUSION_API_TOKEN,
  baseURL: "https://fusion-api.oomol.com/v1/provider/seedance/api/v3",
  retryTimes: 0,
  timeout: 125_000,
});

const task = await client.createContentGenerationTask({
  model: "doubao-seedance-2-0-260128",
  content: [{ type: "text", text: "A boat on the ocean" }],
  duration: 5,
  resolution: "720p",
});
const status = await client.getContentGenerationTask(task.id);
console.log(task.id, status);

Base URL: https://fusion-api.oomol.com/v1/provider/seedance/api/v3

This example creates a video task and queries it once. Save the task ID and query again until it reaches a terminal state; do not repeat the creation request to check progress.

Wanx · TypeScriptdashscope-sdk-official@1.26.0
import { Configuration, VideoSynthesis } from "dashscope-sdk-official";

const client = new VideoSynthesis(new Configuration({
  apiKey: process.env.FUSION_API_TOKEN,
  basePath: "https://fusion-api.oomol.com/v1/provider/wanx/api/v1",
}));

const task = await client.asyncCall({
  model: "wan3.0-video",
  prompt: "A boat on the ocean",
  resolution: "1080P",
  duration: 5,
});
const status = await client.fetch(task.output.task_id);
console.log(task.output.task_id, status);

Base URL: https://fusion-api.oomol.com/v1/provider/wanx/api/v1

This example creates a video task and queries it once. Save the task ID and query again until it reaches a terminal state; do not repeat the creation request to check progress.

Kling · TypeScriptHTTP · ky@1.11.0
import ky from "ky";

const client = ky.create({
  prefixUrl: "https://fusion-api.oomol.com/v1/provider/kling/",
  headers: { Authorization: `Bearer ${process.env.FUSION_API_TOKEN}` },
  retry: 0,
  redirect: "error",
  timeout: 30_000,
});

const task = await client.post("text-to-video/kling-3.0-turbo", {
  json: {
    prompt: "A boat on the ocean",
    settings: { duration: 5, resolution: "720p", aspect_ratio: "16:9" },
  },
}).json<{ data: { id: string } }>();
const status = await client.get("tasks", {
  searchParams: { task_ids: task.data.id },
}).json();
console.log(task.data.id, status);

Base URL: https://fusion-api.oomol.com/v1/provider/kling/

This example creates a video task and queries it once. Save the task ID and query again until it reaches a terminal state; do not repeat the creation request to check progress.

MiniMax · TypeScriptHTTP · ky@1.11.0
import ky from "ky";

const client = ky.create({
  prefixUrl: "https://fusion-api.oomol.com/v1/provider/minimax/",
  headers: { Authorization: `Bearer ${process.env.FUSION_API_TOKEN}` },
  retry: 0,
  redirect: "error",
  timeout: 30_000,
});

const task = await client.post("v2/video_generation", {
  json: {
    model: "MiniMax-H3",
    content: [{ type: "text", text: "A boat on the ocean" }],
    duration: 5,
    resolution: "768P",
    ratio: "16:9",
  },
}).json<{ task_id: string }>();
const status = await client.get(
  `v2/query/video_generation/${encodeURIComponent(task.task_id)}`,
).json();
console.log(task.task_id, status);

Base URL: https://fusion-api.oomol.com/v1/provider/minimax/

This example creates a video task and queries it once. Save the task ID and query again until it reaches a terminal state; do not repeat the creation request to check progress.

Using an AI agent?

Explore integrated tools for agents and workflows, with ready-made actions for supported services.

Browse Integrations