How to Export Asset Metadata from Canto
Canto is a popular DAM for mid-market and enterprise teams. Here's how to extract your asset metadata into a spreadsheet for quality assessment.
Canto has a built-in metadata export feature. Select items in the library, choose export metadata, and download a CSV of their properties. For automated or large-scale exports, the Canto REST API provides full programmatic access.
Canto Library - Metadata Export
Canto allows users to select items in the library and export their metadata as a CSV or Excel file. No files are downloaded, only the metadata. This is the fastest way to get a metadata spreadsheet with no technical setup required.
Canto REST API
The Canto API provides full access to asset data including metadata fields, custom fields, tags, categories, and usage information. It supports searching, filtering, and pagination for large libraries.
import requests
import csv
CANTO_DOMAIN = "your-org.canto.com"
ACCESS_TOKEN = "your_access_token"
HEADERS = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
def search_assets(keyword="*", limit=100):
"""Search all assets with pagination."""
all_assets = []
start = 0
while True:
resp = requests.get(
f"https://{CANTO_DOMAIN}/api/v1/search",
headers=HEADERS,
params={
"keyword": keyword,
"limit": limit,
"start": start,
"scheme": "image,video,document,audio,presentation,other",
"sortBy": "time",
"sortDirection": "descending",
},
)
data = resp.json()
results = data.get("results", [])
if not results:
break
all_assets.extend(results)
start += limit
if start >= data.get("found", 0):
break
return all_assets
assets = search_assets()
with open("canto_metadata.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow([
"ID", "Name", "Description", "Scheme", "Size",
"Width", "Height", "Created", "Modified",
"Tags", "Categories", "Copyright"
])
for asset in assets:
default = asset.get("default", {})
writer.writerow([
asset.get("id", ""),
asset.get("name", ""),
default.get("Description", ""),
asset.get("scheme", ""),
asset.get("size", ""),
default.get("Image Width", ""),
default.get("Image Height", ""),
default.get("Date uploaded", ""),
default.get("Date modified", ""),
", ".join(asset.get("tag", [])) if asset.get("tag") else "",
", ".join(
cat.get("name", "") for cat in asset.get("relatedCategories", [])
) if asset.get("relatedCategories") else "",
default.get("Copyright", ""),
])
print(f"Exported {len(assets)} assets to canto_metadata.csv")Canto's admin panel includes usage reporting for downloads, views, and user activity. These reports track how assets are being used, not the metadata fields themselves. For metadata export, use Method 1 (UI export from the library) or Method 2 (API).
What metadata fields can you export?
| Field | UI Export | Canto API |
|---|---|---|
| Asset name | ✓ | ✓ |
| Description | ✓ | ✓ |
| File type / scheme | ✓ | ✓ |
| File size | ✓ | ✓ |
| Dimensions (W x H) | ✓ | ✓ |
| Upload date | ✓ | ✓ |
| Modified date | ✓ | ✓ |
| Tags | ✓ | ✓ |
| Categories | ✓ | ✓ |
| Custom fields | ✓ | ✓ |
| Copyright | ✓ | ✓ |
| Approval status | ✓ | ✓ |
| Album membership | ✕ | ✓ |
| Download count | ✕ | ✓ |
| EXIF data (photos) | ✓ | ✓ |
| Preview / thumbnail URL | ✕ | ✓ |
- Custom field names: Canto custom fields are defined by your admin. The API returns them under the
defaultobject with their configured names. Verify field names in your Canto admin settings before building export scripts. - EXIF and embedded metadata: Canto extracts EXIF, IPTC, and XMP data from uploaded files. These fields are available in the UI export and API but may use different field names than the original embedded metadata.
- Canto Classic vs. Canto (New): If your organization is still on Canto Classic (formerly Canto Cumulus), the API endpoints and export features differ significantly. This guide covers the current Canto cloud platform.
You have your metadata export.
Now score it.
Upload your CSV or Excel file to MQS and get a structural metadata health score out of 100 with dimension breakdowns and actionable diagnostics.