# Check bulk upload status

`GET /api/bobsync/products-bulk/status?channel_id=1`

**Base URLs:**

- Sandbox: `https://api.tools.qa.bobshop.co.za`
- Production: `https://api.tools.bobshop.co.za`

**Authentication:** Bearer token required (see the Authentication page).

## Example request

```bash
curl -X GET 'https://api.tools.qa.bobshop.co.za/api/bobsync/products-bulk/status?channel_id=1' \
  -H "Authorization: Bearer <API_KEY>"
```

How a bulk upload is progressing, or how the last one finished. The result is
kept for one hour after the run's last write. Collect the error list within
that hour.

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `channel_id` | integer | yes | The API channel your token belongs to. Support can give it to you before your first order. |

| Field | Meaning |
| --- | --- |
| `is_running` | Whether a run is in progress. |
| `import_count` | Products attempted so far. |
| `import_success_count` | Products that succeeded. The difference is the number that failed. |
| `errors` | The reasons products failed, **de-duplicated**: a problem affecting 500 products appears once. Its length is not a failure count. |

A channel that has never run a bulk upload, or whose last run finished more
than an hour ago, returns zeroes with `errors: null`.

## Failures

| Status | Body | Meaning |
| --- | --- | --- |
| `400` | `invalid channel_id` | `channel_id` missing or not positive. |
| `400` | `could not get channel` | The channel could not be found. |
| `403` | `user 123 does not have access to channel 456` | The channel does not belong to you. |

## Response

`200` with the status record.

```json
{
    "errors": [
        "product reference empty",
        "handling time cannot be more than 15 days"
    ],
    "import_count": 1500,
    "import_success_count": 1498,
    "is_running": false
}
```
