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

# Winners

## List Campaign Winners

```http theme={null}
GET /api/v1/campaigns/{slug}/winners
```

Every settled win for the campaign, one row per slot. A drawing appears here once it is `settled` or `paid`, regular draws and [guarantee draws](https://docs.prizerail.com/api/guarantees.md) both. Open, locked and skipped drawings are not in the list. Authenticate with your API key, as on every other campaign route.

| Query | Meaning |
| - | - |
| `limit` | Optional. How many to return, 25 by default and at most 100. |
| `sort` | Optional. `latest` (the default) or `amount`. |
| `before` | The previous response's `nextBefore`, to page back. On `latest`, a draw time (ISO 8601) also works: winners from draws strictly before that time. |

`latest` is newest draw first, and within a draw the slots run in order, slot 0 first. `amount` is largest prize first, and the same order breaks a tie. A draw can have more winners than one page, so a page can stop in the middle of a draw. `nextBefore` is the cursor to send as `before` next, and `null` when you've reached the end. This list pages back only. Sending `after` is a `400`.

```json theme={null}
{
  "winners": [
    {
      "drawing": {
        "id": "d7k2m9q4x1wz",
        "number": 12,
        "drawAt": "2026-10-15T16:00:00.000Z"
      },
      "winnerPosition": 0,
      "entrantId": "user-8231",
      "displayName": "Colin C.",
      "avatarUrl": "https://cdn.example/avatars/avfd3s.png",
      "amountCents": 500,
      "heldForManualPayout": false
    }
  ],
  "nextBefore": "2026-10-15T16:00:00.000Z/d7k2m9q4x1wz/0"
}
```

| Field | Meaning |
| - | - |
| `drawing` | The draw this win came from: its `id`, its `number`, and `drawAt`. Read the draw in full at [`/drawings/{id}`](https://docs.prizerail.com/api/drawings). |
| `winnerPosition` | The slot in that draw, starting at 0. The same slot as `winners[].position` on [the drawing](https://docs.prizerail.com/api/drawings.md). With [repeat winners](https://docs.prizerail.com/getting-started/faq.md#can-one-user-win-more-than-once-in-the-same-draw) one entrant can fill several slots, so the same `entrantId` can appear more than once. Key a win by the drawing's `id` and this `winnerPosition`. |
| `entrantId` | The entrant id you sent with their entries. The same id as `winners[].winner` on [the drawing](https://docs.prizerail.com/api/drawings.md). |
| `displayName` | The name you sent, or `null`. Shown only because they won. |
| `avatarUrl` | The avatar you sent, or `null`. |
| `amountCents` | The prize for this slot, in cents. |
| `heldForManualPayout` | True when this winner's prizes in this drawing, every slot they won together, are at or above the campaign's large-prize threshold. Prizerail staff review those prizes and pay them separately, not in the automatic transfer. The same value as `winners[].heldForManualPayout` on [the drawing](https://docs.prizerail.com/api/drawings.md). |
| `nextBefore` | Pass as `before` for the next page. `null` on the last page. On `amount` it starts with the prize in cents. |

Pass `nextBefore` back unchanged. A `latest` cursor is the draw time, the drawing id and the slot. An `amount` cursor puts the prize in cents in front of that.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.