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

# List Projects

> Returns all projects belonging to the authenticated account, ordered by creation date descending.

### Headers

<ParamField header="Authorization" type="string" required>
  `Bearer YOUR_API_KEY`
</ParamField>

### Query Parameters

<ParamField query="status" type="string">
  Filter by project status. Uses your workspace's custom statuses if configured, or defaults like `In Progress`, `Awaiting Approval`, `Complete`.
</ParamField>

<ParamField query="client_id" type="string">
  Filter projects by client UUID.
</ParamField>

<ParamField query="limit" type="number" default="50">
  Maximum number of records to return (max 100).
</ParamField>

<ParamField query="offset" type="number" default="0">
  Number of records to skip.
</ParamField>

### Response

<ResponseField name="data" type="array">
  List of project objects.

  <Expandable title="Project object">
    <ResponseField name="id" type="string">Project UUID</ResponseField>
    <ResponseField name="name" type="string">Project name</ResponseField>
    <ResponseField name="status" type="string">Project status</ResponseField>
    <ResponseField name="client" type="object">Embedded client (`id`, `name`, `email`, `company_name`)</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp</ResponseField>
    <ResponseField name="description" type="string">Project brief or description (nullable)</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="Pagination metadata">
    <ResponseField name="total" type="number">Total records matching the filters</ResponseField>
    <ResponseField name="limit" type="number">Records per page</ResponseField>
    <ResponseField name="offset" type="number">Number of skipped records</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://kliio.app/api/v1/projects?status=active" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```js JavaScript theme={null}
  const res = await fetch('https://kliio.app/api/v1/projects?status=active', {
    headers: { Authorization: 'Bearer YOUR_API_KEY' }
  })
  const { data } = await res.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "proj-uuid-...",
        "name": "Acme Rebrand",
        "status": "active",
        "client": {
          "id": "c1d2e3f4-...",
          "name": "Alice Johnson",
          "email": "alice@example.com",
          "company_name": "Acme Corp"
        },
        "created_at": "2025-02-10T08:00:00.000Z"
      }
    ],
    "pagination": {
      "total": 1,
      "limit": 50,
      "offset": 0
    }
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Unauthorized: Invalid or revoked API key"
  }
  ```
</ResponseExample>
