curl --request GET \
--url https://api.fanvue.com/apps/{appUuid}/experience-action-definitions \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/apps/{appUuid}/experience-action-definitions"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/apps/{appUuid}/experience-action-definitions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"definitions": [
{
"externalActionId": "spin",
"title": "Spin the wheel",
"description": "One spin of the prize wheel",
"status": "active"
},
{
"externalActionId": "rematch",
"title": "Rematch",
"description": null,
"status": "active"
}
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}List the action definitions your app has declared
Returns the in-app actions your app has declared, so your creator surface can render a row per action and offer the creator Fanvue’s native pricing dialog for each one.
This is the read to build that page on. GET /experiences/{experienceUuid}/actions serves the priced per-experience catalogue, so an action the creator has not priced yet does not appear there at all — it cannot tell you what you have declared.
Owner app only: appUuid must be the app whose credentials make the call, otherwise 403. Scoped to the creator the call is made on behalf of, through their install: a caller whose user has not installed the app gets 404, never another app’s or another creator’s declarations.
No amount of any kind is served here — not the creator’s price, not a suggestion, not a currency. Price is served only by GET /experiences/{experienceUuid}/actions.
Definitions you have withdrawn are omitted. An empty definitions array means you have declared nothing; a failure to read them is a 502, never an empty list.
curl --request GET \
--url https://api.fanvue.com/apps/{appUuid}/experience-action-definitions \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/apps/{appUuid}/experience-action-definitions"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/apps/{appUuid}/experience-action-definitions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"definitions": [
{
"externalActionId": "spin",
"title": "Spin the wheel",
"description": "One spin of the prize wheel",
"status": "active"
},
{
"externalActionId": "rematch",
"title": "Rematch",
"description": null,
"status": "active"
}
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}read:experience— Exchange a fan’s experience token for the resolved experience and the fan’s identity, so an embedded fan-facing experience can render the right content.
Authorizations
OAuth 2.0 access token, presented as a JWT bearer token in the Authorization header. Obtain a token via the authorization-code flow; the scopes granted to the token determine which operations it may call.
Headers
API version to use for the request
"2025-06-26"
Path Parameters
"00000000-0000-4000-8000-000000000001"
Response
The app's active action declarations
The app's active action declarations. No amount is served here.
Show child attributes
Show child attributes
Was this page helpful?