# List rotation pool (/docs/api-reference/bulk-calls/listBulkCallNumbers)

> The campaign's number pool, and which number is dialing right now.

**GET** `/calls/bulk_call/{bulk_call_id}/numbers`

The campaign's number pool, and which number is dialing right now.

`calls_this_cycle` is what `fixed_count` rotation compares against, so
it is the field to watch for the next rotation. `calls_dispatched` is
the number's lifetime total across every cycle.

```yaml
operationId: listBulkCallNumbers
parameters:
  - in: path
    name: bulk_call_id
    required: true
    schema:
      type: integer
    description: Id of the bulk call campaign.
responses:
  '200':
    description: The pool and its rotation settings.
    content:
      application/json:
        schema:
          type: object
          properties:
            status:
              type: string
            bulk_call_id:
              type: integer
            rotation_strategy:
              type: string
            calls_per_number:
              type: integer
            rotation_health_threshold:
              type: number
            rotation_fallback:
              type: string
            numbers:
              type: array
              items:
                type: object
                description: One number in a campaign's rotation pool.
                properties:
                  assignment_id:
                    type: integer
                    description: |
                      This number's id within the pool. Use it to pause or resume the
                      number. It is not the `phone_number_id`.
                  phone_number_id:
                    type: integer
                  phone_number:
                    type: string
                  sequence:
                    type: integer
                    description: Rotation order. Lowest dials first.
                  is_active:
                    type: boolean
                    description: A paused number stays in the pool and is skipped.
                  is_dialing_now:
                    type: boolean
                    description: Exactly one number in a pool is dialing at a time.
                  calls_dispatched:
                    type: integer
                    description: Lifetime calls from this number in this campaign.
                  calls_this_cycle:
                    type: integer
                    description: |
                      Calls since this number last became active. `fixed_count` rotation
                      compares this against `calls_per_number`, so this is the one to
                      watch for the next rotation.
                  health_score:
                    type: number
                    nullable: true
                    description: Null until enough calls have been placed to score it.
        example:
          status: success
          bulk_call_id: 314
          rotation_strategy: fixed_count
          calls_per_number: 50
          rotation_health_threshold: 30
          rotation_fallback: pause
          numbers:
            - assignment_id: 508
              phone_number_id: 74
              phone_number: '+15551234567'
              sequence: 10
              is_active: true
              is_dialing_now: true
              calls_dispatched: 124
              calls_this_cycle: 24
              health_score: 82.5
            - assignment_id: 509
              phone_number_id: 123
              phone_number: '+15559876543'
              sequence: 20
              is_active: true
              is_dialing_now: false
              calls_dispatched: 100
              calls_this_cycle: 50
              health_score: null
```

**cURL**

```bash
curl "https://backend.omnidim.io/api/v1/calls/bulk_call/314/numbers" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

**curl**

```bash
curl -X GET "https://omnidim.io/api/v1/calls/bulk_call/{bulk_call_id}/numbers" \
  -H "Authorization: Bearer $OMNIDIM_API_KEY"
```