# getBulkTask

Status of an async bulk task by the bulkTaskId an async op returned (addPropertiesToList and the like): status (CREATED = queued, PROCESSING = being applied, COMPLETED, FAILED = the change was NOT applied), progress (processedItemCount of estimatedItemCount) and a best-effort ETA (secondsRemaining; null = no estimate, not an error; status is authoritative). Null for an id not in your workspace. Poll every 3-5 seconds.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "getBulkTask", "variables": {...} }`
- Scope: `READ`
- Type: query
- Idempotency: a read; rejects `Idempotency-Key`
- Rate-limited: no

## Variables

- `bulkTaskId`: `ID!` (required)

## Response (data, an example)

```json
{
  "bulkTaskQuery": {
    "bulkTask": {
      "id": "<ID>",
      "status": "CREATED",
      "estimatedItemCount": 0,
      "processedItemCount": 0,
      "secondsRemaining": 0,
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "operationId": "getBulkTask",
    "variables": {
      "bulkTaskId": "<bulkTaskId>"
    }
  }'
```
