Skip to main content
Fetch the current state of an import job. The job moves through PENDINGRUNNING → 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

talkvalue path import get <id>

Arguments

ArgumentTypeDescription
<id>integerThe importJobId returned by import create.

Examples

1. One-off status check

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

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.

3. Print only the failure summary

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

{
  "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, which streams every rejected row as CSV.

See also