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

# GET /jobs/{jobId}

`GET /jobs/{jobId}`

Get a single Job

## Response `200`

Get a single Job

- union
  - JobStarted — 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.
  - JobPending — 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.
  - JobSuccess — 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
          - `name` string, required
          - `size` integer, required
          - `mimetype` string, required
          - `url` string, required
          - `description` string, 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.
  - JobFailure — 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
          - object
            - `type` 'errorInfo', required — A string enum describing the type of detail object.
            - `reason` 'unauthenticated' | 'unexpectedArgument' | 'missingRequiredArgument' | 'wrongArgumentValue' | 'invalidPermission' | 'wrongEdition' | 'wrongAccountType' | 'resourceNotFound' | 'endpointNotFound' | 'methodNotSupported' | 'unexpectedError' | 'acceptNotSupported' | 'alreadyExists' | 'foreignKeyConflict' | 'childDevicesExist' | 'contentNotSupported' | 'deadlineExpired' | 'tooManyRequests' | 'deviceUnavailable' | 'serviceUnavailable' | 'invalidJSON' | 'resourceLocked' | 'notSupportedOnBridge' | 'outOfRetention' | 'deviceIdentificationFailed' | 'credentialValidationFailed' | 'credentialSetupFailed' | 'localUrlValidationFailed' | 'hwRegistrationFailed' | 'failedAddingCameraAfterValidation' | 'neverConnected' | 'reconnectFailed' | 'unsupportedModel' | 'purged' | 'userBlocked' | 'userTemporarilyBlocked' | 'quotaExceeded' | 'alreadyValidated' | 'reAuthenticationRequired' | 'badGateway' — The reason for the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
            - `domain` string — Logical grouping to which the "reason" belongs
            - `metadata` ExceptionMetadata
              - …
          - object
            - `type` 'badRequest', required — A string enum describing the type of detail object.
            - `argumentViolations` ArgumentViolation[]
              - …
          - object
            - `type` 'resourceInfo', required — A string enum describing the type of detail object.
            - `resource` string — Referenced resource type, eg "cameras", "bridges", or "locations".
            - `ids` string[] — Identities of resources
    - `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.
  - JobRevoked — 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.
- `404` — Referenced resource could not be found.
- `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)
