> For the complete documentation index, see [llms.txt](https://docs.echo3d.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.echo3d.com/api/search-by-image-or-model.md).

# Search by Image or Model

## Get similar 3D models and images based on a search image

<mark style="color:blue;">`GET`</mark> `https://api.echo3D.com/imageSearch?key=<API_KEY>&keys=<API_KEYS>&file=<IMAGE_BINARY>`

This query allows you to retrieve similar 3D models and image assets  across a list of collections that match the associated search image file.

#### Query Parameters

<table><thead><tr><th>Name</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td>key<mark style="color:red;">*</mark></td><td>string</td><td>Your API key.</td></tr><tr><td>secKey<mark style="color:red;">*</mark></td><td>string</td><td>Your Secret key. Only if enabled through the <a href="/pages/-M41x3tGykQ1P8zc6MV_#secret-key">Security page</a>.</td></tr><tr><td>email<mark style="color:red;">*</mark></td><td>string</td><td>Your email address</td></tr><tr><td>userKey<mark style="color:red;">*</mark></td><td>string</td><td>Your authentication key</td></tr><tr><td>keys<mark style="color:red;">*</mark></td><td>string</td><td><p>A comma separated string of API keys.</p><p></p><p>The collection associated with each API key will be searched through to find assets that match the input search image.</p></td></tr><tr><td>file<mark style="color:red;">*</mark></td><td>binary</td><td>The search image file. Must be of type .jpg, .jpeg, or .png. </td></tr><tr><td>threshold</td><td>float</td><td>The minimum similarity score an asset must have to be included in the response. Value must be between 0 and 1, where 0 is least similar and 1 is most similar. When this value is not included, it defaults to 0.5.</td></tr><tr><td>getScore</td><td>boolean</td><td>If true, the similarity score of each asset will be returned in the response.</td></tr></tbody></table>

{% tabs %}
{% tab title="200 Search response" %}
Request:

<table><thead><tr><th width="131">Name</th><th>Value</th></tr></thead><tbody><tr><td>key</td><td><pre><code>late-sea-5767
</code></pre></td></tr><tr><td>secKey</td><td>&#x3C;YOUR-SEC-KEY></td></tr><tr><td>userKey</td><td>&#x3C;YOUR-USER-KEY></td></tr><tr><td>email</td><td>&#x3C;YOUR-EMAIL></td></tr><tr><td>keys</td><td><pre><code>broad-butterfly-4544,patient-term-4545,late-sea-5767
</code></pre></td></tr><tr><td>file</td><td>binary</td></tr></tbody></table>

Response body:

```
{
  "broad-butterfly-4544": [
    "entry-id-1",
    "entry-id-2"
  ],
  "patient-term-4545": [],
  "late-sea-5767": [
    "entry-id-3"
  ]
}
```

{% endtab %}

{% tab title="200 Search response with score" %}
Request:

<table><thead><tr><th width="160">Name</th><th>Value</th></tr></thead><tbody><tr><td>key</td><td><pre><code>late-sea-5767
</code></pre></td></tr><tr><td>secKey</td><td>&#x3C;YOUR-SEC-KEY></td></tr><tr><td>userKey</td><td>&#x3C;YOUR-USER-KEY></td></tr><tr><td>email</td><td>&#x3C;YOUR-EMAIL></td></tr><tr><td>keys</td><td><pre><code>broad-butterfly-4544,patient-term-4545,late-sea-5767
</code></pre></td></tr><tr><td>file</td><td>binary</td></tr><tr><td>getScore</td><td>true</td></tr></tbody></table>

Response body:

```
{
  "broad-butterfly-4544": {
    "entry-id-1": 0.3,
    "entry-id-2": 0.75
  },
  "patient-term-4545": {},
  "late-sea-5767": {
    "entry-id-3": 1.0
  }
}
```

{% endtab %}
{% endtabs %}

## Get similar 3D models and images based on a search model

<mark style="color:blue;">`GET`</mark> `https://api.echo3D.com/imageSearch?key=<API_KEY>&keys=<API_KEYS>&entryId=<SEARCH_ENTRY_ID>&operation="entrySearch"`

This query allows you to retrieve similar 3D models and image assets across a list of collections that match one of your existing echo3D assets.

#### Query Parameters

<table><thead><tr><th>Name</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td>key<mark style="color:red;">*</mark></td><td>string</td><td>Your API key.</td></tr><tr><td>secKey<mark style="color:red;">*</mark></td><td>string</td><td>Your Secret key. Only if enabled through the <a href="/pages/-M41x3tGykQ1P8zc6MV_#secret-key">Security page</a>.</td></tr><tr><td>email<mark style="color:red;">*</mark></td><td>string</td><td>Your email address</td></tr><tr><td>userKey<mark style="color:red;">*</mark></td><td>string</td><td>Your authentication key</td></tr><tr><td>keys<mark style="color:red;">*</mark></td><td>string</td><td><p>A comma separated string of API keys.</p><p></p><p>The collection associated with each API key will be searched through to find assets that match the input search image.</p></td></tr><tr><td>entryId<mark style="color:red;">*</mark></td><td>string</td><td>The entryId of the existing echo3D asset you are finding similar assets for. Must be of type .obj, .glb, or .usdz. </td></tr><tr><td>operation<mark style="color:red;">*</mark></td><td>string</td><td>Defines that we must use the <code>entryId</code>as the search criteria. Should have value "entrySearch". </td></tr><tr><td>threshold</td><td>float</td><td>The minimum similarity score an asset must have to be included in the response. Value must be between 0 and 1, where 0 is least similar and 1 is most similar. When this value is not included, it defaults to 0.5.</td></tr><tr><td>getScore</td><td>boolean</td><td>If true, the similarity score of each asset will be returned in the response.</td></tr></tbody></table>

{% tabs %}
{% tab title="200 Search response" %}
Request:

<table><thead><tr><th width="145">Name</th><th>Value</th></tr></thead><tbody><tr><td>key</td><td><pre><code>late-sea-5767
</code></pre></td></tr><tr><td>secKey</td><td>&#x3C;YOUR-SEC-KEY></td></tr><tr><td>userKey</td><td>&#x3C;YOUR-USER-KEY></td></tr><tr><td>email</td><td>&#x3C;YOUR-EMAIL></td></tr><tr><td>operation</td><td><pre><code>entrySearch
</code></pre></td></tr><tr><td>keys</td><td><pre><code>broad-butterfly-4544,patient-term-4545,late-sea-5767
</code></pre></td></tr><tr><td>entryId</td><td><pre><code>entry-id-2
</code></pre></td></tr></tbody></table>

Response body:

```
{
  "broad-butterfly-4544": [
    "entry-id-1",
    "entry-id-2"
  ],
  "patient-term-4545": [],
  "late-sea-5767": [
    "entry-id-3"
  ]
}
```

{% endtab %}

{% tab title="200 Search response with score" %}
Request:

<table><thead><tr><th width="160">Name</th><th>Value</th></tr></thead><tbody><tr><td>key</td><td><pre><code>late-sea-5767
</code></pre></td></tr><tr><td>secKey</td><td>&#x3C;YOUR-SEC-KEY></td></tr><tr><td>userKey</td><td>&#x3C;YOUR-USER-KEY></td></tr><tr><td>email</td><td>&#x3C;YOUR-EMAIL></td></tr><tr><td>operation</td><td><pre><code>entrySearch
</code></pre></td></tr><tr><td>keys</td><td><pre><code>broad-butterfly-4544,patient-term-4545,late-sea-5767
</code></pre></td></tr><tr><td>entryId</td><td><pre><code>entry-id-2
</code></pre></td></tr><tr><td>getScore</td><td>true</td></tr></tbody></table>

Response body:

```
{
  "broad-butterfly-4544": {
    "entry-id-1": 0.3,
    "entry-id-2": 0.75
  },
  "patient-term-4545": {},
  "late-sea-5767": {
    "entry-id-3": 1.0
  }
}
```

{% endtab %}
{% endtabs %}
