Quickstart

Go from zero to a green entitlement check in about five minutes — without touching Apple or Google. You'll grant an entitlement directly (no purchase) and read it back.

1. Create a project

Sign up, verify your email, and the onboarding wizard creates your first project. The project's ID is the tenant scope for everything below. Full walkthrough: Create a project.

2. Define an entitlement

In Dashboard → Entitlements, create one with the key pro. That key is the contract your code checks — keep it stable even if SKUs change later.

3. Get your keys

In Dashboard → Settings → API keys, copy your publishable key (pk_live_…, safe in clients, read-only) and secret key (sk_live_…, server-only, required to write). More: API keys.

4. Grant the entitlement to a test user

From your server (or a terminal), grant pro to any app_user_id you choose. No store purchase needed — this is the fast path to prove the loop.

bash
curl https://entitlehub.com/v1/subscribers/test_user_1/grant \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "entitlement": "pro", "duration_days": 0 }'
# → { "app_user_id": "test_user_1", "active_entitlements": [ { "entitlement": "pro", ... } ] }

5. Check it

You can check with the publishable key — this is what your app does at runtime.

bash
curl https://entitlehub.com/v1/check \
  -H "Authorization: Bearer pk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "app_user_id": "test_user_1", "entitlement": "pro" }'
# → { "active": true, "status": "active", ... }
That's the whole loop

Grant → check is the core. Real purchases replace step 4 with a validated receipt (see purchases), but everything downstream is identical.

Same thing with the SDK

typescript
import { EntitleHubServer } from "@entitlehub/sdk";

const eh = new EntitleHubServer({ apiKey: process.env.ENTITLEHUB_SECRET_KEY! });

await eh.grantEntitlement("test_user_1", "pro");        // grant
const info = await eh.getCustomerInfo("test_user_1");   // read
console.log(info.isActive("pro"));                       // true

Next: model your real catalog in Core concepts, then set up entitlements & products.