For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://modelgates.ai/docs/_mcp/server.
VideoGeneration - TypeScript SDK
The TypeScript SDK and docs are currently in beta. Report issues on GitHub.
Overview
Video Generation endpoints
Available Operations
- generate - Submit a video generation request
- getGeneration - Poll video generation status
- getVideoContent - Download generated video content
- listVideosModels - List all video generation models
generate
Submits a video generation request and returns a polling URL to check status
Example Usage
import { ModelGates } from "@modelgates/sdk"; const modelgates = new ModelGates({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const result = await modelgates.videoGeneration.generate({ videoGenerationRequest: { aspectRatio: "16:9", duration: 8, model: "google/veo-3.1", prompt: "A serene mountain landscape at sunset", resolution: "720p", }, }); console.log(result);} run();Standalone function
The standalone function version of this method:
import { ModelGatesCore } from "@modelgates/sdk/core.js";import { videoGenerationGenerate } from "@modelgates/sdk/funcs/videoGenerationGenerate.js"; // Use `ModelGatesCore` for best tree-shaking performance.// You can create one instance of it to use across an application.const modelgates = new ModelGatesCore({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const res = await videoGenerationGenerate(modelgates, { videoGenerationRequest: { aspectRatio: "16:9", duration: 8, model: "google/veo-3.1", prompt: "A serene mountain landscape at sunset", resolution: "720p", }, }); if (res.ok) { const { value: result } = res; console.log(result); } else { console.log("videoGenerationGenerate failed:", res.error); }} run();Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request | operations.CreateVideosRequest | :heavy_check_mark: | The request object to use for the request. |
options | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
options.fetchOptions | RequestInit | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All Request options, except method and body, are allowed. |
options.retries | RetryConfig | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
Response
Promise<models.VideoGenerationResponse>
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.PaymentRequiredResponseError | 402 | application/json |
| errors.NotFoundResponseError | 404 | application/json |
| errors.TooManyRequestsResponseError | 429 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.ModelGatesDefaultError | 4XX, 5XX | */* |
getGeneration
Returns job status and content URLs when completed
Example Usage
import { ModelGates } from "@modelgates/sdk"; const modelgates = new ModelGates({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const result = await modelgates.videoGeneration.getGeneration({ jobId: "job-abc123", }); console.log(result);} run();Standalone function
The standalone function version of this method:
import { ModelGatesCore } from "@modelgates/sdk/core.js";import { videoGenerationGetGeneration } from "@modelgates/sdk/funcs/videoGenerationGetGeneration.js"; // Use `ModelGatesCore` for best tree-shaking performance.// You can create one instance of it to use across an application.const modelgates = new ModelGatesCore({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const res = await videoGenerationGetGeneration(modelgates, { jobId: "job-abc123", }); if (res.ok) { const { value: result } = res; console.log(result); } else { console.log("videoGenerationGetGeneration failed:", res.error); }} run();Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request | operations.GetVideosRequest | :heavy_check_mark: | The request object to use for the request. |
options | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
options.fetchOptions | RequestInit | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All Request options, except method and body, are allowed. |
options.retries | RetryConfig | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
Response
Promise<models.VideoGenerationResponse>
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.NotFoundResponseError | 404 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.ModelGatesDefaultError | 4XX, 5XX | */* |
getVideoContent
Streams the generated video content from the upstream provider
Example Usage
import { ModelGates } from "@modelgates/sdk"; const modelgates = new ModelGates({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const result = await modelgates.videoGeneration.getVideoContent({ jobId: "job-abc123", }); console.log(result);} run();Standalone function
The standalone function version of this method:
import { ModelGatesCore } from "@modelgates/sdk/core.js";import { videoGenerationGetVideoContent } from "@modelgates/sdk/funcs/videoGenerationGetVideoContent.js"; // Use `ModelGatesCore` for best tree-shaking performance.// You can create one instance of it to use across an application.const modelgates = new ModelGatesCore({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const res = await videoGenerationGetVideoContent(modelgates, { jobId: "job-abc123", }); if (res.ok) { const { value: result } = res; console.log(result); } else { console.log("videoGenerationGetVideoContent failed:", res.error); }} run();Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request | operations.ListVideosContentRequest | :heavy_check_mark: | The request object to use for the request. |
options | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
options.fetchOptions | RequestInit | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All Request options, except method and body, are allowed. |
options.retries | RetryConfig | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
Response
Promise<ReadableStream<Uint8Array>>
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.NotFoundResponseError | 404 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.BadGatewayResponseError | 502 | application/json |
| errors.ModelGatesDefaultError | 4XX, 5XX | */* |
listVideosModels
Returns a list of all available video generation models and their properties
Example Usage
import { ModelGates } from "@modelgates/sdk"; const modelgates = new ModelGates({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const result = await modelgates.videoGeneration.listVideosModels(); console.log(result);} run();Standalone function
The standalone function version of this method:
import { ModelGatesCore } from "@modelgates/sdk/core.js";import { videoGenerationListVideosModels } from "@modelgates/sdk/funcs/videoGenerationListVideosModels.js"; // Use `ModelGatesCore` for best tree-shaking performance.// You can create one instance of it to use across an application.const modelgates = new ModelGatesCore({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const res = await videoGenerationListVideosModels(modelgates); if (res.ok) { const { value: result } = res; console.log(result); } else { console.log("videoGenerationListVideosModels failed:", res.error); }} run();Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request | operations.ListVideosModelsRequest | :heavy_check_mark: | The request object to use for the request. |
options | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
options.fetchOptions | RequestInit | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All Request options, except method and body, are allowed. |
options.retries | RetryConfig | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
Response
Promise<models.VideoModelsListResponse>
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.ModelGatesDefaultError | 4XX, 5XX | */* |