Meta Text Overlays

Create Meta Text Overlay

Changed on
post/v1/meta/text_overlays

Request

  • Base URL
    https://api.mirage.app (the document declares no server; this is the origin it was published from)
  • Auth
    none declared. Required headers: x-api-key

Headers

x-api-keystring required

API Key for authentication

Request body multipart/form-data

videostring binary required

Source video file (MP4 or MOV). Upload once and render up to 4 related text variants against the same input video.

textsstring[] nullable

Ordered text variants to render as static overlays for the uploaded video (max 4).

itemsstring nullable

Optional JSON array of item objects. Each item must contain text and may contain style.font, style.size, and style.color.

fontsstring[] nullable

Optional ordered font overrides aligned by index with texts. Blank items mean auto-decide.

sizesstring[] nullable

Optional ordered font size overrides in pixels aligned by index with texts. Blank items mean auto-decide.

colorsstring[] nullable

Optional ordered text color overrides (#RRGGBB) aligned by index with texts. Blank items mean auto-decide.

optimization_modestring nullable

Optional latency/quality trade-off. 'latency' returns faster by replacing the creative decision model with a deterministic, contrast-verified layout; 'quality' currently behaves like the default and is reserved for the quality-optimized path. Omit for default behavior.

safe_zonestring nullable

Optional JSON array [y_min, y_max] (fractions of video height, 0-1) that the overlay must be fully contained in — e.g. [0.1, 0.6] keeps the overlay out of the top 10% and bottom 40%. The band must span at least 14% of the height. When provided, placement zones are generated from the top of this band. Omit to use the default five placement zones.

Response

Successful Response

idstring required

Text overlay job ID

object'text_overlay'
status'QUEUED' | 'PROCESSING' | 'COMPLETE' | 'FAILED' | 'CANCELLED' required

Current state of the text overlay job

created_atinteger required

When the job was created (unix timestamp)

completed_atinteger nullable

When processing reached a terminal state (unix timestamp)

Example response

{
  "created_at": 1730822400,
  "id": "d7f76ec6-2500-4d23-a2bc-648f4e904555",
  "object": "text_overlay",
  "results": [],
  "status": "QUEUED"
}

Changes