> ## Documentation Index
> Fetch the complete documentation index at: https://docs.babou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Projects

> Retrieve a paginated list of all your video projects

## Overview

Get a list of all video projects for the authenticated user. Supports pagination.

## Request

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token with your API key
</ParamField>

### Query Parameters

<ParamField query="limit" type="number" default="20">
  Number of projects to return (max: 100)
</ParamField>

<ParamField query="offset" type="number" default="0">
  Number of projects to skip for pagination
</ParamField>

## Response

<ResponseField name="projects" type="array">
  Array of project objects
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination metadata with `limit`, `offset`, and `total`
</ResponseField>

## Examples

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.babou.ai/api/v1/projects \
    -H "Authorization: Bearer $BABOU_API_KEY"

  # With pagination
  curl "https://api.babou.ai/api/v1/projects?limit=50&offset=100" \
    -H "Authorization: Bearer $BABOU_API_KEY"
  ```

  ```typescript TypeScript theme={null}
  async function listProjects(limit = 20, offset = 0) {
    const params = new URLSearchParams({
      limit: limit.toString(),
      offset: offset.toString()
    });

    const response = await fetch(
      `https://api.babou.ai/api/v1/projects?${params}`,
      {
        headers: {
          'Authorization': `Bearer ${process.env.BABOU_API_KEY}`
        }
      }
    );

    return await response.json();
  }

  const result = await listProjects();
  console.log(`Found ${result.pagination.total} projects`);
  result.projects.forEach(p => console.log(`- ${p.name}`));
  ```

  ```python Python theme={null}
  import os
  import requests

  def list_projects(limit=20, offset=0):
      response = requests.get(
          'https://api.babou.ai/api/v1/projects',
          headers={'Authorization': f'Bearer {os.environ["BABOU_API_KEY"]}'},
          params={'limit': limit, 'offset': offset}
      )
      return response.json()

  result = list_projects()
  print(f'Found {result["pagination"]["total"]} projects')
  for project in result['projects']:
      print(f'- {project["name"]}')
  ```
</CodeGroup>

## Response Example

```json theme={null}
{
  "projects": [
    {
      "id": "prj_abc123xyz",
      "name": "Product Launch Video",
      "description": "Marketing video for Q4 2025",
      "settings": null,
      "active_export_id": "exp_xyz789abc",
      "created_at": "2025-12-02T10:00:00Z"
    },
    {
      "id": "prj_def456uvw",
      "name": "Tutorial Series",
      "description": "Educational content",
      "settings": null,
      "active_export_id": null,
      "created_at": "2025-12-01T15:30:00Z"
    }
  ],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "total": 42
  }
}
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Create Project" icon="plus" href="/api-reference/projects/create">
    Create a new project
  </Card>

  <Card title="Get Project" icon="eye" href="/api-reference/projects/get">
    Get project details
  </Card>
</CardGroup>
