Captions · Schema

MAVideo

Represents a Mirage/Captions video object. A video can be created via AI generation (image+audio) or captioning (adding captions to an existing video).

CompanyVideoArtificial IntelligenceVideo EditingVideo GenerationCaptionsSubtitlesText-to-SpeechAI AvatarsContent CreationMedia

Properties

Name Type Description
id string Video generation job ID
object string
status string Current state of the video
created_at integer When the video was created (unix timestamp)
completed_at integernull When processing completed (unix timestamp)
progress integernull Progress percentage (0-100)
error object Error details if status is FAILED
model stringnull Model used for generation (only for source=generation)
source_video_id stringnull The input video that was captioned (only for source=caption)
caption_template_id stringnull Caption style template used (only for source=caption)
share_link_url stringnull Public share link for a completed internal video, when enabled
video_id string [Deprecated] Use 'id' instead.
View JSON Schema on GitHub

JSON Schema

captions-video-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/captions-ai/main/json-schema/captions-ai-video-schema.json",
  "title": "MAVideo",
  "description": "Represents a Mirage/Captions video object. A video can be created via AI generation (image+audio) or captioning (adding captions to an existing video).",
  "type": "object",
  "required": ["id", "status", "created_at", "video_id"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Video generation job ID",
      "examples": ["video_abc123def456"]
    },
    "object": {
      "type": "string",
      "enum": ["video"],
      "default": "video"
    },
    "status": {
      "type": "string",
      "enum": ["PROCESSING", "COMPLETE", "FAILED", "CANCELLED"],
      "description": "Current state of the video"
    },
    "created_at": {
      "type": "integer",
      "description": "When the video was created (unix timestamp)",
      "examples": [1730822400]
    },
    "completed_at": {
      "type": ["integer", "null"],
      "description": "When processing completed (unix timestamp)",
      "examples": [1730822520]
    },
    "progress": {
      "type": ["integer", "null"],
      "minimum": 0,
      "maximum": 100,
      "description": "Progress percentage (0-100)",
      "examples": [100]
    },
    "error": {
      "oneOf": [
        {
          "$ref": "#/definitions/MAVideoError"
        },
        {
          "type": "null"
        }
      ],
      "description": "Error details if status is FAILED"
    },
    "model": {
      "type": ["string", "null"],
      "enum": ["mirage-video-1-latest", null],
      "description": "Model used for generation (only for source=generation)"
    },
    "source_video_id": {
      "type": ["string", "null"],
      "description": "The input video that was captioned (only for source=caption)"
    },
    "caption_template_id": {
      "type": ["string", "null"],
      "description": "Caption style template used (only for source=caption)"
    },
    "share_link_url": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "Public share link for a completed internal video, when enabled"
    },
    "video_id": {
      "type": "string",
      "description": "[Deprecated] Use 'id' instead.",
      "deprecated": true
    }
  },
  "definitions": {
    "MAVideoError": {
      "type": "object",
      "required": ["code", "message"],
      "description": "Error payload that explains why generation failed",
      "properties": {
        "code": {
          "type": "string",
          "description": "Error code",
          "examples": ["rate_limit_exceeded"]
        },
        "message": {
          "type": "string",
          "description": "Human-readable error message",
          "examples": ["Rate limit exceeded. Please try again later."]
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/captions-video"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.