---
title: "Find visually similar assets within a filtered scope"
method: POST
path: "/v1/assets/{id}/similar"
tags: ["Intelligence"]
---

# Find visually similar assets within a filtered scope

`POST /v1/assets/{id}/similar`

## Request

- Base URL: `https://api.picsha.ai`
- URL: `https://api.picsha.ai/v1/assets/{id}/similar`
- Auth: HTTP bearer

As GET, with the same `advancedFilters` and `excludeAssetIds` that POST /v1/search accepts, so the matches can be limited to what the caller's own user may see.

## Path parameters

- `id` string, required

## Request body

- object
  - `limit` integer
  - `minScore` number
  - `advancedFilters` object
    - `timezone` string
    - `addedAfter` string
    - `addedBefore` string
    - `capturedAfter` string
    - `capturedBefore` string
    - `face` string
    - `object` string
    - `place` string
    - `ocr` string
    - `type` union: MIME type prefix ("image", "image/png") or a list of prefixes, any of which may match
      - string
      - string[]
    - `style` string
    - `metadataField` string
    - `metadataValue` string
    - `minRating` integer: Only assets whose metadata.rating is at least this many stars (1-5)
    - `metadata` object: Exact matches on custom metadata keys, e.g. {"asset_status": "Retired"}; all keys must match. A list of values for a key matches any of them
    - `anyOf` object[]: Alternative filter blocks: an asset matches when it satisfies at least one block (max 10); combined with the other filters
      - `timezone` string
      - `addedAfter` string
      - `addedBefore` string
      - `capturedAfter` string
      - `capturedBefore` string
      - `face` string
      - `object` string
      - `place` string
      - `ocr` string
      - `type` union: MIME type prefix ("image", "image/png") or a list of prefixes, any of which may match
        - string
        - string[]
      - `style` string
      - `metadataField` string
      - `metadataValue` string
      - `minRating` integer: Only assets whose metadata.rating is at least this many stars (1-5)
      - `metadata` object: Exact matches on custom metadata keys, e.g. {"asset_status": "Retired"}; all keys must match. A list of values for a key matches any of them
  - `filters` object
    - `timezone` string
    - `addedAfter` string
    - `addedBefore` string
    - `capturedAfter` string
    - `capturedBefore` string
    - `face` string
    - `object` string
    - `place` string
    - `ocr` string
    - `type` union: MIME type prefix ("image", "image/png") or a list of prefixes, any of which may match
      - string
      - string[]
    - `style` string
    - `metadataField` string
    - `metadataValue` string
    - `minRating` integer: Only assets whose metadata.rating is at least this many stars (1-5)
    - `metadata` object: Exact matches on custom metadata keys, e.g. {"asset_status": "Retired"}; all keys must match. A list of values for a key matches any of them
    - `anyOf` object[]: Alternative filter blocks: an asset matches when it satisfies at least one block (max 10); combined with the other filters
      - `timezone` string
      - `addedAfter` string
      - `addedBefore` string
      - `capturedAfter` string
      - `capturedBefore` string
      - `face` string
      - `object` string
      - `place` string
      - `ocr` string
      - `type` union: MIME type prefix ("image", "image/png") or a list of prefixes, any of which may match
        - string
        - string[]
      - `style` string
      - `metadataField` string
      - `metadataValue` string
      - `minRating` integer: Only assets whose metadata.rating is at least this many stars (1-5)
      - `metadata` object: Exact matches on custom metadata keys, e.g. {"asset_status": "Retired"}; all keys must match. A list of values for a key matches any of them
  - `excludeAssetIds` string[]: Asset ids never returned as matches (max 10000)

## Response `200`

Default Response

- object
  - `assetId` string, required
  - `results` object[], required
    - `id` string, required
    - `matchScore` number, required
  - `total` number, required
  - `reason` string

## Other responses

- `404`: Default Response
- `500`: Default Response

---

[API](https://skmtc.dev/picsha/apis/picsha-ai-api.md) · [All operations](https://skmtc.dev/picsha/apis/picsha-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/picsha/apis/picsha-ai-api/revisions/f77c6ac40e70?raw)
