API Reference
Getting started with the CoreViz Studio API
Getting Started
The CoreViz Studio API gives you programmatic access to your visual library — listing, searching, uploading, and managing media, folders, and tags. All API requests require authentication.
Authentication
All Studio API endpoints accept two authentication methods:
API Key (server-to-server)
Include your API key in the x-api-key header:
curl -H "x-api-key: YOUR_API_KEY" \
https://lab.coreviz.io/api/dataset/COLLECTION_ID/mediaBearer Token (user sessions)
Authenticate with a user session token (obtained via coreviz login or the device auth flow):
curl -H "Authorization: Bearer YOUR_SESSION_TOKEN" \
https://lab.coreviz.io/api/dataset/COLLECTION_ID/mediaGetting Your API Key
- Navigate to lab.coreviz.io
- Go to Your Account → API Keys
- Generate or copy an existing key
Base URL
https://lab.coreviz.io/apiData Structure
CoreViz organizes content in a simple hierarchy:
Organization
└── Collection (dataset)
├── Folder ─────── stored as type=folder in the media table
│ ├── Media (image / video)
│ └── Media
└── MediaCollections
Top-level containers for your media, scoped to an organization. Also referred to internally as dataset. IDs are UUIDs with hyphens stripped (e.g. abc123def456...).
Media
Individual image or video files. Each media item has:
- File metadata (name, size, dimensions)
- A
pathcolumn using the PostgreSQLltreeextension for folder hierarchy - A
metadataJSONB field containing tags and other attributes - Associated frames with AI-generated captions and detected objects
Folders
Folders are type=folder entries in the media table. They appear in browse results alongside regular media items.
Frames
Processed versions of media items. Images have 1 frame; videos have multiple. Frames contain:
- AI-generated captions
- Detected objects with bounding boxes and embeddings
Available Endpoints
Collections
| Method | Endpoint | Description |
|---|---|---|
GET | /api/organization/{orgId}/datasets | List collections |
POST | /api/organization/{orgId}/datasets | Create collection |
Media
| Method | Endpoint | Description |
|---|---|---|
GET | /api/dataset/{id}/media | Browse or search media |
GET | /api/media/{id} | Get a single media item |
PATCH | /api/media/{id} | Rename or update metadata |
DELETE | /api/media/{id} | Delete media (soft delete) |
PATCH | /api/media/{id}/move | Move item to a folder |
POST | /api/media/{id}/tags | Add a tag |
DELETE | /api/media/{id}/tags | Remove a tag |
Folders & Tags
| Method | Endpoint | Description |
|---|---|---|
POST | /api/folder | Create a folder |
GET | /api/dataset/{id}/tags | List tag groups for a collection |
Upload
| Method | Endpoint | Description |
|---|---|---|
POST | /api/upload/multipart | Upload a media file |
Next Steps
- Browse & Search Media: List and search media in a collection
- Upload Media: Upload photos and videos
- Tags: Add, remove, and list tags