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

# Proof of Play

> Confirm that content has been displayed on a screen.

## Proof of Play

The `pop` field returned in the [Get Spot](/api-reference/ad-delivery/get-spot) response is a GET URL that **must be called exactly once** after the content has been displayed. It confirms playback to FRAMEN.

### Rules

* A proof-of-play URL can only be registered **once**. Subsequent calls will be ignored.
* The proof-of-play request **must happen within 1 hour** of the original ad request.
* If the GET request fails (network error, timeout, 5xx), retry up to 3 times with exponential backoff (e.g., 1s, 2s, 4s). Retries are safe because the server deduplicates by spot ID.

### Example

After displaying the content from a Get Spot response, fire the proof-of-play URL:

```bash theme={null}
curl -X GET "https://api.framen.com/pop/5Kv88XyDCkWHf4DTHeS63BmAmMjWatjZRYcWN1cWq3rm"
```

### Proof-of-Play Dashboard

Use the [Proof-of-Play Dashboard](https://metabase.framen.io/public/question/dcb346a7-1bef-48e1-9db8-1bdda0b35ff1) to monitor proof-of-play rates for your screens. Filter by `org_token` and `screen_id` to view hourly request counts, response counts, PoP counts, and PoP rates.
