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

# List Assets

> Retrieve a paginated list of all assets in your store.

## Query parameters

<ParamField query="q" type="string">
  Search by asset name or filename. Performs a partial, case-insensitive match.
</ParamField>

<ParamField query="type" type="string">
  Filter by asset type. Accepts: `external`, `licence`.
</ParamField>

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

<ParamField query="per_page" type="integer" default="25">
  Number of assets per page. Minimum: 1, maximum: 250.
</ParamField>

## Response

<ResponseField name="assets" type="array" required>
  List of asset objects.

  <Expandable title="Asset properties">
    <ResponseField name="id" type="string" required>
      Unique asset identifier (UUID).
    </ResponseField>

    <ResponseField name="type" type="string" required>
      The asset type: `internal`, `external`, or `licence`.
    </ResponseField>

    <ResponseField name="name" type="string | null">
      Display name of the asset.
    </ResponseField>

    <ResponseField name="filename" type="string | null">
      Filename derived from the uploaded file or URL.
    </ResponseField>

    <ResponseField name="external_url" type="string | null">
      The external URL for `external` type assets. `null` for other types.
    </ResponseField>

    <ResponseField name="content_type" type="string | null">
      MIME type of the asset.
    </ResponseField>

    <ResponseField name="byte_size" type="integer" required>
      File size in bytes. `0` for external and licence assets.
    </ResponseField>

    <ResponseField name="watermark_asset" type="boolean" required>
      Whether watermarking is enabled for this asset.
    </ResponseField>

    <ResponseField name="autogenerate_licence_key" type="boolean" required>
      Whether a licence key is auto-generated on purchase.
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      ISO 8601 timestamp of when the asset was created.
    </ResponseField>

    <ResponseField name="updated_at" type="string" required>
      ISO 8601 timestamp of when the asset was last updated.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object" required>
  Pagination metadata.

  <Expandable title="Pagination properties">
    <ResponseField name="current_page" type="integer" required>
      Current page number.
    </ResponseField>

    <ResponseField name="per_page" type="integer" required>
      Number of items per page.
    </ResponseField>

    <ResponseField name="total_count" type="integer" required>
      Total number of assets matching the filters.
    </ResponseField>

    <ResponseField name="total_pages" type="integer" required>
      Total number of pages.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET 'https://app.filemonk.io/api/v1/external/assets?type=external&per_page=10' \
    -H 'X-Auth-Token: fm_api_key_your_key_here'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    'https://app.filemonk.io/api/v1/external/assets?type=external&per_page=10',
    { headers: { 'X-Auth-Token': 'fm_api_key_your_key_here' } }
  );
  const data = await response.json();
  ```

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

  response = requests.get(
      'https://app.filemonk.io/api/v1/external/assets',
      headers={'X-Auth-Token': 'fm_api_key_your_key_here'},
      params={'type': 'external', 'per_page': 10}
  )
  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "assets": [
      {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "type": "external",
        "name": "Photoshop Brushes Pack",
        "filename": "brushes-pack-v2.zip",
        "external_url": "https://cdn.example.com/files/brushes-pack-v2.zip",
        "content_type": "application/zip",
        "byte_size": 0,
        "watermark_asset": false,
        "autogenerate_licence_key": false,
        "created_at": "2026-03-01T14:30:00Z",
        "updated_at": "2026-03-01T14:30:00Z"
      },
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "type": "licence",
        "name": "Licence Key (Autogenerated)",
        "filename": "Licence Key",
        "external_url": null,
        "content_type": "licence/key",
        "byte_size": 0,
        "watermark_asset": false,
        "autogenerate_licence_key": true,
        "created_at": "2026-03-02T09:00:00Z",
        "updated_at": "2026-03-02T09:00:00Z"
      }
    ],
    "pagination": {
      "current_page": 1,
      "per_page": 10,
      "total_count": 24,
      "total_pages": 3
    }
  }
  ```

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