Distribute beta keys, track redemptions, and (optionally) correlate them to in-game sessions via the SDK. This guide covers the full flow, from creating a batch to interpreting the dashboard. The per-tester FAQ lives at What testers see; the SDK contract at SDK correlation.
pl-betakey-… keys for closed betas.linkTestercall, redeemed keys auto-tag the tester's sessions with their handle. You see WHICH tester played WHAT.Two entry points, same form:
/games/[slug]/playtest (scoped to one game) , click Hand out a batch.You'll choose:
Uploaded keys: paste them one per line into the import box on the create-batch form, or call POST /api/playtest/batches/<id>/keys/import with { codes: ["AAA", "BBB", ...] }.
Generated keys: enter how many you want; we mint them with format pl-betakey-XXXXXXXX-XXXXXXXX-XXXXXXXX. Only useful if your game can validate them, call POST /api/v1/playtest/validate at game launch with { gameId, code } to check.
Duplicates are deduped on a sha256 fingerprint. If you re-upload a key that's already in another batch (even from months ago), it's flagged in the response and not double-imported.
Public link: copy the “Share this link” URL from the batch detail page. Anyone with the link can redeem.
Individual invites: POST /api/playtest/batches/<id>/invites with { invites: [{ email, personalNote? }, ...] }. Each recipient gets their own one-shot link.
The batch detail page shows:
Optional but powerful. Your game can call client.linkTester(token)to bind a redeemed key to the device. From that point on, every telemetry event tagged with that device's deviceId also gets the tester's handle attached server-side, you'll see them in dashboards as “RedFox42” instead of an opaque device id.
The integration is intentionally tiny, typically a single text input in your main menu + 5 lines of SDK code. Studios that don't want this layer skip the prompt; keys still work as plain Steam / Epic / itch keys.
Full contract: SDK correlation.
Hardcoded. Non-configurable. Don't ask:
The 3x repetition is intentional. A tester who skimmed the first warning sees it twice more in the next two minutes; the “report scam” link is one click away from each.
The moment a tester clicks “Submit report” from /scam-report with your batch's redemption URL, three side channels fire in parallel:
security@playloop.gg with the redemption URL, payment-demand text, reporter contact (if provided), IP, and country.We never auto-suspend studios.Almost every report is either a reseller acting without your knowledge or a misunderstanding. The system flags patterns, not individual studios; your good-faith track record is what protects you. If we need anything from you, we'll reply to the email directly.
Both emails AND the bell-row are non-fatal, if the email provider is down or the write hiccups, the report still lands in the audit log and we can recover from there.
These docs are evolving. Playloop is in active development ahead of launch, so APIs and details may change as we polish.