Activities API
Base URL: https://YOUR-SERVER/api. Send your API key in x-api-key where authentication is required. A key also needs the listed permission; your account's access rules still apply.
API guide · All endpoints · OpenAPI JSON
GET /activities— List all activitiesPOST /activities— Create an activityGET /activities/statistics— Retrieve activity statisticsDELETE /activities/{id}— Delete an activity
List all activities
GET /api/activities
Returns a list of activities for the selected asset or album. The activities are returned in sorted order, with the oldest activities appearing first.
Authentication: API key. Permission: activity.read.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
albumId | query | Yes | Album ID |
assetId | query | No | Asset ID (if activity is for an asset) |
level | query | No | |
type | query | No | |
userId | query | No | Filter by user ID |
Parameter types, defaults and constraints
Field definitions: ReactionLevel, ReactionType
[
{
"name": "albumId",
"required": true,
"in": "query",
"description": "Album ID",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
{
"name": "assetId",
"required": false,
"in": "query",
"description": "Asset ID (if activity is for an asset)",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
{
"name": "level",
"required": false,
"in": "query",
"schema": {
"$ref": "#/components/schemas/ReactionLevel"
}
},
{
"name": "type",
"required": false,
"in": "query",
"schema": {
"$ref": "#/components/schemas/ReactionType"
}
},
{
"name": "userId",
"required": false,
"in": "query",
"description": "Filter by user ID",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
}
]Responses
Field definitions: ActivityResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/ActivityResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Create an activity
POST /api/activities
Create a like or a comment for an album, or an asset in an album.
Authentication: API key. Permission: activity.create.
Request body
Required.
Field definitions: ActivityCreateDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActivityCreateDto"
}
}
}Responses
Field definitions: ActivityResponseDto
{
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActivityResponseDto"
}
}
},
"description": ""
}
}Retrieve activity statistics
GET /api/activities/statistics
Returns the number of likes and comments for a given album or asset in an album.
Authentication: API key. Permission: activity.statistics.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
albumId | query | Yes | Album ID |
assetId | query | No | Asset ID (if activity is for an asset) |
Parameter types, defaults and constraints
[
{
"name": "albumId",
"required": true,
"in": "query",
"description": "Album ID",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
{
"name": "assetId",
"required": false,
"in": "query",
"description": "Asset ID (if activity is for an asset)",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
}
]Responses
Field definitions: ActivityStatisticsResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActivityStatisticsResponseDto"
}
}
},
"description": ""
}
}Delete an activity
DELETE /api/activities/{id}
Removes a like or comment from a given album or asset in an album.
Authentication: API key. Permission: activity.delete.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
id | path | Yes | string |
Parameter types, defaults and constraints
[
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
}
]Responses
{
"204": {
"description": ""
}
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.