---
title: "Get an ingestion job"
method: GET
path: "/inventory/ingestions/{id}"
tags: ["Inventory"]
---

# Get an ingestion job

`GET /inventory/ingestions/{id}`

## Request

- Base URL: `https://{prefix}.api.sandbox.checkout.com`
- URL: `https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `string` scopes: `agentic:inventory`
- TypeScript: <https://skmtc.dev/checkout/apis/checkout-com-api-reference/docs/inventory/ingestions/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns an ingestion job and its current state and counts. Poll this until `state` is either:
- `completed`
- `completed_with_errors`, or
- `failed`

Then read the per-item report at `/inventory/ingestions/{id}/results`.

Requires the `agentic:inventory` scope. A job owned by another merchant returns `404`.

## Path parameters

- `id` string, required

## Response `200`

The ingestion job.

- InventoryIngestion: <span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p> An asynchronous batch-ingestion job and its current state. Poll it until `state` is terminal, then read the per-item report at `/inventory/ingestions/{id}/results`.
  - `id` string: The ingestion identifier, in the `ing_{base32-encoded GUID}` format.
  - `state` 'awaiting_upload' | 'accepted' | 'processing' | 'completed' | 'completed_with_errors' | 'failed': The current state of the job. `awaiting_upload` is only used by the CSV flow, between requesting an upload slot and starting processing. `completed`, `completed_with_errors` and `failed` are terminal.
  - `mode` 'upsert': The update semantics for the batch. Only `upsert` is available in this version.
  - `counts` InventoryIngestionCounts: <span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p> The running item tally for an ingestion job. `pending` reaches `0` when the job is terminal.
    - `received` integer: The number of items received in the batch or parsed from the file.
    - `accepted` integer: The number of items applied successfully so far.
    - `rejected` integer: The number of items rejected so far, each recorded in the results report.
    - `pending` integer: The number of items still to be processed. `0` once the job is terminal.
  - `failure_reason` InventoryIngestionFailureReason: <span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p> Why an ingestion job failed as a whole. Present only when `state` is `failed`. A merchant-owned code (for example `file_unreadable`) can be acted on directly; a Checkout-owned code (`internal_error`, `processing_timeout`) is alerted on our side and a re-submit is idempotency-safe.
    - `code` string: A machine-readable failure code.
    - `message` string: A human-readable explanation of the failure.
  - `upload_url` string: A short-lived, `PUT`-only presigned URL to upload the CSV file to. Present only on the response to a CSV upload-slot request.
  - `created_on` string, date-time: The date and time the job was created.
  - `modified_on` string, date-time: The date and time the job was last updated.
  - `_links` object: Links to the operations valid for the job's current state. An `awaiting_upload` job also exposes `start`.
    - `self` InventoryHalLink: A HAL link describing a related operation on the resource.
      - `href` string: Absolute URI of the linked resource.
      - `actions` string[]: The HTTP methods supported on the linked resource.
      - `types` string[]: The media types supported on the linked resource.
    - `results` InventoryHalLink: A HAL link describing a related operation on the resource.
      - `href` string: Absolute URI of the linked resource.
      - `actions` string[]: The HTTP methods supported on the linked resource.
      - `types` string[]: The media types supported on the linked resource.
    - `start` InventoryHalLink: A HAL link describing a related operation on the resource.
      - `href` string: Absolute URI of the linked resource.
      - `actions` string[]: The HTTP methods supported on the linked resource.
      - `types` string[]: The media types supported on the linked resource.

## Other responses

- `401`: Missing or invalid token.
- `403`: The token does not carry the `agentic:inventory` scope.
- `404`: The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/checkout/apis/checkout-com-api-reference.md) - [All operations](https://skmtc.dev/checkout/apis/checkout-com-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/checkout/apis/checkout-com-api-reference/revisions/0f1abdb1c3e9?raw)
