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

# Let Prizerail fetch winners

> Publish each drawing's winners at a URL and Prizerail fetches them before the cutoff.

The usual way. Publish each drawing's winners at a URL and Prizerail fetches them before the cutoff, so there's nothing to call. Set the URL in the campaign's **Winners** section in the [partner portal](/getting-started/partner-portal).

Rather post the list yourself? See [Send winners](/api/send-winners).

## The URL

The URL can name the drawing with placeholders, filled in for each draw:

| Placeholder | Becomes |
| - | - |
| `{date}` | The draw date in the campaign's time zone, e.g. `2026-10-15` |
| `{drawAt}` | The draw time in UTC, ISO 8601, URL-encoded |
| `{drawingId}` | The drawing's id |

For example `https://api.acme.com/prizerail/{date}`.

The URL must be https on a public host, with no redirects. Prizerail sends `Accept: application/json` and gives up after 8 seconds.

## The response

The same body the [send winners](/api/send-winners) endpoint takes, with the same rules: exactly the expected count, no repeats, names and avatars optional.

```json theme={null}
{ "winners": ["user-8231", "user-4417", "user-0092"] }
```

## When it's fetched

* Every 5 minutes in the 2 hours before each cutoff.
* Until your draw has happened, return `404`, an empty list, or no `winners` key. Prizerail tries again.
* Nothing is stored until the full list is there.
* If the list changes before the cutoff, the newer one replaces the earlier one.
* At the cutoff the list locks, exactly as if it had been posted.

If the URL still errors in the last few minutes before the cutoff, Prizerail staff are alerted.


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