Campaign Infrastructure for Apps
Stop building promo code infrastructure.
Ship campaigns in minutes.
PromoKit gives you campaign management, promo code validation, redemption tracking, and analytics — all through a simple API and SDK. Cross-platform. Developer-first. Production-ready.
Everything you need to run campaigns
Stop reinventing the wheel. PromoKit handles the infrastructure so you can focus on growth.
Campaign Management
Create, pause, and stop campaigns in seconds. Group codes, manage lifecycles, and control everything from a single dashboard.
SDK Integration in Minutes
Drop in our lightweight SDK (React Native, Flutter, iOS, Android, Web). Initialize with one key. Validate and redeem codes with two methods.
Smart Code Validation
Server-side rule evaluation — time windows, redemption limits, per-user caps. Stateless validate endpoint for previewing, stateful redeem for claiming.
Analytics & Tracking
Track redemptions per code, per campaign, per user. Webhooks for real-time integration with your backend. Export data anytime.
Anti-Abuse Built In
Per-user limits, global redemption caps, and idempotent endpoints. Honest guarantees where they matter, soft limits where they're practical.
Developer-First Payloads
Define your own JSON payload per campaign. Your app decides how to react — extended trial, discount, premium unlock, badge. Total flexibility.
Three steps. Zero infrastructure.
1. Create a campaign
Define your campaign, set rules (time windows, redemption limits), and attach a custom JSON payload that your app will receive.
2. Generate or add codes
Create custom codes (e.g. CREATOR20) or auto-generate code groups. Share them via links, QR codes, or deep links.
3. Integrate the SDK
Initialize with your publishable key. Two methods: validate (preview) and redeem (claim). That's it.
Simple API.
Powerful flexibility.
Validate (preview, no side effects)
POST /v1/codes/validate — check a code is valid before showing an offer. Safe to retry.
Redeem (atomic claim)
POST /v1/codes/redeem — validate and claim in one call. Idempotent by userId + code.
You control the UX
PromoKit returns a JSON payload you define. Extended trial? Discount? Premium unlock? Badge? Your app decides what to show.
Built for real growth use cases
Creator & Influencer Campaigns
Give each creator a unique code. Track performance per creator. Pause campaigns that underperform.
Referral Programs
Auto-generate unique codes per user. Set per-user redemption caps. Track virality.
Retention & Win-Back
Time-limited codes for churned users. Expiring offers that create urgency.
B2B & Distribution
Bulk code generation for partners. Custom payloads for different distribution channels.
Simple, transparent pricing
Free to start. Scale when you're ready.
Starter
1 app, 3 campaigns, 1K redemptions/month
- 1 app slot
- 3 campaigns
- 1,000 redemptions/mo
- REST API access
- Dashboard
Growth
3 apps, unlimited campaigns, 10K redemptions
- 3 app slots
- Unlimited campaigns
- 10,000 redemptions/mo
- All SDKs
- Webhooks
- CSV export
Pro
10 apps, unlimited campaigns, 50K redemptions
- 10 app slots
- Unlimited campaigns
- 50,000 redemptions/mo
- All SDKs + priority
- Webhooks + analytics
- Team members
Frequently Asked Questions
Is PromoKit a billing replacement?
No. PromoKit does NOT replace Apple/Google billing, wrap native offer codes, or manage purchases. It handles campaign validation, redemption tracking, and promo code infrastructure. You still process payments through your existing billing provider.
How does the SDK work?
Initialize with a publishable key, then call validate() to preview a code or redeem() to claim it. The SDK sends requests to our API, which evaluates rules server-side and returns your custom JSON payload. Your app decides how to present the offer.
What platforms are supported?
REST API ships first, then React Native, Web (JS), Flutter, iOS (Swift), and Android (Kotlin). The API is platform-agnostic — any HTTP client works from day one.
How are promo codes protected from abuse?
Server-enforced global redemption caps (hard limit), per-user redemption limits (best-effort via device ID or your userId), time windows, and idempotent redeem endpoints. Custom codes have a smaller namespace — document accordingly. Auto-generated codes use 36^8 combinations.
Can I use my own user IDs?
Yes. The SDK generates an anonymous UUID by default, but you can override it with your own userId after authentication. Per-user limits then use your identity system.
Is there a test mode?
Yes — full isolated test workspace with separate API keys (pk_test_*). Same API, same workflows, zero risk. Toggle between live and test in the dashboard.
Join the Waitlist
PromoKit is coming soon. Leave your email and be the first to know when we launch.