Add a premium, fully compliant monthly giveaway to your app, website, POS, CRM, or HR tool—under your brand. PrizeAPI operates the shared prize pool, eligibility, secure drawing, and fulfillment. You ship the experience. We handle the ops.
Use GET /v1/giveaway
or /v1/giveaways
to pull live details into your UI.
Submit via POST /v1/entry
from your server with an Idempotency-Key. Keep tokens server-side.
PrizeAPI enforces rules, runs a secure monthly draw, verifies the winner, and fulfills the prize globally.
Show the winner via GET /v1/giveaway/winner
or by id. Keep the celebration fully on-brand.
Live tally. Pool resets on the 1st. “No purchase necessary. Void where prohibited.”
Brand-safe by default. Global rules, secure draws, audit logs, and winner verification handled for you.
Zero logistics. We source and fulfill the prize. You focus on growth, not shipping and paperwork.
Drop-in integration. Public reads for UI, authenticated POST for entries. Works with web, mobile, POS, or CRM.
A single, compliant giveaway layer you can drop into web, mobile, POS, CRM, or HR tools—under your brand.
Boost conversions by entering shoppers after checkout or newsletter opt‑in.
Reward weekly activity streaks with entries—no prizes to ship or manage.
Cashier triggers entry by receipt code; winner displayed in‑app monthly.
Give employees entries for kudos, training completion, or safety milestones.
Award entries for first‑week checklist completion to drive activation.
Run community‑wide monthly draws tied to quests, posts, or contributions.
Give students entries for lesson streaks or course completion milestones.
Award entries to attendees who check in, stay to the end, or submit feedback.
Grant entries for referrals, share-to-subscribe, or open‑rate streaks.
Give entries for points earned, tier upgrades, or birthday perks.
Reward daily check-ins, medication adherence, or wellness streaks.
Award entries for bookings, reviews, or off‑season promotions.
Grant entries when devs publish integrations, plugins, or examples.
Reward donors for peer‑to‑peer shares, pledges, or volunteer hours.
Drive participation for surveys, town halls, or public initiatives.
Reward dine‑in check-ins, order streaks, or post‑meal reviews.
Give entries for step goals, workout streaks, or team challenges.
Grant entries for successful referrals, new sellers, or verified reviews.
Give entries for live watch time, channel subs, or sponsor CTA clicks.
Award entries for episode completions, reviews, or social shares.
Give entries for test drives, service visits, or referral leads.
Each example includes Bearer token + Idempotency-Key headers and sample output.
$response = Http::withToken('YOUR_PRIZEAPI_KEY')
->withHeaders([
'Idempotency-Key' => Str::ulid(),
'Content-Type' => 'application/json'
])
->post('https://www.prizeapi.com/api/v1/entry', [
'app_id' => '01k7cjsngrbgmhztfqa3h8xyak',
'contact' => ['name' => 'Jane Doe', 'email' => 'jane@example.com'],
'user' => ['country' => 'US'],
'consents' => ['terms' => true, 'age_confirmed' => true],
'meta' => ['fingerprint' => 'fp-12345', 'region' => 'US-CA']
]);
$data = response->json();
{
"data": [
{
"entry_id": 1,
"giveaway_id": "2025-10-12-global",
"status": "eligible",
"email_last4": "jane",
"created_at": "2025-10-12T11:07:21-05:00"
}
]
}
async function submitEntry(payload) {
const res = await fetch("/api/entries", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
});
return await res.json();
}
submitEntry({
app_id: "01k7cjsngrbgmhztfqa3h8xyak",
contact: { name: "Jane Doe", email: "jane@example.com" },
user: { country: "US" },
consents: { terms: true, age_confirmed: true },
meta: { fingerprint: "fp-12345", region: "US-CA" }
});
{
"data": [
{
"entry_id": 1,
"giveaway_id": "2025-10-12-global",
"status": "eligible",
"email_last4": "jane",
"created_at": "2025-10-12T11:07:21-05:00"
}
]
}
import fetch from 'node-fetch';
async function createEntry() {
const res = await fetch('https://www.prizeapi.com/api/v1/entry', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.PRIZEAPI_KEY}`,
'Idempotency-Key': `${Date.now()}-${Math.random().toString(36).slice(2)}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
app_id: '01k7cjsngrbgmhztfqa3h8xyak',
contact: { name: 'Jane Doe', email: 'jane@example.com' },
user: { country: 'US' },
consents: { terms: true, age_confirmed: true },
meta: { fingerprint: 'fp-12345', region: 'US-CA' }
})
});
return await res.json();
}
createEntry().then(console.log);
{
"data": [
{
"entry_id": 1,
"giveaway_id": "2025-10-12-global",
"status": "eligible",
"email_last4": "jane",
"created_at": "2025-10-12T11:07:21-05:00"
}
]
}
curl -s -X POST "https://www.prizeapi.com/api/v1/entry" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Idempotency-Key: <UNIQUE KEY>" \
-H "Content-Type: application/json" \
-d '{
"app_id": "01k7cjsngrbgmhztfqa3h8xyak",
"contact": { "name": "Jane Doe", "email": "jane@example.com" },
"user": { "country": "US" },
"consents": { "terms": true, "age_confirmed": true },
"meta": { "fingerprint": "fp-12345", "region": "US-CA" }
}'
{
"data": [
{
"entry_id": 1,
"giveaway_id": "2025-10-12-global",
"status": "eligible",
"email_last4": "jane",
"created_at": "2025-10-12T11:07:21-05:00"
}
]
}
GET /v1/giveaway
, /v1/giveaways
, /v1/giveaway/{id}/rules
, /v1/giveaway/winner
POST /v1/entry
with Bearer token + Idempotency-Key.
PAT shown once, token scopes per app, auditable draws, and regional eligibility rules.
Sign up to generate a personal access token (shown once). You can rotate keys anytime from your dashboard.
Create account