---
title: "Process an identified job"
method: POST
path: "/jobs/{id}/process"
tags: ["Jobs"]
---

# Process an identified job

`POST /jobs/{id}/process`

## Request

- Base URL: `https://demarker.io/api/v1`
- URL: `https://demarker.io/api/v1/jobs/{id}/process`
- Auth: HTTP bearer

Debits the offer for the chosen tier. A short balance returns 402 with requiredCredits, balance and purchaseUrl; the job stays IDENTIFIED. Images over 25 MP cannot be processed. rightsAttested must be true.

## Path parameters

- `id` string, required

## Request body

- object
  - `tier` 'QUICK' | 'GPU', required
  - `keepResolution` boolean: Keep original size above 12 MP. Priced at the large band.
  - `vendorHint` string: Where the image was made, for the GPU tier when identify found no hidden target.
  - `force` boolean
  - `marks` string[]: Registry keys to remove. Defaults to all allowed.
  - `secondAttestation` string
  - `rightsAttested` boolean, required

## Response `200`

OK

- Job
  - `id` string
  - `status` 'UPLOADED' | 'IDENTIFYING' | 'IDENTIFIED' | 'HELD' | 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'REFUSED' | 'EXPIRED'
  - `width` integer
  - `height` integer
  - `megapixels` number
  - `hasInvisibleTarget` boolean, nullable
  - `report` object, nullable: Engine provenance report, schema_version 1.
  - `cmiFields` unknown
  - `offers` object[], nullable
    - `tier` string
    - `keepResolution` boolean
    - `credits` integer
  - `balance` integer
  - `refusalReason` 'NSFW' | 'THIRD_PARTY_OVERLAY' | 'null', nullable
  - `creditsCharged` integer
  - `errorCode` string, nullable
  - `outputs` object
    - `image` string, uri, nullable
  - `createdAt` string, date-time

## Other responses

- `402`: Error
- `409`: Error
- `422`: Error
- `451`: Error
- `default`: Error

---

[API](https://skmtc.dev/demarker/apis/demarker-api.md) · [All operations](https://skmtc.dev/demarker/apis/demarker-api/llms.txt) · [OpenAPI document](https://skmtc.dev/demarker/apis/demarker-api/revisions/d152095351c0?raw)
