---
title: "List recent generations"
method: GET
path: "/v1/videos"
tags: ["generation"]
---

# List recent generations

`GET /v1/videos`

## Request

- Base URL: `https://aicontentdrop.com`
- URL: `https://aicontentdrop.com/v1/videos`
- Auth: HTTP bearer

Recent video generations for the account, newest first. Page by following `next_cursor` until it is null.

## Query parameters

- `limit` integer
- `cursor` string
- `offset` integer

## Response `200`

Video list

- object
  - `count` integer, required
  - `videos` Video[], required
    - `id` string, required
    - `status` string, required: generating | completed | failed | timeout
    - `title` string, nullable
    - `model` string, nullable
    - `prompt` string, nullable
    - `duration` number, nullable
    - `aspect_ratio` string, nullable
    - `credits_used` number
    - `video_url` string, uri, nullable: Populated when status is completed
    - `thumbnail_url` string, uri, nullable
    - `error_message` string, nullable: Populated when status is failed
    - `created_at` string, date-time, nullable
  - `has_more` boolean: Whether another page exists
  - `next_cursor` string, nullable: Pass as `cursor` to fetch the next page; null at the end
  - `next_url` string, uri, nullable: Ready-made URL for the next page

## Other responses

- `401`: Missing, malformed, revoked, or budget-exhausted API key
- `429`: Rate limited. Read Retry-After (header) or error.retry_after_seconds (body) — they carry the same number — and wait that long. Retrying sooner extends the window rather than shortening it.
- `500`: Unexpected failure on our side. Retry once; nothing was charged.

---

[API](https://skmtc.dev/aicontentdrop/apis/ai-content-drop-api.md) · [All operations](https://skmtc.dev/aicontentdrop/apis/ai-content-drop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aicontentdrop/apis/ai-content-drop-api/revisions/75a13a8043ae?raw)
