I was using API v2 to get customer info in order to get their entitlements
1response = await fetch(2 `${apiUrl}/projects/${projectId}/customers/${userId}`,3 {4 headers: {5 Authorization: `Bearer ${apiKey}`,6 'Content-Type': 'application/json',7 },8 }9)Sometimes though I noticed that active_entitlements.items would be empty, even though the user did indeed have an active subscription.
So I figured I’d try using the v1 endpoint instead
1responseV1 = await fetch(`${apiUrlV1}/subscribers/${userId}`, {2 headers: {3 Authorization: `Bearer ${apiKeyV1}`,4 'Content-Type': 'application/json',5 },6})And there it is! In this response the entitlement is included.
v2 response, no active entitlements:
1{2 "active_entitlements": {3 "items": [],4 "next_page": null,5 "object": "list",6 "url": "https://api.revenuecat.com/v2/projects/proj6e8ba871/customers/823211fd-6c1f-4d10-8b1f-de9718832140/active_entitlements"7 },8 "experiment": null,9 "first_seen_at": 1741892521463,10 "id": "823211fd-6c1f-4d10-8b1f-de9718832140",11 "last_seen_at": 1742116954863,12 "object": "customer",13 "project_id": "proj6e8ba871"14}
v1 response, one entitlement (that’s active):
1{2 "request_date": "2025-03-16T14:36:56Z",3 "request_date_ms": 1742135816204,4 "subscriber": {5 "entitlements": {6 "Pro": {7 "expires_date": "2025-03-16T14:41:47Z",8 "grace_period_expires_date": null,9 "product_identifier": "androidtestcom.groddapp.ias.pro.v1",10 "product_plan_identifier": "androidtestcom-groddapp-ias-monthly-pro-v1",11 "purchase_date": "2025-03-16T14:36:47Z"12 }13 },14 "first_seen": "2025-03-13T19:02:01Z",15 "last_seen": "2025-03-16T09:22:34Z",16 "management_url": "https://play.google.com/store/account/subscriptions",17 "non_subscriptions": {},18 "original_app_user_id": "823211fd-6c1f-4d10-8b1f-de9718832140"19 // etc20}
So, my question is:
Why is the entitlement included in the v1 response, but not in the v2 response?

