Authentication
This endpoint requires an API key with the check_status scope.
Authorization: Bearer YOUR_API_KEY
Query Parameters
Number of jobs to return per page. Maximum value is 100.
Pagination cursor from a previous response’s nextCursor field. Use this to fetch the next page of results.
Filter jobs by status. Accepted values: pending, processing, completed, failed, cancelled.
Filter jobs by model slug. Example: "google/veo-3.1-fast/text-to-video"
Response
Array of job objects. Each job contains jobId, status, progress, model, createdAt, and completedAt.
Cursor to use for fetching the next page. null if there are no more results.
Whether there are more results available beyond this page.
This endpoint uses cursor-based pagination for efficient and consistent traversal of results. Unlike offset-based pagination, cursor-based pagination ensures you never miss or duplicate items even if new jobs are created between requests.
How it works:
- Make your first request without a
cursor parameter.
- If
hasMore is true, use the nextCursor value from the response as the cursor parameter in your next request.
- Repeat until
hasMore is false.
Examples
# List first page
curl -X GET "https://api.muvi.video/v1/jobs?limit=10&status=completed" \
-H "Authorization: Bearer YOUR_API_KEY"
# Fetch next page using cursor
curl -X GET "https://api.muvi.video/v1/jobs?limit=10&cursor=eyJjcmVhdGVkQXQiOiIyMDI2LTAyLTE4VDE1OjAwOjAwWiJ9" \
-H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"jobs": [
{
"jobId": "job_abc123def456",
"status": "completed",
"progress": 100,
"model": "google/veo-3.1-fast/text-to-video",
"createdAt": "2026-02-18T15:00:00Z",
"completedAt": "2026-02-18T15:02:30Z"
},
{
"jobId": "job_xyz789ghi012",
"status": "completed",
"progress": 100,
"model": "stability/stable-diffusion-xl/text-to-image",
"createdAt": "2026-02-18T14:30:00Z",
"completedAt": "2026-02-18T14:30:15Z"
}
],
"nextCursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTAyLTE4VDE0OjMwOjAwWiJ9",
"hasMore": true
}