Skip to main content

Profiles Feed (alpha)

Introduction

The profiles feed returns the list of user profiles associated with an authenticated account, formatted as an Applicaster feed. Apps use it to render a profile picker screen ("Who's watching?").

Feed Response

The feed returns a top-level object with a title and an entry array. Each entry represents one user profile.

{
"title": "Who's watching?",
"entry": [
{
"id": "abc123",
"title": "John",
"type": {
"value": "profile"
},
"media_group": [
{
"type": "image",
"media_item": [
{
"src": "https://example.com/avatars/avatar1.png",
"key": "image_base"
}
]
}
],
"extensions": {
"tap_actions": {
"actions": [
{
"type": "sessionStorageSet",
"options": {
"content": {
"user_account": {
"profile_selected": true,
"profile": "abc123"
},
"quick-brick-login-flow": {
"profile_id": "<profile-specific-token>"
}
}
}
},
{
"type": "finishHook",
"options": {
"success": true
}
}
]
},
"master": 1,
"token": "<profile-specific-token>",
"email": "john@example.com"
}
},
{
"id": "def456",
"title": "Sarah",
"type": {
"value": "profile"
},
"media_group": [
{
"type": "image",
"media_item": [
{
"src": "https://example.com/avatars/avatar2.png",
"key": "image_base"
}
]
}
],
"extensions": {
"tap_actions": {
"actions": [
{
"type": "sessionStorageSet",
"options": {
"content": {
"user_account": {
"profile_selected": true,
"profile": "def456"
},
"quick-brick-login-flow": {
"profile_id": "<profile-specific-token>"
}
}
}
},
{
"type": "finishHook",
"options": {
"success": true
}
}
]
},
"master": 0,
"token": "<profile-specific-token>"
}
}
]
}

When a user selects a profile, the actions in tap_actions.actions fire in sequence. The example above shows the common pattern, but additional action types can be included — for example sendCloudEvent to notify a server of the profile selection.

For sessionStorageSet, the content object can carry any keys needed by your app under the relevant namespaces. The quick-brick-login-flow namespace supports additional keys beyond profile_id, such as:

  • profile_token — the profile-scoped authentication token
  • kids — a boolean indicating whether this is a kids profile
  • Any other profile attributes your screens need at runtime

The final action is typically finishHook with success: true, which signals the hook to proceed and grants access to the screen.

Profile Entry Fields

FieldTypeDescription
idstringUnique profile identifier
titlestringProfile display name
type.valuestring"profile"
media_group[0].media_item[0].srcstringAvatar image URL
extensions.tap_actionsobjectActions fired when the user selects this profile
extensions.masternumber1 if this is the primary (master) profile, 0 for all other profiles. Present on every entry.
extensions.tokenstringProfile-scoped authentication token. Treat this as sensitive — store it only in session storage, not persistent storage.
extensions.emailstringAccount email — only present on the master profile

Profile Avatars

The profile avatars feed returns the list of available avatar images that users can assign to a profile.

Use the entry id as the profileImage value when creating or updating a profile.

{
"id": "profile-avatars-<app-id>",
"title": "Profile Avatars",
"type": {
"value": "profile-avatars"
},
"entry": [
{
"id": "avatar1",
"title": "avatar1",
"type": {
"value": "avatar"
},
"media_group": [
{
"type": "image",
"media_item": [
{
"src": "https://example.com/avatars/avatar1.png",
"key": "image_base"
}
]
}
],
"extensions": {}
}
]
}
FieldTypeDescription
idstringAvatar name — use this as the profileImage value when updating a profile
titlestringAvatar display name
type.valuestring"avatar"
media_group[0].media_item[0].srcstringFull avatar image URL