---
title: "List Jobs"
method: GET
path: "/v2/jobs"
---

# List Jobs

`GET /v2/jobs`

Retrieve a paginated list of jobs with optional filtering and sorting.

## Query parameters

- `projectId` string, uuid, required
- `page` integer, required
- `perPage` integer, required
- `sortBy` 'totalCost' | 'usageTime' | 'createdAt' | 'updatedAt'
- `orderBy` 'asc' | 'desc'
- `status` string
- `type` string, required
- `search` string

## Response `200`

Successful response with job list

- object
  - `success` boolean
  - `message` string
  - `messageKey` string
  - `data` ListJobsResponse
    - `jobs` ListJobs[]
      - `id` string, uuid, required
      - `title` string, required — Title of the media or job
      - `mediaUrl` string, uri, required — Source media URL
      - `mediaType` 'YOUTUBE' | 'FILE' | 'URL', required — Type of the media source
      - `totalCost` number, required — Total cost charged for processing this media
      - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED', required — Current job status
      - `createdAt` string, date-time, required
    - `page` integer
    - `totalCount` integer
    - `totalPages` integer

## Other responses

- `400` — Validation/Bad request error response
- `500` — Internal server error response

---

[API](https://skmtc.net/tryhamsa/apis/hamsa-api.md) · [All operations](https://skmtc.net/tryhamsa/apis/hamsa-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tryhamsa/hamsa-api/versions/ecbeb5d8dc13/schema)
