Skip to content

Projects

Projects let you organize videos into logical groups. Each video can belong to one project at a time.


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"
}
]
Terminal window
curl https://api.lynxvizion.com/api/projects \
-H "Authorization: $LVZ_KEY"

Create a new project.

Auth: Required

Body FieldTypeRequiredDescription
namestringYesProject name
descriptionstringNoProject description

Response: ProjectResponse (201 Created)

Terminal window
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 a single project.

Auth: Required

Path ParamTypeRequiredDescription
project_idstringYesProject ID

Response: ProjectResponse

Terminal window
curl https://api.lynxvizion.com/api/projects/1 \
-H "Authorization: $LVZ_KEY"

Update project metadata.

Auth: Required

Path ParamTypeRequiredDescription
project_idstringYesProject ID
Body FieldTypeRequiredDescription
namestringNoNew project name
descriptionstringNoNew description

Response: Updated ProjectResponse

Terminal window
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 a project. Videos in the project are unassigned (set to project_id = null), not deleted.

Auth: Required

Path ParamTypeRequiredDescription
project_idstringYesProject ID

Response:

{ "ok": true }
Terminal window
curl -X DELETE https://api.lynxvizion.com/api/projects/1 \
-H "Authorization: $LVZ_KEY"

List all videos assigned to a project.

Auth: Required

Path ParamTypeRequiredDescription
project_idstringYesProject ID

Response: VideoResponse[]

Terminal window
curl https://api.lynxvizion.com/api/projects/1/videos \
-H "Authorization: $LVZ_KEY"

Assign multiple videos to a project.

Auth: Required

Path ParamTypeRequiredDescription
project_idstringYesProject ID
Body FieldTypeRequiredDescription
job_idsstring[]YesList of video job IDs to assign

Response:

{
"ok": true,
"assigned": 3
}
Terminal window
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-..."]}'