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

# Get inventory upload status and processing progress

> Retrieve the current processing status and metadata for an inventory upload. Poll this endpoint to track progress from PENDING through to COMPLETED or FAILED.

After submitting an inventory file, use this endpoint to check its processing status. The upload moves through the following states: `PENDING` → `PROCESSING` → `COMPLETED` or `FAILED`. If you cancel an in-progress upload, the status becomes `CANCELLED`.

## Request

**`GET https://api.mapping.travel/api/v1/inventory/{uploadId}`**

<ParamField path="uploadId" type="string" required>
  The UUID of the upload, returned when you submitted the file.
</ParamField>

## Example

```bash theme={null} theme={null}
curl https://api.mapping.travel/api/v1/inventory/f47ac10b-58cc-4372-a567-0e02b2c3d479 \
  -H "Authorization: Bearer <your-token>"
```

## Response

<ResponseField name="uploadId" type="string">
  UUID of the upload record.
</ResponseField>

<ResponseField name="status" type="string">
  Current processing status. One of: `PENDING`, `PROCESSING`, `COMPLETED`, `FAILED`, `CANCELLED`.
</ResponseField>

<ResponseField name="fileFormat" type="string">
  Detected file format: `CSV`, `JSON`, `EXCEL`, or `PARQUET`. Present once the file has been inspected.
</ResponseField>

<ResponseField name="rowCount" type="integer">
  Total number of data rows in the file. Present once processing begins.
</ResponseField>

<ResponseField name="validRows" type="integer">
  Number of rows that passed validation. Present once processing completes.
</ResponseField>

<ResponseField name="invalidRows" type="integer">
  Number of rows that failed validation. Present once processing completes.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp of when the upload was submitted.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp of the most recent status update.
</ResponseField>

### Status lifecycle

| Status       | Meaning                                       |
| ------------ | --------------------------------------------- |
| `PENDING`    | File received, queued for processing          |
| `PROCESSING` | Actively being validated and ingested         |
| `COMPLETED`  | Processing finished successfully              |
| `FAILED`     | Processing encountered an unrecoverable error |
| `CANCELLED`  | Upload was cancelled via the cancel endpoint  |

<Note>
  Poll this endpoint at a reasonable interval — for example, every 5 seconds — rather than continuously. Large files may take several minutes to reach `COMPLETED`.
</Note>

## Error codes

| Code | Description                                                   |
| ---- | ------------------------------------------------------------- |
| 401  | Missing or invalid Bearer token                               |
| 404  | No upload found for the given `uploadId` in your organization |
| 429  | Rate limit exceeded                                           |
