# Retrieve a usage ingestion's status

Operation ID: `getIngestionStatus`

Group: Accounting › Usage

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getIngestionStatus)

`GET /accounting/usages/ingestions`

Read-only: Reads and returns; changes nothing.

Retrieves a usage ingestion job's status. Send the dataExtractionId that POST accounting/usages/ingest returned. The response has the outcome of each usage record in the job, in extractedData.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |
| `dataExtractionId` | query | number | yes | The identifier of the ingestion job to check, returned by POST accounting/usages/ingest. |

## Response

`200` Success

Under `data` (getIngestionStatusOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object \| null | no | The status of the ingestion job. Null when no job matches dataExtractionId. |
| `data.dataExtractionId` | number | yes | The identifier of the ingestion job, returned unchanged. |
| `data.name` | string | no | The name recorded for this ingestion, usually the original file name. Absent when none is set. |
| `data.mapping` | string | yes | The column mapping applied to this ingestion. An empty string when the default schema was used. |
| `data.extractedData` | array<object> | yes | The per-record outcomes, one entry for each row of the ingested payload. |
| `data.extractedData[].everestId` | number | no | The internal identifier assigned to the row once it is processed. Absent until then. |
| `data.extractedData[].status` | string | yes | The processing status of this row, for example 'PENDING', 'Staged', 'Integrated' or 'FAILED'. |
| `data.extractedData[].isActive` | boolean | yes | Whether this row is currently active. An inactive row stays visible for audit but is left out of downstream billing. |
| `data.extractedData[].error` | string | no | The reason the row failed. Present only when status is a failure. |
| `data.extractedData[].trackId` | string | no | The trackId you supplied for this row at ingestion. Absent when you supplied none. |

```json
{
  "data": {
    "data": {
      "dataExtractionId": 0,
      "name": "<name>",
      "mapping": "<mapping>",
      "extractedData": [
        {
          "everestId": 0,
          "status": "<status>",
          "isActive": true,
          "error": "<error>",
          "trackId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
      ]
    }
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}
```

## Errors

| Code | Status |
| --- | --- |
| `MULTIPLE_UPLOADS_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: MULTIPLE_UPLOADS_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
