---
title: "Export status, progress, eta_s and download URL"
method: GET
path: "/api/exports/{id}"
tags: ["clips"]
---

# Export status, progress, eta_s and download URL

`GET /api/exports/{id}`

## Request

- Base URL: `https://cliponit.app`
- URL: `https://cliponit.app/api/exports/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `session`
  - OAuth 2 (authorization code, authorization URL `https://cliponit.app/oauth/authorize`, token URL `https://cliponit.app/oauth/token`, scopes: `clips`)

## Path parameters

- `id` string, uuid, required

## Response `200`

Export

- Export
  - `id` string, uuid, required
  - `clip_id` string, uuid, required
  - `user_id` string, uuid
  - `orientation` 'vertical' | 'horizontal' | 'square' | 'portrait45', required: vertical = 9:16 1080x1920 (TikTok/Reels/Shorts), horizontal = 16:9 1920x1080 (YouTube), square = 1:1 1080x1080 (feed), portrait45 = 4:5 1080x1350 (Instagram feed). auto-reframe supports vertical|horizontal only.
  - `status` 'queued' | 'running' | 'done' | 'failed' | 'canceled', required
  - `progress` integer, required: Render progress in %
  - `eta_s` number, nullable: Estimated seconds left while `queued`/`running`: moving-average render ratio of the last 10 finished exports × (remaining clip seconds + clips ahead in the queue); null otherwise
  - `started_at` string, nullable
  - `finished_at` string, nullable
  - `url` string, nullable: `/files/exports/<id>.mp4` once `done` (relative to the server base URL)
  - `output_path` string, nullable
  - `error` string, nullable
  - `created_at` string, required

## Other responses

- `404`: Resource not found or not owned by the user

---

[API](https://skmtc.dev/cliponit/apis/cliponit-api.md) · [All operations](https://skmtc.dev/cliponit/apis/cliponit-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cliponit/apis/cliponit-api/revisions/10e3e4327922?raw)
