App Subscriptions
Read pricing lifecycle and current-user entitlement for Fanvue App Store apps.
If you’re building a Fanvue app with App Store pricing, you can use the app subscription endpoints to read:
- the pricing lifecycle for a developer-owned app
- the authenticated user’s current subscription entitlement for that app
These are read-only endpoints designed for app dashboards, builder surfaces, and server-side feature gating.
read:self scope.Available endpoints
GET /apps/{appUuid}/subscription-statusGET /apps/{appUuid}/subscription/me
Which endpoint should I use?
Use GET /apps/{appUuid}/subscription-status when you need to understand the lifecycle of an app’s pricing plans as the app owner or developer.
Use GET /apps/{appUuid}/subscription/me when your app needs to know whether the currently authenticated user has an active, pending, cancelled, or absent subscription for that app.
Get app pricing lifecycle
GET /apps/{appUuid}/subscription-status returns a lifecycle summary for the app and includes each pricing plan’s status.
Response fields
availability: whether pricing lifecycle data is fully availableoverallStatus: one ofnotConfigured,pendingSetup,active,withdrawn,mixed, orunavailablepricingPlans[]: each plan’suuid,name,billingType,interval,price,currencyCode, andstatus
Example request
Example response
Error behavior
403: the authenticated user does not have access to this app404: the app could not be found for the authenticated user503: the environment is not configured to serve developer app subscription data
Get current user subscription for an app
GET /apps/{appUuid}/subscription/me returns the authenticated user’s entitlement for the app, plus a managedCreators array describing per-creator entitlements for any creators the user is assigned to manage (relevant only for agency team members).
The access token must belong to the same Fanvue app identified by appUuid. In practice, that means the OAuth client used to mint the token must match the app’s OAuth client.
Response fields
Top-level fields describe the authenticated OAuth user’s own subscription state:
userUuid: the OAuth user’s UUID. This may be a creator or an agency team member — do not assume it is always a creator.hasActiveSubscription: whether the current subscription is activestatus: one ofactive,pending,cancelled, ornoneplanUuid/planName: the matched pricing plan, if one existscurrentPeriodEnd: the current billing period end, if availablecancelAtPeriodEnd: whether the subscription is set to end after the current periodmanagedCreators: per-creator subscription records for creators this user is explicitly assigned to manage (agency team members only). Always present in the response —[]for non-agency users.
Each entry in managedCreators mirrors the top-level shape, scoped to a single managed creator: userUuid (the creator’s UUID), hasActiveSubscription, status, planUuid, planName, currentPeriodEnd, cancelAtPeriodEnd.
Example request
Example response — non-agency creator with an active subscription
Example response — agency team member with two managed creators
Agency team members
Agency team members (Fanvue users that belong to one or more agencies and manage a set of creators) never install third-party apps themselves — only creators do. Two things follow from that:
- Top-level fields describe the team member’s own subscription, which is always empty (
status: "none",hasActiveSubscription: false,planUuid: null, …). Render entitlement offmanagedCreators, not the top level, when you detect an agency context. - No 404 for agency users. Where a non-agency user with no subscription would receive
404, an agency team member receives200with the empty top-level shape plus theirmanagedCreatorsarray.
A team member only sees creators they are explicitly assigned to manage via the agency’s team-member-to-creator mapping — chatters see only their assigned subset; admins typically see all of the agency’s creators.
For agency team members, the read:self scope continues to gate this endpoint and now also surfaces basic subscription state for each creator the team member is assigned to manage. No additional scope is required.
Iterating over managedCreators
For agency-aware app surfaces, branch on managedCreators rather than the top-level subscription:
At most 100 managed-creator records are returned. Agencies with more than 100 assigned creators will see the list truncated; pagination will be added if real usage exceeds this.
A managed-creator lookup that fails upstream is silently dropped from the array rather than failing the whole call. Treat the absence of a creator from managedCreators as “no information” rather than “no subscription”.
Error behavior
400:appUuidis not a valid UUID401: bearer token is missing or invalid403: the OAuth token has insufficient scope, orappUuiddoes not belong to the OAuth client that issued the token404: non-agency user has no subscription record for this app. Agency team members no longer hit this — they receive200with an empty self-subscription and a populatedmanagedCreatorsarray410: API version sunset502: the upstream developer/app-integration service returned an error503: the environment is not configured to serve developer app subscription data (typically only in non-production environments)
Typical usage pattern
- Create and configure your Fanvue app in the Developer area.
- Authenticate a user with OAuth and request
read:self. - Use
subscription-statusin owner-facing or builder experiences to show pricing lifecycle. - Use
subscription/mein your server-side app logic to gate paid features for the current user. For agency-aware experiences, also iteratemanagedCreatorsto render per-creator entitlements.
For local and staged testing guidance, see Testing Your App. For App Store policy and pricing constraints, see App Store Listing Requirements.