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

# List Assets

> Retrieve a paginated list of assets with optional filtering

Retrieve a paginated list of assets in a project. Supports filtering by type, status, tags, and date ranges.

## Path Parameters

<ParamField path="organizationId" type="string" required>
  The unique identifier of the organization
</ParamField>

<ParamField path="projectId" type="string" required>
  The unique identifier of the project
</ParamField>

## Query Parameters

<ParamField query="page" type="number" default="1">
  Page number for pagination
</ParamField>

<ParamField query="limit" type="number" default="20">
  Number of items per page (max: 100)
</ParamField>

<ParamField query="type" type="string">
  Filter by MIME type (e.g., `image/jpeg`, `video/mp4`)
</ParamField>

<ParamField query="tags" type="string">
  Filter by tags (comma-separated list of tag IDs)
</ParamField>

<ParamField query="status" type="string">
  Filter by status: `active` or `deleted`
</ParamField>

<ParamField query="search" type="string">
  Search term for name and description
</ParamField>

<ParamField query="sort" type="string" default="updatedAt:desc">
  Sort field and direction (e.g., `name:asc`, `createdAt:desc`)
</ParamField>

<ParamField query="from" type="string">
  Created date range start (ISO 8601 format)
</ParamField>

<ParamField query="to" type="string">
  Created date range end (ISO 8601 format)
</ParamField>

## Response

<ResponseField name="data" type="Asset[]">
  Array of asset objects
</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="pagination properties">
    <ResponseField name="page" type="number">
      Current page number
    </ResponseField>

    <ResponseField name="limit" type="number">
      Items per page
    </ResponseField>

    <ResponseField name="lastKey" type="string">
      Cursor for next page (use in subsequent request)
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/assets?type=image/jpeg&status=active&limit=20" \
    -H "Authorization: Bearer YOUR_JWT"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/assets?type=image/jpeg&status=active',
    {
      headers: {
        'Authorization': 'Bearer YOUR_JWT'
      }
    }
  );
  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "asset123",
        "name": "hero-image.jpg",
        "description": "Hero banner image for homepage",
        "type": "image/jpeg",
        "status": "active",
        "url": "https://cdn.metabind.ai/org123/proj456/assets/asset123/hero-image.jpg",
        "size": 2048576,
        "metadata": {
          "width": 1920,
          "height": 1080,
          "format": "jpeg"
        },
        "tags": ["hero", "homepage"],
        "createdAt": "2024-03-20T10:00:00Z",
        "updatedAt": "2024-03-20T10:00:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 20,
      "lastKey": "eyJpZCI6ImFzc2V0MTIzIn0="
    }
  }
  ```
</ResponseExample>
