Fair, verifiable product drawings — as an API.
REST API · Signed webhooks · Hosted admin
Fair, verifiable product drawings — as an API.
Drop Loop runs the hard parts of a limited-release drop — verified entrants, a drawing anyone can check, claim windows, standby promotion — behind one REST API. Plug it into your own storefront, or use the hosted one under your brand.
Get API accessRead the developer overview
New to product drawings? Start here →
RESTOpenAPI 3 + TypeScript client
HMACsigned webhooks, retried
SHA-256commit–reveal draws
POST/api/v1/Lottery/createX-Api-Key: ••••
{ "name": "Velocity 4 'Midnight'", "itemId": "item-velocity-4-midnight", "opensOn": "2026-10-02T14:00:00Z", "closesOn": "2026-10-05T14:00:00Z", "winnerCount": 25, "backupCount": 10, "maxEntriesPerUser": 2, "claimWindowHours": 48 }
Then, on our clock, to your endpoint
lottery.opened→lottery.closed→lottery.drawn→lottery.win.claimed
One request schedules the whole loop: opening, closing, the draw and every claim window run without you.
Three calls, then the loop runs itself.
No draw code to write. No bot fight to win. No spreadsheet of winners to reconcile.
1. 01
Model the item and the drop
Describe the item once, then create the drop with its window, winner and backup counts, entry cap and claim window — from the admin portal or a single API call. 2. 02Your customers enter
From your own storefront through the public drop endpoints, or from the hosted one under your brand. Every entrant verifies a phone number that can belong to only one account. 3. 03We draw, you get webhooks
At close the draw runs and is recorded so anyone can verify it. Winners get a claim window; passes promote standbys. Your systems hear every step as a signed event.Your storefront or ours. Same API underneath.
Every integration path hits the same endpoints, so you can start hosted and go headless later without re-running a single drop.
Hosted storefrontWhite-labelled under your brand, in your customers’ language, live in a day.
Your own storefrontPublic drop endpoints plus the generated TypeScript client — the same one our apps use.
HeadlessScoped API keys in, signed webhooks out — the draw engine behind your commerce stack.
Admin portal, alwaysIncluded with every path, so your staff run drops without writing code.
Plans are usage-based — metered on drops drawn, entries and messages sent, never on entry fees. Drop Loop never touches payment: a claim becomes an order, and checkout stays yours.
drops.yourbrand.example

The hosted storefront — built on the same public API you get, so nothing it does is off-limits to you.
Every stage of the loop is an event.
A drop isn't a one-off launch. It runs on a published schedule, every stage happens on the clock, and each one reaches your systems as a signed webhook.
1. ### Window opens lottery.opened On schedule, published in advance. Entries are accepted until close. 2. ### Window closes lottery.closed Entries lock and the draw’s random seed is committed as a hash, so it cannot change once the list is known. 3. ### Draw runs lottery.drawn Winners and standbys are drawn from the committed seed; the seed is revealed with the result. 4. ### Claims settle lottery.win.claimed Winners claim in their window; a pass promotes the next standby and fires its own event.
Verifiable by anyone
Results reveal the seed, the entrant hash and the algorithm. A public verify endpoint replays the draw with no sign-in.
Standby that means something
Unclaimed units go down the standby list in order before they return to stock — a pass never strands inventory.
One person, one set of odds
Entrants verify a phone number reserved to a single account per host. Flagged accounts and blocked identifiers never get through.
Everything a fair drop needs, behind one API.
Model the drop and point your customers at it. Drop Loop handles verification, the draw, claims, inventory and every message in between.
Verifiable draws
Cryptographic randomness under a commit–reveal seed, plus an audit record of the entrant snapshot and every pick.
Identity gate
SMS-verified phone numbers reserved to one account, account flags and a per-host blocklist — enforced at entry and again at claim.
Pools and entry rules
Split winner slots across percentage pools with eligibility rules, gate who may enter at all, and give never-won entrants bonus odds.
Variants and inventory
Offer sizes as allocations of one drop. Opening is inventory-gated, stock is decremented on claim and restored on cancel.
Notifications on every channel
Results, claim notices and reminders in-app, by email, SMS and push, with per-user preferences and a live real-time hub.
Multi-tenant and white-label
Hosts, tenants, roles and permissions for your team; branding for colours and logos, down to the transactional email.
Questions worth answering.
Do I have to use your storefront?No. The hosted storefront is one option. The public drop endpoints and the TypeScript client let you build your own, and API keys plus webhooks run it headless.
How do my systems learn about results?Every lifecycle event — opened, closed, drawn, claimed, declined, promoted, fulfilled — is delivered as an HMAC-signed webhook with retries and a delivery ID for de-duplication.
How is fairness proven to entrants?The draw seed is committed as a hash at close and revealed with the result, alongside the entrant hash. A public verification endpoint replays the draw — no sign-in needed.
Is it gambling for my customers?No. Entry is free, nothing is wagered, and winning grants only the option to buy at your price — which the winner can decline.
Can it stop bots and duplicate accounts?Entering requires a phone number verified by SMS and reserved to exactly one account per host. Rate limits, account flags and a blocklist back it up.
What does it cost?Plans are usage-based. Tell us what you’re dropping and roughly how many entrants you expect, and we’ll set you up.
For developers
Built to be integrated.
Every screen Drop Loop ships is built on the same versioned REST API you get — described in OpenAPI 3, typed for TypeScript, authenticated with scoped API keys and observed through signed webhooks.
OpenAPI 3 and a typed client
The whole API is described in a Swagger document, and the generated TypeScript client is the one our own apps use.
Scoped API keys
A key carries only permissions its owner holds, is stored as a hash, revokes at once and keeps a usage history.
Signed webhooks, retried
HMAC-SHA256 signatures, exponential backoff, at-least-once delivery with a stable ID per delivery to de-duplicate on.
Public verification
An anonymous endpoint replays any drawn lottery from its revealed seed, so entrants can check you rather than trust you.
Read the developer overviewGet API access
webhooklottery.drawn
{ "id": "8f3c1d2e-…", "event": "lottery.drawn", "createdOn": "2026-09-05T18:00:14Z", "entityType": "Lottery", "entityId": "velocity-4-midnight", "data": { "status": "Drawn", "winnerCount": 25, "backupCount": 10, "claimWindowHours": 48 } }
DropLoop-Signature
t=1757095214,v1=hmac-sha256
Also delivered
win.claimed · win.promoted · order.fulfilled
Ship your next drop on the API.
Get a host provisioned, an API key issued and a webhook pointed at your stack — then run a real draw end to end.