Solutions
Solutions for real products, not demos
Gate features, enforce plans, manage licenses, and meter usage across SaaS, desktop, CLI, and marketplaces.
SaaS & Web Apps
Plans, trials, seats, and feature flags without bespoke logic. Scope tokens by tenant, role, or feature bundle.
- Per-seat & per-feature entitlements
- Metering & overage protection
- Tenant & role claims in JWT
Desktop, Plugins & CLI
Issue license keys, bind to devices, and verify offline with signed tokens and grace windows.
- License activation + device binding
- Offline verification (exp & signature)
- Channel keys (beta, enterprise)
APIs & Marketplaces
API keys, scopes, and per-route rate limits. Webhooks notify you on plan changes and violations.
- Scoped API keys + rotation
- Route & org-level throttles
- Webhooks for usage & upgrades
Typical SaaS request flow
- 1Frontend gets a session, backend exchanges for a service token with plan claims.
- 2Call
/entitlements/checkwith the action you want to perform. - 3We reply allow/deny and return remaining quota if metered.
curl -H "Authorization: Bearer <token>" \
https://api.subscriberapi.io/v1/entitlements/check \
-d '{"user_id":"u_123","action":"projects.create"}'
Desktop / CLI licensing
- Activate a key → receive a signed token with device fingerprint claim.
- Verify offline: check signature, expiry, and device claim.
- Grace windows + heartbeat endpoints for periodic renewal.
GET /v1/licenses/{key}
POST /v1/licenses/activate
POST /v1/tokens/verify
PHP SDK
Drop-in middleware for plan checks & key validation.
Node.js SDK
Express/Fastify helpers for entitlements & rate limits.
Python SDK
Flask/Django decorators and CLI helpers.
Frequently asked
Can I mix per-seat and usage-based billing?
Yes—store seats as entitlements and attach meters for high-cost actions. We’ll enforce both on checks.
Do you support offline desktop apps?
Tokens are signed and time-boxed; you can verify locally and renew when back online.
How do I migrate?
Import your plans/keys through the API. Run in “report-only” mode first, then switch to enforce.