Skip to main content
Question

How do I give Entitlement to user that never Subscribed before in the Dashboard?

  • November 16, 2025
  • 1 reply
  • 28 views

Forum|alt.badge.img

Hi, I’m looking for a way to grant users of my app entitlements, such as one week of free premium access.
The problem is that if a user has never interacted with Purchases, they don’t appear in the RevenueCat dashboard.
I can get the user ID from Supabase, but I can’t find a way to manually add this user to the RevenueCat dashboard so I can grant them entitlements.
I know there’s a way to do this through the API, but is there really no way to add a new user directly in the dashboard when I already have the user ID?

This post has been closed for comments

1 reply

chris_perriam
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • November 19, 2025

Although it isn’t possible to create a new RevenueCat user directly in the dashboard, you can create the user and assign the entitlement with a small script calling our API.

Here’s an example script created with an LLM:

#!/usr/bin/env bash

# ====== Setup (replace these with your real values) ======
API_KEY="YOUR_REVENUECAT_SECRET_API_V1_KEY"
APP_USER_ID="user_123" # Your app user id
ENTITLEMENT_ID="pro" # The entitlement identifier you set in RevenueCat
BASE_URL="https://api.revenuecat.com/v1"

# NOTE: If APP_USER_ID has special characters (spaces, etc),
# you should URL-encode it before using it in the URL.

# ====== 1) Create (or fetch) the customer ======
# This GET call will "Get or Create Customer" for this APP_USER_ID.
curl -X GET "$BASE_URL/subscribers/$APP_USER_ID" \
-H "Authorization: Bearer $API_KEY"

echo "" # just print a newline

# ====== 2) Grant a monthly entitlement ======
# This POST call grants a promotional entitlement with duration: monthly.
curl -X POST "$BASE_URL/subscribers/$APP_USER_ID/entitlements/$ENTITLEMENT_ID/promotional" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"duration": "monthly"
}'

Another method of calling our API is via a browser extension such as Postman.