---
title: "Get Model 1 generation"
method: GET
path: "/v1/models/model-1/generations/{generationId}"
tags: ["Models"]
---

# Get Model 1 generation

`GET /v1/models/model-1/generations/{generationId}`

## Request

- Base URL: `https://api.videogen.io`
- URL: `https://api.videogen.io/v1/models/model-1/generations/{generationId}`
- Auth: HTTP bearer

Poll until succeeded or failed. Success includes a direct MP4 download URL; this read refreshes expiring signed URLs. Reading never starts another attempt. Available even when new generation is paused or quota is exhausted.

## Path parameters

- `generationId` string, required

## Response `200`

Generation status and any completed result.

- Model1Generation
  - `generationId` string, required
  - `model` 'model-1', required
  - `status` 'queued' | 'running' | 'succeeded' | 'failed', required
  - `seconds` integer, required
  - `createdAt` integer, required: Unix seconds.
  - `updatedAt` integer, required: Unix seconds.
  - `progressPercentage` number, nullable, required
  - `result` Model1GenerationResult, required
    - `fileId` string, required
    - `downloadUrl` string, uri, required: Direct signed MP4 URL, including generated audio. Read the generation again to refresh it.
    - `downloadUrlExpiresAt` integer, required: Unix seconds when the signed download URL expires.
  - `error` ApiError, required: Standard error body returned with every non-2xx response (the `default` response of every operation). The HTTP status code conveys the error class; this body carries the details: - `400` invalid request, `401` missing or invalid API key, `403` not permitted (e.g. plan or add-on required, see `requirement`), `404` not found, `409` conflict, `429` rate limited or out of credits, `5xx` server error. Common `code` values include `invalid_request`, `invalid_api_key`, `not_authorized`, `not_found`, `insufficient_credits`, and `rate_limited`. Always branch on `code` (and `requirement.type` when present) rather than parsing `message`.
    - `message` string, required: Human-readable error description. For display and logging only; do not branch on its exact text.
    - `code` string, nullable: Machine-readable error code in snake_case (e.g. `invalid_api_key`, `insufficient_credits`). `null` when no specific code applies.
    - `requirement` ErrorRequirement: What is needed to resolve an error, when it can be fixed by fulfilling a specific requirement (e.g. purchasing an add-on or upgrading the plan).
      - `type` string, required: Machine-readable requirement type in snake_case (e.g. `purchase_add_on`, `upgrade_plan`).
      - `details` object: Key-value pairs with requirement-specific context (e.g. the add-on id to purchase).
    - `internalErrorCode` string, nullable: Opaque internal error code for debugging. Include this when contacting support. `null` when not applicable.
  - `qualityWarnings` string[], required: Quality issues found after generation. The video is still delivered. DURATION_MISMATCH means the video's length differs from the requested seconds.

## Other responses

- `default`: Error

## Changes

- **2026-11-05** `25148ccd4132`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/videogen/apis/videogen-api/changes/v1/models/model-1/generations/:generationId/get.md)

---

[API](https://skmtc.dev/videogen/apis/videogen-api.md) - [All operations](https://skmtc.dev/videogen/apis/videogen-api/llms.txt) - [OpenAPI document](https://skmtc.dev/videogen/apis/videogen-api/revisions/25148ccd4132?raw)
