Projects

Get project export

Returns the current status of a project export started via POST /v1/projects/{projectId}/export, and — once status is succeeded — the signed download/thumbnail URLs and the hydrated export file. Poll this endpoint until status is succeeded, failed, or cancelled. The signed URLs are private and valid for 7 days; this endpoint automatically re-signs them when they are within an hour of expiring, so a caller always receives a URL valid long enough to use. Every endpoint that returns hydrated files auto-rehydrates this way — only the file endpoints (GET /v1/files/{fileId} and POST /v1/files/{fileId}/hydrate) are the explicit, on-demand hydration paths. Use exportFileId with POST /v1/files/{fileId}/hydrate if you need to re-sign the export file directly later.

get/v1/projects/{projectId}/exports/{exportId}

Path parameters

projectIdstring required

The project id (e.g. vg_proj_...).

exportIdstring required

The export id (e.g. vg_expo_...) returned by POST /v1/projects/{projectId}/export.

Response

Export status.

exportIdstring required

Opaque export id (e.g. vg_expo_...) matching the original request.

projectIdstring required

Id of the exported project (e.g. vg_proj_...).

status'pending' | 'running' | 'succeeded' | 'failed' | 'cancelled' required

Lifecycle status shared by every asynchronous job (tool executions, workflow runs, remix actions, project exports, and timeline interchange jobs). pending and running are in-progress; succeeded, failed, and cancelled are terminal.

progressPercentagenumber required

Completion progress for the current attempt (0-100). Always 100 when status is succeeded.

attemptIndexinteger required

Zero-based index of the current or most recent export attempt.

downloadUrlstring uri nullable required

Private signed MP4 download URL, valid for 7 days from when it was signed. Always present as a field; null until status is succeeded. This endpoint automatically re-signs the URL when it is within an hour of expiring, so a fresh call to get the export always returns a URL valid long enough to use. See downloadUrlExpiresAt for the exact expiry. To fetch a fresh URL directly from the underlying file at any time, use exportFileId with the hydrate-file endpoint.

downloadUrlExpiresAtinteger nullable required

Seconds since epoch (Unix timestamp) when downloadUrl expires. null while downloadUrl is null.

thumbnailUrlstring uri nullable required

Private signed thumbnail URL, valid for 7 days from when it was signed. Always present as a field; null until status is succeeded (and when no thumbnail is available). Re-signed automatically on the same terms as downloadUrl.

thumbnailUrlExpiresAtinteger nullable required

Seconds since epoch (Unix timestamp) when thumbnailUrl expires. null while thumbnailUrl is null.

exportFileIdstring nullable required

File id (e.g. vg_file_...) of the exported MP4. Always present as a field; null until status is succeeded. Pass it to POST /v1/files/{fileId}/hydrate to fetch fresh signed URLs directly from the file at any time, which is useful once the 24-hour URLs above have expired.

Changes

No recorded changes to this endpoint across all 1 revision of this API.