> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.videogen.io/changelog/2026/5/27/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server. ## v1.0.1 — Cursor pagination on every list endpoint All collection-returning endpoints now use a uniform cursor-based pagination contract. Responses still include the original array field (no rename), so v1 SDKs and existing callers keep working unchanged. Pagination is additive: two new fields (`hasMore`, `nextCursor`) and two new query params (`limit`, `cursor`) per endpoint. - `GET /v1/projects`: now returns `{ projects, hasMore, nextCursor }`. Accepts `cursor` alongside the existing `limit` (1-200, default 50) and `selfOnly`. Previously capped silently at 200; full history is now reachable by paging. - `GET /v1/files`: now returns `{ files, hasMore, nextCursor }` and accepts `limit` (1-200, default 50) and `cursor`. Previously capped silently at 500. - `GET /v1/resources/avatar-presenters` and `GET /v1/resources/tts-voices`: now return `hasMore` / `nextCursor` and accept `limit` / `cursor`. - `GET /v1/webhooks/endpoints`: now returns `hasMore` / `nextCursor` and accepts `limit` / `cursor`. Cursors are opaque strings. Pass `nextCursor` from one response back as the `cursor` query param on the next request, unmodified. A cursor is only valid for the endpoint that produced it; using one with a different endpoint returns a 400. Ordering is most-recently-updated first for `/v1/projects` and `/v1/files`. > HTTP API with TypeScript and Python SDKs for generating image, video, and audio assets with VideoGen.