Skip to main content

List projects

GET /api/projects

List the account's editor draft projects. The full project JSON is not included — fetch a project by ID for that.

Authentication​

  • Option 1: x-api-key: YOUR_API_KEY (header). API key for authentication. Create one in your dashboard.
  • Option 2: Authorization: Bearer YOUR_ACCESS_TOKEN. Dashboard JWT in Authorization: Bearer <token>, only on operations that explicitly list this scheme. Prefer x-api-key for REST integrations. OAuth for hosted MCP is a separate connection at https://mcp.zvid.io/mcp.

Create API keys at app.zvid.io/api-keys. Keep credentials on your server.

Parameters​

ParameterLocationTypeRequiredDescription and constraints
pagequeryintegerNoDefault: 1. Minimum: 1.
limitqueryintegerNoDefault: 20. Minimum: 1. Maximum: 100.

Request​

The shell examples read credentials from ZVID_API_KEY (or ZVID_ACCESS_TOKEN for Bearer authentication). Set that variable in your environment. Replace sample project, template, job, and asset identifiers with values from your own account.

This operation does not take a request body.

Request example​

curl --request GET 'https://api.zvid.io/api/projects' \
--header "x-api-key: $ZVID_API_KEY"

Responses​

HTTP 200​

Projects for the authenticated account

Content type: application/json.

Required properties: projects, pagination.

FieldTypeRequiredDescription and constraints
response.projectsarray of ProjectSummaryYes
response.paginationPaginationYes

Nested field: response.projects

Array item: response.projects[]

Schema: ProjectSummary.

Example response

{
"projects": [
{
"id": "prj_PkHw73Ul4qBgr3HJRx9t",
"userId": 5,
"name": "promo-draft",
"type": "video",
"version": 2,
"createdAt": "2026-07-04T13:56:27.000Z",
"updatedAt": "2026-07-04T14:23:33.000Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"totalPages": 1
}
}

HTTP 401​

Unauthorized

Content type: application/json.

Unknown properties are rejected. Required properties: error.

FieldTypeRequiredDescription and constraints
response.errorstringYesError type
response.messagestringNoHuman-readable error message

Schema definitions​

The following definitions describe the fields referenced above. Expand a definition to inspect its complete contract.

ProjectList

Required properties: projects, pagination.

FieldTypeRequiredDescription and constraints
ProjectList.projectsarray of ProjectSummaryYes
ProjectList.paginationPaginationYes

Nested field: ProjectList.projects

Array item: ProjectList.projects[]

Schema: ProjectSummary.

ProjectSummary

One project as returned by the project list endpoint (no project JSON — fetch the project by ID for that).

Required properties: id, name, type, version.

FieldTypeRequiredDescription and constraints
ProjectSummary.idstringYes
ProjectSummary.userIdintegerNo
ProjectSummary.namestringYes
ProjectSummary.type"video" / "image"Yes
ProjectSummary.versionintegerYes
ProjectSummary.createdAtstringNoFormat: date-time.
ProjectSummary.updatedAtstringNoFormat: date-time.
Pagination

Standard pagination envelope for list endpoints.

Required properties: page, limit, total, totalPages.

FieldTypeRequiredDescription and constraints
Pagination.pageintegerYes
Pagination.limitintegerYes
Pagination.totalintegerYes
Pagination.totalPagesintegerYes
Pagination.hasNextbooleanNoWhether there are more pages after the current one
Pagination.hasPrevbooleanNoWhether there are pages before the current one
AuthenticationError

Unknown properties are rejected. Required properties: error.

FieldTypeRequiredDescription and constraints
AuthenticationError.errorstringYesError type
AuthenticationError.messagestringNoHuman-readable error message