List the experiences your app has published for this creator
curl --request GET \
--url https://api.fanvue.com/v1/experiences \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/experiences"
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/v1/experiences', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"uuid": "00000000-0000-4000-8000-000000000010",
"appUuid": "00000000-0000-4000-8000-000000000001",
"creatorUuid": "00000000-0000-4000-8000-000000000002",
"externalExperienceId": "course-photography-101",
"title": "Photography 101",
"description": "Six lessons, shot on film.",
"imageUrl": "https://cdn.fanvue.com/app-experiences/00000000-0000-4000-8000-000000000002/3f2a9c1d8e7b6a50.webp",
"accessMode": "PAID",
"experienceType": "VIDEO",
"deliveryMode": "EMBEDDED",
"externalUrl": null,
"hidden": false,
"priceCents": 1500,
"priceRecurring": false,
"publishedAt": "2026-10-07T10:00:00.000Z",
"suspendedAt": null,
"reviewStatus": "approved",
"reviewRejection": null,
"pendingReviewSubmittedAt": null,
"isNsfw": false,
"url": "https://www.fanvue.com/ava/experiences/photography-101"
},
{
"uuid": "00000000-0000-4000-8000-000000000011",
"appUuid": "00000000-0000-4000-8000-000000000001",
"creatorUuid": "00000000-0000-4000-8000-000000000002",
"externalExperienceId": "live-qa-october",
"title": "October Q&A",
"description": "Ask me anything, live.",
"imageUrl": null,
"accessMode": "SUBSCRIPTION",
"experienceType": "LIVE_STREAM",
"deliveryMode": "EMBEDDED",
"externalUrl": null,
"hidden": false,
"priceCents": null,
"priceRecurring": false,
"publishedAt": null,
"suspendedAt": null,
"reviewStatus": "pending_review",
"reviewRejection": null,
"pendingReviewSubmittedAt": null,
"isNsfw": true,
"url": "https://www.fanvue.com/ava/experiences/october-q-a"
}
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Experiences
List the experiences your app has published for this creator
Lists every experience your app holds for the creator whose token is calling — published or not, hidden or not — so you can recover a uuid you never stored or reconcile your own copy.
Scoped to your app and this creator: no other app’s experiences, and no other creator’s, are ever listed. appUuid must be your own app.
GET
/
v1
/
experiences
List the experiences your app has published for this creator
curl --request GET \
--url https://api.fanvue.com/v1/experiences \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/experiences"
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/v1/experiences', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"uuid": "00000000-0000-4000-8000-000000000010",
"appUuid": "00000000-0000-4000-8000-000000000001",
"creatorUuid": "00000000-0000-4000-8000-000000000002",
"externalExperienceId": "course-photography-101",
"title": "Photography 101",
"description": "Six lessons, shot on film.",
"imageUrl": "https://cdn.fanvue.com/app-experiences/00000000-0000-4000-8000-000000000002/3f2a9c1d8e7b6a50.webp",
"accessMode": "PAID",
"experienceType": "VIDEO",
"deliveryMode": "EMBEDDED",
"externalUrl": null,
"hidden": false,
"priceCents": 1500,
"priceRecurring": false,
"publishedAt": "2026-10-07T10:00:00.000Z",
"suspendedAt": null,
"reviewStatus": "approved",
"reviewRejection": null,
"pendingReviewSubmittedAt": null,
"isNsfw": false,
"url": "https://www.fanvue.com/ava/experiences/photography-101"
},
{
"uuid": "00000000-0000-4000-8000-000000000011",
"appUuid": "00000000-0000-4000-8000-000000000001",
"creatorUuid": "00000000-0000-4000-8000-000000000002",
"externalExperienceId": "live-qa-october",
"title": "October Q&A",
"description": "Ask me anything, live.",
"imageUrl": null,
"accessMode": "SUBSCRIPTION",
"experienceType": "LIVE_STREAM",
"deliveryMode": "EMBEDDED",
"externalUrl": null,
"hidden": false,
"priceCents": null,
"priceRecurring": false,
"publishedAt": null,
"suspendedAt": null,
"reviewStatus": "pending_review",
"reviewRejection": null,
"pendingReviewSubmittedAt": null,
"isNsfw": true,
"url": "https://www.fanvue.com/ava/experiences/october-q-a"
}
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Required scope
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
Example:
"2025-06-26"
Query Parameters
Your app's UUID.
Example:
"00000000-0000-4000-8000-000000000001"
Response
The experiences, most recently created first
Show child attributes
Show child attributes
Was this page helpful?