# Creator payouts

Pay creators per view on numbers you can defend. Get live view counts with a timestamp on every answer. Hidden counts stay hidden, so you never pay on a made-up zero.

For teams like Whop, Pearpop, Collabstr, #paid, GRIN.

## Why teams use Openhandle.

A scraper gives you a number. A payout needs a number you can back up.

### Example: Settlement run · Summer drop

**Basic scraper**

| Clip | Views | Payout | Status |
|---|---|---|---|
| @kofi.cuts | 388,902 | $311.12 | Paid |
| @lena.clips | 96,340 | $77.07 | Paid |
| @juno.reels | 0 | $0.00 | Paid |

The platform hid @juno.reels’ count. The scraper reported 0. The creator got paid nothing and will be in your inbox by Monday.

**Openhandle**

| Clip | Views | Payout | Status |
|---|---|---|---|
| @kofi.cuts | 388,902 | $311.12 | Ready |
| @lena.clips | 96,340 | $77.07 | Ready |
| @juno.reels | hidden | — | Held |

Same clip. Openhandle says the count is hidden, so the run holds it for review. Nobody gets paid on a number that does not exist.

| Without Openhandle | With Openhandle |
|---|---|
| **Hidden counts get paid as zero.** When a platform hides a view count, most scrapers report 0. You underpay a creator who earned more, and the dispute lands in your inbox. | **Hidden counts hold the clip.** We tell you the count is hidden instead of inventing a zero. Your settlement holds that clip for review. |
| **Disputes come down to your word.** A creator claims a million views, your record shows less, and all you have is a number with no origin and no time. | **Every number has a time and a source.** Each answer says when it was read and whether it came live or from cache. Store it with the payout and the dispute is over. |
| **Payday floods your scraper.** Campaigns settle all at once. Thousands of clips need a fresh read in one window, on a scraper that falls over on the day it matters. | **Built for the payday burst.** 10 requests per second per key, more on request, with failover paths underneath. One live read per clip. |
| **An Instagram view is not a TikTok view.** Paying the same rate per view across platforms without a definition is a payout policy written in sand. | **Each metric is defined per platform.** The metric semantics table says what counts as a view on each platform. Your payout terms can point at a definition. |

## How a settlement works.

1. **Track during the campaign.** Read every clip once a day from the 24-hour cache. Each cache hit costs $0.0005.
2. **Settle on one live read.** On payday, read each clip live. One request per clip, and the number the platform showed at that moment.
3. **Keep the receipt.** Store the capture time and the source with the payout. When a creator disputes a number, you show what the platform reported and when.

Settlement read for one clip:

```bash
curl "https://api.openhandle.dev/v1/instagram/posts/DL2xq81qA7f?freshness=live" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
```

```json
{
  "platform": "instagram",
  "resource": "post",
  "capturedAt": "2026-09-02T09:12:44Z",
  "source": "live",
  "data": {
    "id": "DL2xq81qA7f",
    "author": { "handle": "kofi.cuts", … },
    "metrics": {
      "views": 388902,
      "likes": 24118,
      "comments": 913,
      "shares": 3307
    }
  }
}
```

This is the number you pay on. Read live at that second, with the time and the source. Store it next to the payout and every number has a receipt.

## Give finance a clear record.

- **Proper invoicing.** Card payment, an invoice for every charge. Nothing prepaid, nothing that expires.
- **A person answers.** Chat directly with the people who build Openhandle through Crisp.

## Documentation

- [Metric semantics](https://openhandle.dev/docs/concepts/metric-semantics)
- [Freshness and caching](https://openhandle.dev/docs/concepts/freshness-and-caching)
- [Envelope and errors](https://openhandle.dev/docs/concepts/envelope-and-errors)
