Skip to content

DocsAPI referenceJobs

List jobs

The newest first, a page at a time: pass next_cursor as cursor for the next page, with the same filters. created_after is inclusive, created_before exclusive.

GET /v1/jobs

Needs an API key: Authorization: Bearer $VIDEXO_API_KEY.

Parameters

Parameters
NameInTypeDescription
limit queryinteger, 1 to 100Jobs per page, 1 to 100.
state queryJobStatequeued and running are active; the others are final.
cursor querystring, up to 200 charactersThe next_cursor of the previous page.
created_after querystring, date-timeOnly jobs created at or after this time, ISO 8601 UTC, such as 2026-11-04T00:00:00Z.
created_before querystring, date-timeOnly jobs created before this time, ISO 8601 UTC.

Request

bash
curl "$VIDEXO_API_URL/v1/jobs?limit=20&state=succeeded" \
  -H "Authorization: Bearer $VIDEXO_API_KEY"

Response

200 JSON
{
  "data": [
    {
      "id": "job_3k9x0c2mfq8w1n7r5t4b6v2z",
      "state": "succeeded",
      "kind": "operations",
      "operation": "transcode",
      "spec": {
        "inputs": {
          "source": {
            "url": "https://videxo.io/samples/talk.mp4"
          }
        },
        "outputs": [
          {
            "name": "video",
            "type": "video",
            "preset": "web-720p",
            "input": "source",
            "filename": "talk-720p.mp4",
            "format": "mp4",
            "resize": {
              "width": 1280,
              "height": 720,
              "fit": "contain",
              "enlarge": false
            },
            "video": {
              "codec": "h264",
              "crf": 23,
              "encoder_preset": "veryfast",
              "pixel_format": "yuv420p",
              "faststart": true
            },
            "audio": {
              "codec": "aac",
              "bitrate": "128k"
            }
          }
        ]
      },
      "command": "-i {{in_source}} -map 0:v:0 -vf \"scale='min(iw,1280)':'min(ih,720)':force_original_aspect_ratio=decrease:force_divisible_by=2\" -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p -map 0:a:0? -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
      "input_files": {
        "in_source": "https://videxo.io/samples/talk.mp4"
      },
      "output_files": {
        "out_video": "talk-720p.mp4"
      },
      "ffmpeg_command": "ffmpeg -i https://videxo.io/samples/talk.mp4 -map 0:v:0 -vf 'scale='\\''min(iw,1280)'\\'':'\\''min(ih,720)'\\'':force_original_aspect_ratio=decrease:force_divisible_by=2' -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p -map '0:a:0?' -c:a aac -b:a 128k -movflags +faststart talk-720p.mp4",
      "steps": [
        {
          "tool": "ffmpeg",
          "inputs": [
            "source"
          ],
          "outputs": [
            "video"
          ],
          "command": "ffmpeg -i https://videxo.io/samples/talk.mp4 -map 0:v:0 -vf 'scale='\\''min(iw,1280)'\\'':'\\''min(ih,720)'\\'':force_original_aspect_ratio=decrease:force_divisible_by=2' -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p -map '0:a:0?' -c:a aac -b:a 128k -movflags +faststart talk-720p.mp4"
        }
      ],
      "webhook_url": null,
      "metadata": {
        "order": "1234"
      },
      "progress": 1,
      "error": null,
      "outputs": [
        {
          "alias": "out_video",
          "name": "video",
          "filename": "talk-720p.mp4",
          "size_bytes": 300000000,
          "sha256": "9f2c4e1a7b3d5f60c8e2a4b6d8f0e1c3a5b7d9f1e3c5a7b9d1f3e5c7a9b1d3f5",
          "content_type": "video/mp4",
          "expires_at": "2026-11-05T12:01:09.000Z",
          "download_url": "https://api.videxo.io/v1/files/job_3k9x0c2mfq8w1n7r5t4b6v2z/out_video?account=acc_example&expires=1793797269&signature=example",
          "download_url_expires_at": "2026-11-04T13:01:09.000Z",
          "deleted_at": null
        }
      ],
      "usage": {
        "seconds": 61,
        "input_bytes": 1200000000,
        "output_bytes": 300000000,
        "credits": 45,
        "bill": {
          "lines": [
            {
              "kind": "video",
              "seconds": 300,
              "per_minute": 6,
              "multiplier": 1,
              "credits": 30
            }
          ],
          "data": {
            "input_bytes": 1200000000,
            "output_bytes": 300000000,
            "credits": 15
          },
          "processing": {
            "seconds": 61,
            "included_seconds": 900,
            "credits": 0
          }
        }
      },
      "created_at": "2026-11-04T12:00:00.000Z",
      "started_at": "2026-11-04T12:00:04.000Z",
      "finished_at": "2026-11-04T12:01:09.000Z"
    }
  ],
  "next_cursor": "MTc5MzgwNjQwMDAwMC5qb2JfM2s5eDBjMm1mcTh3MW43cjV0NGI2djJ6"
}

Responses

Responses
StatusBodyWhen
200JobListOne page of jobs.
400Probleminvalid_request
401Problemauthentication_failed (missing_api_key, invalid_api_key, api_key_revoked, api_key_expired)
403Problempermission_denied (token_scope): a client token cannot call this route
429Problemrate_limited, with Retry-After in seconds