List Projects
GET /v1/projects
List all project folders in your workspace with pagination, search, and sort.
Projects restricted to specific people are omitted for OAuth tokens whose user isn't among them. API keys authenticate as the workspace and see every project.
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page | integer | No | 1 | Page number (minimum 1) |
limit | integer | No | 50 | Results per page (1–100) |
search | string | No | — | Case-insensitive name match |
sortBy | string | No | updatedAt | One of updatedAt, createdAt, name |
sortOrder | string | No | desc | asc or desc |
Example
curl "https://api.vidocu.ai/v1/projects?limit=20&sortBy=name&sortOrder=asc" \
-H "Authorization: Bearer vdo_live_your_key_here"
Response 200 OK
{
"projects": [
{
"id": "0f7c1d8a-2c4b-4a9c-9f2a-1b8a3a5e0c11",
"name": "Q1 Product Launch",
"description": "All onboarding and demo videos for the Q1 launch",
"thumbnailUrl": null,
"access": { "mode": "workspace", "memberIds": [] },
"createdAt": "2026-04-27T10:00:00.000Z",
"updatedAt": "2026-04-27T10:00:00.000Z"
}
],
"pagination": {
"total": 3,
"page": 1,
"limit": 20,
"totalPages": 1
}
}
To list videos inside a project, use GET /v1/videos?projectId={id}. To list uncategorized videos, use GET /v1/videos?uncategorized=true.
Required scope
OAuth tokens need the projects:read scope.
Errors
| Status | Code | Cause |
|---|---|---|
| 400 | validation_error | Invalid query parameter values |
| 401 | authentication_error | Invalid or missing API key |
| 403 | insufficient_scope | OAuth token missing projects:read |
Cursor pagination
Like videos and jobs, the response
includes pagination.nextCursor. Pass it back as cursor to resume exactly after the last row,
rather than by offset - which drifts if a project is created while you're paging.