# List library

`GET https://api.endless.app/library`

Source: https://endless.app/docs/api/library/list

Lists the library the caller can read.

## Authentication

- `bearerAuth`: HTTP bearer (JWT)

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organization_id` | query | string | yes |  |
| `types` | query | string | no |  |
| `created_by` | query | string | no |  |
| `models` | query | string | no |  |
| `statuses` | query | string | no |  |
| `source` | query | "generated" \| "uploaded" \| "imported" | no |  |
| `project_ids` | query | string | no |  |
| `conversation_ids` | query | string | no |  |
| `canvas_ids` | query | string | no |  |
| `since` | query | string | no |  |
| `search` | query | string | no |  |
| `deleted` | query | boolean | no |  |
| `ids` | query | string | no |  |
| `limit` | query | integer | no |  |
| `cursor` | query | string | no |  |
| `Endless-Api-Version` | header | string | no | Pin the caller to an API major (`1`). Omit to accept the current version. A major this deployment cannot serve is refused with 400 `unsupported_api_version`. |

## Responses

### 200 OK

Content type: `application/json` — object

- `items` (array<object>, required)
  - `id` (string, required)
  - `created_at` (string (date-time), required)
  - `created_by_id` (string, required)
  - `status` ("ready" | "generating" | "failed", required)
  - `type` ("image" | "video" | "audio" | "document" | "text" | "transcript" | null, required)
  - `media_model_id` (string | null, required)
  - `source` ("generated" | "uploaded" | "imported" | null, required)
  - `deleted_at` (string (date-time) | null, required)
  - `asset` (object | null, required)
    - `id` (string (uuid), required)
    - `organization_id` (string, required)
    - `created_by_id` (string, required)
    - `type` ("image" | "video" | "audio" | "document" | "text" | "transcript", required)
    - `title` (string | null, required)
    - `mime_type` (string | null, required)
    - `url` (string | null, required)
    - `content` (string | null, required)
    - `upload_file_state` ("in_progress" | "success" | "error" | null, required)
    - `enrichment_state` ("ignored" | "pending" | "in_progress" | "success" | "error" | null, required)
    - `visibility` ("private" | "workspace" | "public", required)
    - `workspace_role` ("viewer" | "editor" | "owner", required)
    - `metadata` (string | number | boolean | null | object | array<any | null> | null, required)
    - `generation_id` (string (uuid) | null, required)
    - `origin_conversation_id` (string (uuid) | null, required)
    - `origin_canvas_id` (string (uuid) | null, required)
    - `mod_transcript_id` (string | null, required)
    - `mod_asset_id` (string | null, required)
    - `mod_source_id` (string | null, required)
    - `dual_media_id` (string | null, required)
    - `deleted_at` (string (date-time) | null, required)
    - `deleted_by_id` (string | null, required)
    - `created_at` (string (date-time), required)
    - `updated_at` (string (date-time), required)
    - `linked_conversation_id` (string | null)
    - `shared` (boolean)
    - `can_edit` (boolean)
    - `can_delete` (boolean)
  - `generation` (object | null, required)
    - `id` (string (uuid), required)
    - `organization_id` (string, required)
    - `created_by_id` (string, required)
    - `media_model_variant_id` (string (uuid) | null, required)
    - `media_model_id` (string (uuid) | null, required)
    - `quick_action_id` (string (uuid) | null, required)
    - `status` ("pending" | "running" | "completed" | "failed", required)
    - `parameters` (string | number | boolean | null | object | array<any | null> | null, required)
    - `quoted_per_output` (string | null, required)
    - `error` (string | null, required)
    - `error_code` (string | null, required)
    - `canvas_id` (string (uuid) | null, required)
    - `message_id` (string (uuid) | null, required)
    - `tool_call_id` (string | null, required)
    - `source_generation_id` (string (uuid) | null, required)
    - `fal_request_id` (string (uuid) | null, required)
    - `replicate_request_id` (string | null, required)
    - `replicate_prediction_id` (string | null, required)
    - `started_at` (string (date-time) | null, required)
    - `completed_at` (string (date-time) | null, required)
    - `deleted_at` (string (date-time) | null, required)
    - `deleted_by_id` (string | null, required)
    - `reconcile_attempts` (integer, required)
    - `created_at` (string (date-time), required)
    - `updated_at` (string (date-time), required)
    - `media` ("text" | "image" | "video" | "audio" | null, required)
    - `media_model_name` (string | null, required)
    - `media_model_version_id` (string | null, required)
    - `version_number` (integer | null, required)
- `next_cursor` (string | null, required)

### Errors

- `400` (Error): The request is malformed, or failed input validation. `message` names the field and the rule it broke; `data.issues` carries them individually.
- `401` (Error): No bearer token, or a token that failed verification.
- `402` (Error): The workspace has no credits left, or the caller is over a spending limit.
- `403` (Error): Authenticated, but the caller's role in this workspace does not carry the permission this operation needs.
- `409` (Error): The request is well-formed, but the resource's current state forbids it — a taken name, a last admin, a limit already reached.
- `429` (Error): The caller has spent its rate-limit window. `Retry-After` says when to come back.
- `500` (Error): The request failed on our side. Safe to retry an idempotent operation with backoff.
