> ## 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.

# Drawings

> List a campaign's drawings and read each drawing's results and verification data.

## List drawings

```http theme={null}
GET /api/v1/campaigns/{slug}/drawings?status=open
```

| Query | Meaning |
| - | - |
| `status` | Optional. `open`, `locked`, `entropy_requested`, `settled` or `paid`. Leave it off for every status. |

Open drawings come soonest first, so the first one is the next cutoff. Other statuses come newest first. Up to 50 are returned.

```json theme={null}
{
  "drawings": [
    {
      "id": "d7k2m9q4x1wz",
      "number": null,
      "partnerRound": null,
      "drawAt": "2026-10-15T16:00:00.000Z",
      "cutoffAt": "2026-10-15T15:00:00.000Z",
      "status": "open",
      "winnersExpected": 3,
      "needsAttention": null,
      "winners": [],
      "verification": { … }
    }
  ]
}
```

## Get a drawing

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

```json theme={null}
{
  "drawing": {
    "id": "d7k2m9q4x1wz",
    "number": 12,
    "partnerRound": null,
    "drawAt": "2026-10-15T16:00:00.000Z",
    "cutoffAt": "2026-10-15T15:00:00.000Z",
    "status": "paid",
    "winnersExpected": 3,
    "needsAttention": null,
    "winners": [
      {
        "position": 0,
        "winner": "user-8231",
        "displayName": null,
        "avatarUrl": null,
        "randomValue": "0x9c3e…",
        "roll": 61204,
        "amountCents": 500,
        "heldForManualPayout": false
      }
    ],
    "verification": {
      "winnersCommitment": "0x7a1f…",
      "lockedAt": "2026-10-15T15:00:04.000Z",
      "entropyProvider": "pyth",
      "entropyRequestId": "…",
      "entropy": "0x52be…",
      "entropyRevealedAt": "2026-10-15T16:00:41.000Z",
      "prizeTableId": "…"
    }
  }
}
```

## Fields

| Field | Meaning |
| - | - |
| `number` | The drawing's place in the campaign, 1, 2, 3 with no gaps. It's given when the random value is requested, so it's `null` until then. It's also the drawing ID onchain. |
| `partnerRound` | Your own number for the draw, when Prizerail reads one from your source (Polyfox's raffle round, for example). Shown only, never used in the draw. |
| `drawAt`, `cutoffAt` | ISO 8601, UTC. |
| `status` | `open`, then `locked` (list frozen, fingerprint recorded), `entropy_requested` (waiting for the random value), `settled` (prizes decided) and `paid` (sent to your wallet). |
| `winnersExpected` | How many winners this drawing takes, fixed when it was created. |
| `needsAttention` | A short reason when a drawing is stuck, such as no winners by the cutoff. Otherwise null. |
| `winners[].randomValue`, `roll`, `amountCents` | Present once settled. Amounts are US cents. |
| `winners[].heldForManualPayout` | True for a prize at or above the campaign's large-prize threshold, which Prizerail pays by hand rather than in the automatic transfer. |
| `verification` | Everything needed to check the draw. See [Verify a draw](/verification/verify-a-draw). |


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