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

# Get Devices Import Status

> Retrieve devices import job status, counters, and error file URL

#### Description

Returns counters and, when present, a signed error CSV URL for a devices import job. Same status payload as events import.

See [CSV Import Introduction](/api-reference/zixflow-ai/import/introduction) for statuses and polling guidance.

#### Headers

<ParamField header="x-api-key" type="string" required placeholder="Enter your API key">
  Your API key for authentication. Must have **dashboard** permission.
</ParamField>

<ParamField header="x-workspace-id" type="string" required placeholder="Enter your workspace ID">
  Your workspace ID for authentication. Must own the API key.
</ParamField>

#### Path Parameters

<ParamField path="import_id" type="string" required placeholder="68f0c1a2b3c4d5e6f7a8b9c2">
  The import job ID returned when the import was queued.
</ParamField>

#### Response

<ResponseField name="success" type="boolean">
  Indicates whether the API call was successful.
</ResponseField>

<ResponseField name="message" type="string">
  Success or error message from the API.
</ResponseField>

<ResponseField name="data" type="object">
  Import status payload.
</ResponseField>

<ResponseField name="data.import_id" type="string">
  Unique import job ID.
</ResponseField>

<ResponseField name="data.status" type="string">
  One of `in-queue`, `in-progress`, `completed`, `failed`, or `cancelled`.
</ResponseField>

<ResponseField name="data.total" type="number">
  Rows discovered.
</ResponseField>

<ResponseField name="data.processed" type="number">
  Rows handled so far.
</ResponseField>

<ResponseField name="data.created" type="number">
  Rows that created new records.
</ResponseField>

<ResponseField name="data.updated" type="number">
  Rows that updated existing records.
</ResponseField>

<ResponseField name="data.skipped" type="number">
  Rows that were skipped.
</ResponseField>

<ResponseField name="data.failed" type="number">
  Rows that failed.
</ResponseField>

<ResponseField name="data.percentage" type="number">
  Progress from 0–100.
</ResponseField>

<ResponseField name="data.file_url" type="string">
  Original URL you submitted (API imports only).
</ResponseField>

<ResponseField name="data.error_file_url" type="string">
  Signed URL of failed-row CSV; omitted until available. Refreshed on poll; \~7 day expiry.
</ResponseField>

<ResponseExample>
  ```json 200-Success theme={null}
  {
    "success": true,
    "message": "Import status retrieved successfully",
    "data": {
      "import_id": "68f0c1a2b3c4d5e6f7a8b9c2",
      "status": "in-progress",
      "total": 1000,
      "processed": 420,
      "created": 300,
      "updated": 100,
      "skipped": 10,
      "failed": 10,
      "percentage": 42.0,
      "file_url": "https://files.example.com/devices.csv",
      "error_file_url": "https://signed-url.example.com/errors.csv"
    }
  }
  ```

  ```json 400-Bad Request theme={null}
  {
    "success": false,
    "message": "invalid import_id"
  }
  ```

  ```json 401-Unauthorized theme={null}
  {
    "error": true,
    "message": "Unauthorized"
  }
  ```

  ```json 404-Not Found theme={null}
  {
    "success": false,
    "message": "import not found"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.