> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trytalkvalue.com/llms.txt
> Use this file to discover all available pages before exploring further.

# talkvalue path import get

> Inspect a bulk import job by ID: status, row counts, and per-bucket totals like new, updated, duplicated, and failed.

Fetch the current state of an import job. The job moves through `PENDING` → `RUNNING` → one of `COMPLETED`, `PARTIAL_SUCCESS`, or `FAILED`. The response carries the running counts you need to decide whether the import succeeded, whether you need to investigate failures, and whether re-importing is worthwhile.

## Synopsis

```bash theme={null}
talkvalue path import get <id>
```

## Arguments

| Argument | Type    | Description                                                                        |
| -------- | ------- | ---------------------------------------------------------------------------------- |
| `<id>`   | integer | The `importJobId` returned by [`import create`](/cli/commands/path/import/create). |

## Examples

### 1. One-off status check

```bash theme={null}
talkvalue path import get 4218
```

Prints the job as a single-record table: status, mode, file name, total and processed rows, and the bucket counts.

### 2. Poll until terminal

```bash theme={null}
job_id=4218
while :; do
  status=$(talkvalue path import get "$job_id" --json | jq -r '.data.status')
  case "$status" in
    COMPLETED|PARTIAL_SUCCESS|FAILED) echo "Done: $status"; break ;;
  esac
  sleep 5
done
```

The three terminal states map to "everything imported", "some rows failed and the rest succeeded", and "the whole job failed before any rows landed". Branch on the status to decide whether to call [`import failed-export`](/cli/commands/path/import/export-failures).

### 3. Print only the failure summary

```bash theme={null}
talkvalue path import get 4218 --json \
  | jq '.data | {status, failedCount, totalRows, processedRows}'
```

Useful inside a script that should alert when `failedCount > 0` regardless of overall status.

## Response

```jsonc theme={null}
{
  "data": {
    "id": 4218,
    "status": "PARTIAL_SUCCESS",
    "mode": "UPDATE",
    "fileName": "registrants.csv",
    "totalRows": 1247,
    "processedRows": 1247,
    "newCount": 1100,
    "updatedCount": 120,
    "duplicatedCount": 22,
    "skipCount": 0,
    "failedCount": 5,
    "failedRows": [
      { "rowNum": 47, "errorCode": "INVALID_EMAIL", "errorMessage": "Email could not be parsed", "rawValue": "alice@@acme.com" }
    ],
    "processStartedAt": "2026-05-15T10:42:01Z",
    "completedAt": "2026-05-15T10:43:27Z"
  }
}
```

`failedRows` is a small inline sample. The complete list lives behind [`import failed-export`](/cli/commands/path/import/export-failures), which streams every rejected row as CSV.

## See also

* [`import create`](/cli/commands/path/import/create). The step that returns the `importJobId`.
* [`import failed-export`](/cli/commands/path/import/export-failures). Pull the full failed-rows CSV when `failedCount > 0`.
* [Recipe: CSV import](/cli/recipes/csv-import). Uses this command as the poll step.
