Catalog

Products, entitlements, and store mappings for an app.

Your catalog is the set of products a user can buy and the entitlements those products unlock. A product maps to one or more store SKUs (Apple / Google) and grants one or more entitlements. See Concepts for how these fit together.

The product object#

idstring

Your product identifier, e.g. pro_monthly. Chosen by you and stable.

typestring

One of subscription, non_subscription, or consumable.

entitlementsstring[]

The entitlement IDs this product grants.

store_idsobject

The store-specific SKU for each platform.

Show store_ids
applestring

The App Store product identifier.

googlestring

The Google Play product / base plan identifier.

The entitlement object#

idstring

Your entitlement identifier, e.g. pro.

is_activeboolean

Whether the entitlement currently grants access (contextual to a customer).

product_idstring

The product that granted the entitlement.

expires_atstring

ISO 8601 expiry, or null for lifetime access.

storestring

The source store, e.g. app_store or play_store.

Retrieve the catalog#

GET /v1/apps/{app}/catalog

Returns the app's full catalog — products and entitlements.

appstringrequired

The app ID.

bash
curl https://api.cashsdk.com/v1/apps/app_2mK4pQ/catalog \
  -H "Authorization: Bearer csk_sk_..."
json
{
  "products": [
    {
      "id": "pro_monthly",
      "type": "subscription",
      "entitlements": ["pro"],
      "store_ids": {
        "apple": "com.example.focustimer.pro.monthly",
        "google": "pro_monthly"
      }
    }
  ],
  "entitlements": [
    { "id": "pro", "product_id": "pro_monthly" }
  ]
}

Create a product#

POST /v1/apps/{app}/products

appstringrequired

The app ID.

idstringrequired

Your product identifier, e.g. pro_monthly.

typestringrequired

subscription, non_subscription, or consumable.

entitlementsstring[]

Entitlement IDs this product grants.

store_idsobject

Store SKUs keyed by apple and/or google.

bash
curl -X POST https://api.cashsdk.com/v1/apps/app_2mK4pQ/products \
  -H "Authorization: Bearer csk_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "id": "pro_monthly",
    "type": "subscription",
    "entitlements": ["pro"],
    "store_ids": {
      "apple": "com.example.focustimer.pro.monthly",
      "google": "pro_monthly"
    }
  }'
json
{
  "id": "pro_monthly",
  "type": "subscription",
  "entitlements": ["pro"],
  "store_ids": {
    "apple": "com.example.focustimer.pro.monthly",
    "google": "pro_monthly"
  }
}

Create an entitlement#

POST /v1/apps/{app}/entitlements

Define an entitlement that products can grant.

appstringrequired

The app ID.

idstringrequired

Your entitlement identifier, e.g. pro.

descriptionstring

Optional human-readable description.

bash
curl -X POST https://api.cashsdk.com/v1/apps/app_2mK4pQ/entitlements \
  -H "Authorization: Bearer csk_sk_..." \
  -H "Content-Type: application/json" \
  -d '{ "id": "pro", "description": "Full access to Pro features" }'
json
{
  "id": "pro",
  "description": "Full access to Pro features"
}

Next steps#