Google Lens Search
Perform a search using Google Lens with a specific image URL. Useful for identifying objects, finding visually similar images, discovering sources, and retrieving information related to the image.
If you already know that you want to use Google Lens Search, this page is the one you should read. It shows the required input, the filters you can apply, how pagination works, and what localization controls are available.
At a Glance
| Field | Value |
|---|---|
| Name | Google Lens Search |
| Scraper | google_lens |
| Engine | google_lens_search |
| Website | |
| Website URL | googlelens.com |
| Output Format | json |
| Version | 1.0.0 |
| Parameter Count | 5 |
| Parameter Groups | Localization (2), Image Input (1), Advanced Parameters (1), Request Controls (1) |
Request Example
This is the real request body used to validate google_lens during this docs refresh. For /v1/serp, the engine field should be the engine's scraper value.
curl -X POST "https://run.xcrawl.com/v1/serp" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"engine":"google_lens","url":"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"}'Response Example
The JSON below comes from the same live response. Long strings, data URLs, and large arrays were shortened so the example stays readable.
{
"search_metadata": {
"cached": true,
"created_at": "2026-03-26 08:19:52 UTC",
"id": "01KMMKMM84QVKW53F8CATYGTN6",
"json_endpoint": "https://serp.xcrawl.com/01KMMKMM84QVKW53F8CATYGTN6.json",
"processed_at": "2026-03-26 08:19:52 UTC",
"raw_html_file": "https://serp.xcrawl.com/01KMMKMM84QVKW53F8CATYGTN6.html",
"status": "completed",
"total_time_taken": 11
},
"search_parameters": {
"engine": "google_lens",
"url": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
},
"total_credits_used": 1,
"visual_matches": [
{
"link": "https://www.youtube.com/watch?v=RVUXtS1iFNM",
"position": 1,
"source": "YouTube",
"source_icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABr0lEQVRYhe... [truncated data URL, 674 chars]",
"title": "Google unveils its new logo - YouTube"
},
{
"_note": "58 more items omitted"
}
]
}Required Parameters
If you are sending your first request with this engine, start here. Requiredness is based on properties.<field>.must, not the top-level required array.
| Field | Type | Group | Description |
|---|---|---|---|
url | string | Image Input | The image URL used as the input for visual search. |
Available Parameters
The sections below follow the same parameter groups as the backend, but the field descriptions have been rewritten into shorter, user-facing wording so they are easier to scan.
Localization
| Field | Type | Required | Description |
|---|---|---|---|
hl | string | No | Interface language used for the search and returned SERP labels. |
country | string | No | Country code used to localize Google Lens results. |
Additional Constraints
hl:Options: 157 options. Examples:af,ak,sq,ws,amcountry:Options: 157 options. Examples:AE,AF,AG,AI,AL
Image Input
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The image URL used as the input for visual search. |
Advanced Parameters
| Field | Type | Required | Description |
|---|---|---|---|
safe | string | No | Safe-search level that controls adult-content filtering. |
Additional Constraints
safe:Options: 2 options. Examples:active,off
Request Controls
| Field | Type | Required | Description |
|---|---|---|---|
no_cache | boolean | No | Skip cached results and force a fresh fetch. |
Additional Constraints
no_cache:Default:false
