# getCallList

One call list with its progress, plus one page of its contacts in dial order: each slot's `position`, `status` (PENDING = still to call, IN_PROGRESS = being dialed, COMPLETED, SKIPPED with `skipReason`), the outcome (`disposition`), numbers tried and the contact. `limit` defaults to 50 (max 200); pass the returned `nextFromPosition` as `fromPosition` for the next page, and `statuses` to see only some slots. A list that is gone, or private to someone else, is refused with an error (NOT_FOUND or FORBIDDEN), not returned empty.

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

## Variables

- `callListId`: `ID!` (required)
- `fromPosition`: `Int`
- `limit`: `Int` (default `50`)
- `statuses`: `[String!]`

## Response (data, an example)

```json
{
  "callListsQuery": {
    "callList": {
      "id": "<ID>",
      "name": "…",
      "status": "…",
      "visibilityScope": "…",
      "maxNumbersPerContact": 0,
      "includeRelatives": true,
      "overrideDnc": true,
      "overrideLitigator": true,
      "cursorPosition": 0,
      "startedAt": "2026-01-01T00:00:00.000Z",
      "endedAt": "2026-01-01T00:00:00.000Z",
      "dialPath": "…",
      "createdByUser": {
        "id": "<ID>",
        "firstName": "…",
        "lastName": "…"
      },
      "lockedByUser": {
        "id": "<ID>",
        "firstName": "…",
        "lastName": "…"
      },
      "reachedTag": {
        "id": "<ID>",
        "name": "…"
      },
      "counts": {
        "total": 0,
        "pending": 0,
        "completed": 0,
        "skipped": 0,
        "dials": 0,
        "byDisposition": [
          {
            "disposition": "…",
            "count": 0
          }
        ]
      }
    },
    "callListItems": {
      "items": [
        {
          "id": "<ID>",
          "position": 0,
          "status": "…",
          "skipReason": "…",
          "disposition": "…",
          "phonesTried": [
            "…"
          ],
          "completedAt": "2026-01-01T00:00:00.000Z",
          "contact": {
            "id": "<ID>",
            "name": "…"
          }
        }
      ],
      "total": 0,
      "nextFromPosition": 0
    }
  }
}
```

## Example

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