read:experience and write:experience scopes are for fan experiences.
Scope table
Scopes by account type
Every Fanvue account can act as a fan, and the creator, agency and agency admin roles add to that. “Agency” in the scope table means any agency team member, whose creator-context scopes work against the creators assigned to them. “Agency admin” is the stricter tier that also unlocks the agency-management scopes.
Consent drops the scopes the consenting account cannot use and grants the rest. For example, a fan account that authorises an app requesting every scope receives only
read:self and the chat, media and experience scopes. The token’s scope field shows what was granted, so read it rather than assuming the request succeeded in full.
When none of the requested API scopes is usable by the account, consent is rejected with access_denied and the description Application is not compatible with your account type. A request for the identity scopes alone passes.
System scopes
openid, offline_access and offline are system scopes. They are always allowed, are not listed on the Authentication tab and are added to every grant.
On an off-platform or API-only app, request them in your authorisation URL, because offline_access is what returns a refresh token. An on-platform app doesn’t request them: on the embedded authorise-on-behalf path the platform adds openid and offline_access itself.
Scopes and webhook events
Creating or listing a webhook subscription needsread:self. Each event you subscribe to also needs its own scope on the token, or the subscription request fails.
The event catalogue lists every event with its payload.
Setting scopes
Select your scopes on your app’s Authentication tab in the Developer Area. They apply when you save. To keep them in your repository instead, set theoauth.scopes key in your App Manifest. They apply on the next manifest check, and while the key is present the Authentication tab marks your own selection as not in use and shows the manifest value.
app-manifest.json
invalid_scope.
Adding a scope makes every existing user authorise your app again. On a listed app, a scope addition is held until the submission that requested it is approved; the Authentication tab shows it as Pending review until then. See When changes take effect before you add one.
Insufficient scope errors
A request whose access token lacks a required scope returns403 with this body:
403. Add the scope on the Authentication tab or in oauth.scopes, request it in your authorisation URL, then have the user reconnect. Error responses lists the API’s other error bodies.