---
title: "GET /jobs"
method: GET
path: "/jobs"
tags: ["Jobs"]
---

# GET /jobs

`GET /jobs`

List Jobs.  Filtering by userId, type, state namespace, createTimestamp, updateTimestamp, expireTimestamp.

## Query parameters

- `pageToken` string
- `pageSize` integer
- `sort` string[]
- `userId` string, required — User that the Job runs under and/or for. In the case a regular user invokes the POST /jobs endpoint, this is their user ID.
- `type` 'preview' | 'main', required
- `state` 'pending' | 'started' | 'failure' | 'success' | 'revoked' — State of the Job. When updating a Job, appropriate state changes are enforced. - Pending Jobs can be updated to any state. - Started Jobs can be updated to failure, success, or revoked. - Failure Jobs cannot be updated. - Success Jobs cannot be updated. - Revoked Jobs cannot be updated. When a Job is revoked, the worker is notified through any communication the worker performs that needs to touch the Job resource. For example, when the worker is trying to add a result or update progress through the API, it will receive an error which should result in termination of the work. This error will be a 400 or 500 error. Delete Jobs will interrupt the worker using the same methods (404 error, etc). Uses Celery task state conventions: https://docs.celeryq.dev/en/stable/reference/celery.states.html#misc
- `namespace` string — Jobs with common concerns are grouped according to their namespace. For example, Reports has it's own reports namespace to make filtering and finding report type jobs easier.
- `createTimestamp__gte` string, date-time
- `createTimestamp__lte` string, date-time
- `updateTimestamp__gte` string, date-time
- `updateTimestamp__lte` string, date-time
- `expireTimestamp__gte` string, date-time
- `expireTimestamp__lte` string, date-time
- `state__in` string[]

## Response `200`

List Jobs

