# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.echo3d.com/api/search-by-image-or-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
