Vote rewards and API
Reward players who vote for your game, check votes on demand, and show your rank on your own site. Everything below is set up per game from your dashboard.
1. Vote link
Send each player to their own vote link. u is your player's id: 1–64 letters, numbers, _ or -. We store it with the vote, never show it publicly, and send it back to you.
https://crownmygame.com/vote/{game-slug}?u={player-ref}
2. Postback
About 10 seconds after a vote passes our fraud checks, we call your postback URL:
POST {your postback URL}
Content-Type: application/json
X-CrownMyGame-Signature: t=1792000000,v1=<hex HMAC-SHA256 of "t.body">
{
"vote_id": "vt_01J9X4K2M7Q8R3T5V6W8X9Y0Z1",
"game": "your-game",
"player_ref": "12345",
"voted_at": "2026-10-14T14:02:11Z",
"next_vote_at": "2026-10-15T14:02:11Z",
"country": "US",
"test": false
}
- Verify: compute HMAC-SHA256 of
t + "." + raw bodywith your game's secret and compare it to anyv1value. Reject timestamps more than 5 minutes old. - Rotation: for 24 hours after you rotate the secret, the header carries two
v1values, one per secret. - Idempotency: credit each
vote_idonce. A retry can deliver the same vote twice. - Retries: answer with any 2xx status. Otherwise we retry at 1 min, 5 min, 30 min, 2 h and 12 h (Free plans retry once), then email you.
- Test votes have
"test": true. Never reward them. - Legacy GET: for old scripts, we can instead call
?player_ref=…&vote_id=…&voted_at=…&test=0&t=…&sig=…, wheresigis HMAC-SHA256 oft.vote_id.player_ref.
Copy-paste receivers for Node and PHP are on each game's dashboard, with a delivery log and a "Send test vote" button.
3. Pull API
Authenticate with your game's API key: Authorization: Bearer cmg_….
GET /api/v1/votes/check?player_ref=12345
→ { "voted": true, "voted_at": "2026-10-14T14:02:11.000Z", "next_vote_at": "2026-10-15T14:02:11.000Z" }
GET /api/v1/games/{slug}/stats
→ { "game": "your-game", "status": "live", "votes_today": 12, "votes_this_month": 412,
"ranks": { "monthly": 3, "trending": 2, "rising": null } }
Errors: 401 invalid_api_key, 400 invalid_player_ref, 403 key_does_not_match_game.
4. Badges for your site
Live images that link back to your listing. They update every few minutes.
<a href="https://crownmygame.com/vote/{game-slug}"><img src="https://crownmygame.com/badge/{game-slug}.svg?style=vote" width="220" height="56" alt="Vote for us on CrownMyGame"></a>
<a href="https://crownmygame.com/game/{game-slug}"><img src="https://crownmygame.com/badge/{game-slug}.svg" width="220" height="56" alt="Our rank on CrownMyGame"></a>
Rules
Reward the vote, never ad clicks, and give every voter the same reward. Games that buy or fake votes lose them, and repeat offenders are delisted. How the ranking works