- PaginatedJobResponse — Used to wrap results for a paginated response, containing information on how to retrieve further pages and, if available, the total number of results.
  - `nextPageToken` string, nullable, required — Token to retrieve the next page. The value of this token is passed into the field pageToken. This value can be null if there is no next page.
  - `prevPageToken` string, nullable, required — Token to retrieve the previous page. The value of this token is passed into the field pageToken. This value can be null of there is no previous page.
  - `totalSize` integer, nullable — The number of resource entries being returned from the result set. This can be omitted if the API endpoint does not have total size information.
  - `results` union[], required — The result set from a collection API call.
    - union
      - object — Example of a State Started Job
        - `state` 'started', required
        - `detailedState` DetailedState, required — This object allows for a flexible way of returning detailed progress information to the end user. It is allowed to be null, otherwise the format of data is dynamic. This object is allowed to be present on a Job of any state except pending and revoked.
        - `progress` number, required — Job percent complete expressed as a float
        - `result` NullObject, nullable, required — Null object
        - `error` NullObject, nullable, required — Null object
        - `id` string, uuid, required
        - `type` string, required — Concatenation of JobType namespace and a name which forms a unique ID. Type determines what kind of Job is run.
        - `namespace` string, required — Jobs with common concerns are grouped according to their namespace. For example, Reports has it's own reports namespace to make filtering and finding report type jobs easier.
        - `arguments` JobArguments, nullable, required — Variable data for each type of job, specified in argumentSchema of the Get Job Types API in JSON Schema format. Empty object or null is an acceptable value when no arguments are required.
        - `userId` string, required — User that the Job runs under and/or for. In the case a regular user invokes the POST /jobs endpoint, this is their user ID.
        - `scheduleTimestamp` string, date-time, nullable — When the Job is/was expected to run. Null when the Job was 'on-demand'. Not changeable.
        - `createTimestamp` string, date-time, required — When the Job was created. Not changeable.
        - `updateTimestamp` string, date-time, required — When the Job was updated. Not directly changeable by user.
        - `expireTimestamp` string, date-time, required — 4 weeks in the future from when the Job was created. Not changeable by user.
      - object — Example of a State Pending Job
        - `state` 'pending', required
        - `detailedState` NullObject, nullable, required — Null object
        - `progress` number, required
        - `result` NullObject, nullable, required — Null object
        - `error` NullObject, nullable, required — Null object
        - `id` string, uuid, required
        - `type` string, required — Concatenation of JobType namespace and a name which forms a unique ID. Type determines what kind of Job is run.
        - `namespace` string, required — Jobs with common concerns are grouped according to their namespace. For example, Reports has it's own reports namespace to make filtering and finding report type jobs easier.
        - `arguments` JobArguments, nullable, required — Variable data for each type of job, specified in argumentSchema of the Get Job Types API in JSON Schema format. Empty object or null is an acceptable value when no arguments are required.
        - `userId` string, required — User that the Job runs under and/or for. In the case a regular user invokes the POST /jobs endpoint, this is their user ID.
        - `scheduleTimestamp` string, date-time, nullable — When the Job is/was expected to run. Null when the Job was 'on-demand'. Not changeable.
        - `createTimestamp` string, date-time, required — When the Job was created. Not changeable.
        - `updateTimestamp` string, date-time, required — When the Job was updated. Not directly changeable by user.
        - `expireTimestamp` string, date-time, required — 4 weeks in the future from when the Job was created. Not changeable by user.
      - object — Example of a State Success Job
        - `state` 'success', required
        - `detailedState` DetailedState, required — This object allows for a flexible way of returning detailed progress information to the end user. It is allowed to be null, otherwise the format of data is dynamic. This object is allowed to be present on a Job of any state except pending and revoked.
        - `progress` number, required
        - `result` union, required
          - object
            - `files` JobResultFile[], required
              - …
          - object — A result that is only raw text.
            - `text` string, required
          - object, nullable — A null result. Used for JobTypes that don't return any output and simply indicate their success or failure via the Job state. Will appear as "result": null in JSON, the same as if the Job was not in a success state.
        - `error` NullObject, nullable, required — Null object
        - `id` string, uuid, required
        - `type` string, required — Concatenation of JobType namespace and a name which forms a unique ID. Type determines what kind of Job is run.
        - `namespace` string, required — Jobs with common concerns are grouped according to their namespace. For example, Reports has it's own reports namespace to make filtering and finding report type jobs easier.
        - `arguments` JobArguments, nullable, required — Variable data for each type of job, specified in argumentSchema of the Get Job Types API in JSON Schema format. Empty object or null is an acceptable value when no arguments are required.
        - `userId` string, required — User that the Job runs under and/or for. In the case a regular user invokes the POST /jobs endpoint, this is their user ID.
        - `scheduleTimestamp` string, date-time, nullable — When the Job is/was expected to run. Null when the Job was 'on-demand'. Not changeable.
        - `createTimestamp` string, date-time, required — When the Job was created. Not changeable.
        - `updateTimestamp` string, date-time, required — When the Job was updated. Not directly changeable by user.
        - `expireTimestamp` string, date-time, required — 4 weeks in the future from when the Job was created. Not changeable by user.
      - object — Example of a State Failure Job
        - `state` 'failure', required
        - `detailedState` DetailedState, required — This object allows for a flexible way of returning detailed progress information to the end user. It is allowed to be null, otherwise the format of data is dynamic. This object is allowed to be present on a Job of any state except pending and revoked.
        - `progress` number, required
        - `result` NullObject, nullable, required — Null object
        - `error` ApiV3Error, required
          - `code` integer, required — HTTP code defined in EEN Standard Code Values
          - `status` 'cancelled' | 'unknown' | 'invalidArgument' | 'deadlineExceeded' | 'notFound' | 'conflict' | 'permissionDenied' | 'resourceExhausted' | 'failedPrecondition' | 'aborted' | 'outOfRange' | 'unimplemented' | 'internal' | 'unavailable' | 'dataLoss' | 'unauthenticated' | 'mediaTypeNotSupported' | 'acceptNotSupported' | 'methodNotSupported' | 'tooManyRequests' | 'badGateway', required — A string enum describing the code
          - `message` string, required — Developer friendly human readable error message in English
          - `details` ExceptionDetail[], required — An array of extensible objects that define error information
            - union
              - …
        - `id` string, uuid, required
        - `type` string, required — Concatenation of JobType namespace and a name which forms a unique ID. Type determines what kind of Job is run.
        - `namespace` string, required — Jobs with common concerns are grouped according to their namespace. For example, Reports has it's own reports namespace to make filtering and finding report type jobs easier.
        - `arguments` JobArguments, nullable, required — Variable data for each type of job, specified in argumentSchema of the Get Job Types API in JSON Schema format. Empty object or null is an acceptable value when no arguments are required.
        - `userId` string, required — User that the Job runs under and/or for. In the case a regular user invokes the POST /jobs endpoint, this is their user ID.
        - `scheduleTimestamp` string, date-time, nullable — When the Job is/was expected to run. Null when the Job was 'on-demand'. Not changeable.
        - `createTimestamp` string, date-time, required — When the Job was created. Not changeable.
        - `updateTimestamp` string, date-time, required — When the Job was updated. Not directly changeable by user.
        - `expireTimestamp` string, date-time, required — 4 weeks in the future from when the Job was created. Not changeable by user.
      - object — Example of a State Revoked (cancelled) Job
        - `state` 'revoked', required
        - `detailedState` NullObject, nullable, required — Null object
        - `progress` number, required
        - `result` NullObject, nullable, required — Null object
        - `error` NullObject, nullable, required — Null object
        - `id` string, uuid, required
        - `type` string, required — Concatenation of JobType namespace and a name which forms a unique ID. Type determines what kind of Job is run.
        - `namespace` string, required — Jobs with common concerns are grouped according to their namespace. For example, Reports has it's own reports namespace to make filtering and finding report type jobs easier.
        - `arguments` JobArguments, nullable, required — Variable data for each type of job, specified in argumentSchema of the Get Job Types API in JSON Schema format. Empty object or null is an acceptable value when no arguments are required.
        - `userId` string, required — User that the Job runs under and/or for. In the case a regular user invokes the POST /jobs endpoint, this is their user ID.
        - `scheduleTimestamp` string, date-time, nullable — When the Job is/was expected to run. Null when the Job was 'on-demand'. Not changeable.
        - `createTimestamp` string, date-time, required — When the Job was created. Not changeable.
        - `updateTimestamp` string, date-time, required — When the Job was updated. Not directly changeable by user.
        - `expireTimestamp` string, date-time, required — 4 weeks in the future from when the Job was created. Not changeable by user.

## Other responses

- `400` — The supplied object is invalid. Error detail will contain the validation error.
- `401` — You are not authenticated. Please authenticate and try again.
- `403` — You have no permission to access the specified resource.
- `500` — Something went wrong in the server. Please try again.

---

[API](https://skmtc.net/eagleeyenetworks/apis/devices.md) · [All operations](https://skmtc.net/eagleeyenetworks/apis/devices/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/eagleeyenetworks/devices/revisions/df57313de545/schema)
