Projects
Projects let you organize videos into logical groups. Each video can belong to one project at a time.
GET /projects
Section titled “GET /projects”List all projects for the authenticated user.
Auth: Required
Response: ProjectResponse[]
[ { "id": "1", "user_id": "550e8400-...", "name": "Q1 Campaign", "description": "Marketing videos for Q1 2025", "video_count": 12, "created_at": "2025-01-10T08:00:00", "updated_at": "2025-01-15T10:00:00" }]curl https://api.lynxvizion.com/api/projects \ -H "Authorization: $LVZ_KEY"POST /projects
Section titled “POST /projects”Create a new project.
Auth: Required
| Body Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Project name |
description | string | No | Project description |
Response: ProjectResponse (201 Created)
curl -X POST https://api.lynxvizion.com/api/projects \ -H "Authorization: $LVZ_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "Q2 Campaign", "description": "Marketing videos for Q2"}'GET /projects/{project_id}
Section titled “GET /projects/{project_id}”Get a single project.
Auth: Required
| Path Param | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
Response: ProjectResponse
curl https://api.lynxvizion.com/api/projects/1 \ -H "Authorization: $LVZ_KEY"PATCH /projects/{project_id}
Section titled “PATCH /projects/{project_id}”Update project metadata.
Auth: Required
| Path Param | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
| Body Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New project name |
description | string | No | New description |
Response: Updated ProjectResponse
curl -X PATCH https://api.lynxvizion.com/api/projects/1 \ -H "Authorization: $LVZ_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "Q2 Campaign (Updated)"}'DELETE /projects/{project_id}
Section titled “DELETE /projects/{project_id}”Delete a project. Videos in the project are unassigned (set to project_id = null), not deleted.
Auth: Required
| Path Param | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
Response:
{ "ok": true }curl -X DELETE https://api.lynxvizion.com/api/projects/1 \ -H "Authorization: $LVZ_KEY"GET /projects/{project_id}/videos
Section titled “GET /projects/{project_id}/videos”List all videos assigned to a project.
Auth: Required
| Path Param | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
Response: VideoResponse[]
curl https://api.lynxvizion.com/api/projects/1/videos \ -H "Authorization: $LVZ_KEY"POST /projects/{project_id}/assign
Section titled “POST /projects/{project_id}/assign”Assign multiple videos to a project.
Auth: Required
| Path Param | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
| Body Field | Type | Required | Description |
|---|---|---|---|
job_ids | string[] | Yes | List of video job IDs to assign |
Response:
{ "ok": true, "assigned": 3}curl -X POST https://api.lynxvizion.com/api/projects/1/assign \ -H "Authorization: $LVZ_KEY" \ -H "Content-Type: application/json" \ -d '{"job_ids": ["a1b2c3d4-...", "e5f6a7b8-...", "c9d0e1f2-..."]}'