---
title: "Search agent assets with intersecting scopes and cursor pagination"
method: POST
path: "/api/v1/files/agent-assets/search"
tags: ["asset"]
---

# Search agent assets with intersecting scopes and cursor pagination

`POST /api/v1/files/agent-assets/search`

## Request

- Base URL: `https://api.melius.com`
- URL: `https://api.melius.com/api/v1/files/agent-assets/search`
- Auth: HTTP bearer and API key in header `x-team-id`

Read-only. Requires agent-search entitlement. All supplied scopes intersect, including canvas on queryless browse and folder on filename/canvas search. Browse/filename uses created-desc keysets; semantic search uses independent five-minute ranked snapshots with null count. Invalid/expired continuation requires explicit fresh traversal. Legacy GET offsets/tool results cannot seed this traversal. Legacy GET is unchanged.

## Request body

- object
  - `pageSize` integer
  - `cursor` string
  - `includeCount` boolean
  - `filters` object: All filters intersect: canvas also applies to queryless browse; folder and descendants also apply to filename/canvas search. Tag names are case-insensitive AND filters.
    - `query` string
    - `canvasId` string, uuid
    - `folderId` string, uuid
    - `source` 'upload' | 'generated'
    - `fileType` 'image' | 'video' | 'audio' | 'pdf' | 'text'
    - `tags` string[]
  - `mode` 'semantic' | 'filename'

## Response `200`

200

- object
  - `data` object[], required
    - `assetId` string, uuid, required
    - `folderId` string, uuid, nullable
    - `filename` string, required
    - `displayName` string
    - `source` 'upload' | 'generated', required
    - `fileType` 'image' | 'video' | 'audio' | 'pdf' | 'text', required
    - `contentType` string, nullable, required
    - `fileSizeInKb` integer, nullable, required
    - `durationInMs` integer, nullable, required
    - `previewUrl` string, nullable, required
    - `assetUrl` string, nullable, required
    - `createdAt` string, date-time, required
    - `createdByUserId` string, uuid, nullable, required
    - `createdByName` string, nullable
    - `canvases` object[], required
      - `canvasId` string, uuid, required
      - `projectId` string, uuid, required
      - `canvasTitle` string, required
      - `projectTitle` string
      - `nodeId` string, uuid, nullable
    - `tags` object[], required
      - `id` string, uuid, required
      - `name` string, required
      - `color` string, required
      - `systemTag` string, nullable, required
    - `nodeId` string, uuid, nullable
    - `versionCount` integer
    - `commentCount` integer
    - `favoriteNodeId` string, uuid, nullable
    - `favoriteVersionId` string, uuid, nullable
    - `favoritedByUserId` string, uuid, nullable
  - `pageSize` integer, required
  - `count` integer, nullable, required
  - `hasMore` boolean, required
  - `nextCursor` string, nullable, required
  - `query` string, required
  - `canvasId` string, uuid
  - `folderId` string, uuid
  - `source` 'upload' | 'generated'
  - `fileType` 'image' | 'video' | 'audio' | 'pdf' | 'text'
  - `tags` string[], required
  - `mode` 'semantic' | 'filename', required

## Other responses

- `400`: 400
- `401`: Missing, invalid, expired, or revoked API key.
- `403`: 403
- `404`: 404
- `429`: Rate limit reached — retry after the `Retry-After` header.
- `503`: 503

## Changes

- **2026-11-03** `2a857511f605`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/melius/apis/melius-api/changes/api/v1/files/agent-assets/search/post.md)

---

[API](https://skmtc.dev/melius/apis/melius-api.md) - [All operations](https://skmtc.dev/melius/apis/melius-api/llms.txt) - [OpenAPI document](https://skmtc.dev/melius/apis/melius-api/revisions/2a857511f605?raw)
