Data
The unified asset library behind the Data tab: the paginated multi-source catalog (uploads, generated images, synced media, GBP-imported photos, user-submitted media), folders, and the asset-tag vocabulary. Distinct from locations/tags's location-grouping tags.
{
"data": {
"tags": [
{
"id": "tag_1",
"name": "VIP"
},
{
"id": "tag_2",
"name": "Seasonal"
}
]
}
}{
"data": {
"id": "tag_1",
"name": "VIP"
}
}{
"data": {
"id": "tag_1",
"name": "VIP Clients",
"count": 12
}
}{
"data": {
"assetsUntagged": 5
}
}{
"data": {
"added": [
"upload:abc123",
"gmb:xyz789"
]
}
}{}Returns a paginated, newest-first slice of the unified asset catalog — uploads, AI-generated images, synced media-library assets, GBP-imported photos, and user-submitted (UGC) media, merged into one feed.
List assets
/api/v1/assets{
"data": {
"items": [
{
"key": "upload:abc123",
"source": "upload",
"id": "abc123",
"title": "Storefront photo",
"filename": "storefront.jpg",
"mime": "image/jpeg",
"kind": "image",
"sizeBytes": 482913,
"url": "https://cdn.synup.com/media/abc123.jpg",
"thumbnailUrl": "https://cdn.synup.com/media/abc123-thumb.jpg",
"tags": [
"VIP"
],
"folderIds": [
"folder_1"
],
"locationIds": [
"loc_456"
]
}
],
"nextCursor": null,
"counts": {
"all": 1,
"upload": 1,
"gmb": 0,
"generated": 0,
"discovered": 0,
"ugc": 0
}
}
}Returns every folder in this agency, with its item count and source mix.
List folders
/api/v1/folders{
"data": {
"items": [
{
"id": "folder_1",
"name": "Storefront Photos",
"description": null,
"itemCount": 12,
"sourceMix": [
"upload",
"gmb"
],
"scope": {
"type": "client",
"id": "cli_123"
},
"sharing": {
"access": "restricted",
"url": null
},
"createdAt": "2026-01-15T10:00:00.000Z"
}
]
}
}Creates a new, empty folder. Add assets to it with POST /api/v1/folders/{id}/items.
Create a folder
/api/v1/folders{
"data": {
"folder": {
"id": "folder_1",
"name": "Storefront Photos",
"description": null,
"itemCount": 0,
"sourceMix": [],
"scope": null,
"sharing": {
"access": "restricted",
"url": null
},
"createdAt": "2026-01-15T10:00:00.000Z"
}
}
}Returns one folder's detail. Its contents are GET /api/v1/assets?folderId={id}.
Get a folder
/api/v1/folders/{id}{
"data": {
"folder": {
"id": "folder_1",
"name": "Storefront Photos",
"description": null,
"itemCount": 12,
"sourceMix": [
"upload",
"gmb"
],
"scope": {
"type": "client",
"id": "cli_123"
},
"sharing": {
"access": "restricted",
"url": null
},
"createdAt": "2026-01-15T10:00:00.000Z"
}
}
}Renames a folder or edits its description or scope.
Update a folder
/api/v1/folders/{id}{
"data": {
"folder": {
"id": "folder_1",
"name": "Storefront Photos (2026)",
"description": "Current-season storefront shots",
"itemCount": 12,
"sourceMix": [
"upload",
"gmb"
],
"scope": {
"type": "client",
"id": "cli_123"
},
"sharing": {
"access": "restricted",
"url": null
},
"createdAt": "2026-01-15T10:00:00.000Z"
}
}
}Deletes the folder. Its assets are untouched — they only lose their folder membership. itemsRemoved and shareLinksRevoked in the response report how many things quietly went with it.
Delete a folder
/api/v1/folders/{id}{
"data": {
"itemsRemoved": 12,
"shareLinksRevoked": 1
}
}{
"data": {
"url": "https://synup.com/s/aB3dE9fGhJ",
"access": "link"
}
}{
"data": {
"access": "restricted"
}
}Adds each given asset key to the folder. Already-present keys are ignored.
Add assets to a folder
/api/v1/folders/{id}/items{
"data": {
"id": "folder_1",
"itemCount": 13
}
}Removes one asset's membership in the folder. A no-op success if it wasn't a member.
Remove an asset from a folder
/api/v1/folders/{id}/items{
"data": {
"id": "folder_1",
"itemCount": 12
}
}