> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Google Lens with an image URL

> Runs a Google Lens search for the image at `url` and returns its visual matches as JSON (usually ~60). Every match carries `title`, `url` (the page the image is on), `domain`, `source` (site name), `imageUrl` (the matching image), `thumbnailUrl`, `width`, `height` and `position`; product matches add `price` and `currency` (and `product` details) when Google has them, and `priceText`, `rating` and `reviews` as the tile shows them. `relatedSearches` lists what Lens recognised in the image (e.g. 'Eiffel Tower', with its Knowledge Graph id) and `aiOverview` is Google's own description of the image when it is ready in time (else null). Shopping matches follow the country the request comes from - set `proxy_country` for a market (a US request is served from a European exit, where Google loads Lens matches; `proxyCountry` in the response says which).



## OpenAPI

````yaml /api-reference/openapi.json post /images/google-lens
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /images/google-lens:
    post:
      tags:
        - Plugins
      summary: Search Google Lens with an image URL
      description: >-
        Runs a Google Lens search for the image at `url` and returns its visual
        matches as JSON (usually ~60). Every match carries `title`, `url` (the
        page the image is on), `domain`, `source` (site name), `imageUrl` (the
        matching image), `thumbnailUrl`, `width`, `height` and `position`;
        product matches add `price` and `currency` (and `product` details) when
        Google has them, and `priceText`, `rating` and `reviews` as the tile
        shows them. `relatedSearches` lists what Lens recognised in the image
        (e.g. 'Eiffel Tower', with its Knowledge Graph id) and `aiOverview` is
        Google's own description of the image when it is ready in time (else
        null). Shopping matches follow the country the request comes from - set
        `proxy_country` for a market (a US request is served from a European
        exit, where Google loads Lens matches; `proxyCountry` in the response
        says which).
      operationId: google_lens_images_google_lens_post
      parameters:
        - name: url
          in: query
          required: true
          schema:
            type: string
            description: >-
              Public http(s) URL of the image to search with, e.g. a product
              photo. Google fetches the image itself.
            title: Url
          description: >-
            Public http(s) URL of the image to search with, e.g. a product
            photo. Google fetches the image itself.
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE').
              Shopping matches and prices follow the country Google sees the
              request from.
            title: Proxy Country
          description: >-
            Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE').
            Shopping matches and prices follow the country Google sees the
            request from.
        - name: gl
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Optional Google market override (ISO-2). Default: `proxy_country`,
              else 'us'.
            title: Gl
          description: >-
            Optional Google market override (ISO-2). Default: `proxy_country`,
            else 'us'.
        - name: hl
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Google UI language, e.g. 'en', 'de'. Default 'en'.
            title: Hl
          description: Google UI language, e.g. 'en', 'de'. Default 'en'.
        - name: max_results
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 100
                minimum: 1
              - type: 'null'
            description: >-
              Optional cap on the visual matches returned (1-100; default: all,
              usually ~60).
            title: Max Results
          description: >-
            Optional cap on the visual matches returned (1-100; default: all,
            usually ~60).
      responses:
        '200':
          description: JSON with `visualMatches`, `relatedSearches` and `aiOverview`.
          content:
            application/json:
              schema: {}
        '400':
          description: >-
            Invalid parameters, or the image URL is unusable (404, or a web page
            instead of an image) - plain-text message.
        '403':
          description: Blocked by Google CAPTCHA after retries - try another proxy_country.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            No visual matches (Google could not fetch the image, upstream block,
            or the call did not finish in time). Not billed.
        '503':
          description: >-
            No proxy exit was free for this market - retry or pick another
            proxy_country.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.