---
title: "Search Google Advanced"
method: GET
path: "/search-advanced"
tags: ["Google Search"]
---

# Search Google Advanced

`GET /search-advanced`

## Request

- Base URL: `https://scrappa.co/api`
- URL: `https://scrappa.co/api/search-advanced`
- Auth: API key in header `X-API-KEY`

The ranked response keeps existing result collections and adds a canonical
DOM-ordered reference list for paid cards, local modules, and organic cards.
Shopping modules are additive: `shops` lists the shop cards of a shops block and
`price_comparison_sites` the comparison sites (name, domain, link) of a price comparison
block; both get a `serp_results` entry (`shops`, `price_comparison`, `popular_products`)
so `rank_absolute` shows their place on the page. An organic result can carry
`products` (offers with title, link, rating, reviews, price, extracted_price), `rating`,
`reviews` and `extensions` (short lines such as return terms) when Google shows them.
`related_searches` also covers the related block at the bottom of the page.
Text ads are detected by their markup, so `ads` is filled on every Google language
(for example "Wyniki sponsorowane" or "Gesponsert"). Each ad has `block` (`top` or `bottom`:
above or below the organic results), `link` (the advertiser landing page without Google
click-tracking parameters; the site root when Google hides the landing page),
`tracking_link` (the Google click URL), `displayed_link`, `domain`, `source` (advertiser
name as shown), `snippet` and `sitelinks` (title and link; a sitelink whose destination Google hides has `tracking_link` instead of `link`) when shown. `shopping_ads`
lists the product listing ads of the shopping carousel (title, link, price,
extracted_price, old_price, merchant, source, rating, reviews, extensions such as shipping
costs); the carousel gets one `serp_results` entry of type `shopping_ads`. `link` is the
merchant URL when Google exposes it, otherwise the Google click URL.
Local places expose external business URLs as `website`, or a sanitized Google
`/searchviewer` URL as `detail_url` when no business website is available.
Resolve `detail_url` with GET /api/search-advanced/place (separately billed).

Identical searches repeated within one hour are served from cache for free and
carry `cached: true`; add `no_cache=true` to force a fresh search.

## Query parameters

- `query` string, required
- `location` string, nullable
- `uule` string, nullable
- `google_domain` string, nullable
- `gl` string, nullable
- `cr` string, nullable
- `hl` string, nullable
- `lr` string, nullable
- `ludocid` string, nullable
- `lsig` string, nullable
- `kgmid` string, nullable
- `si` string, nullable
- `ibp` string, nullable
- `uds` string, nullable
- `oq` string, nullable
- `sclient` string, nullable
- `gs_lp` string, nullable
- `tbs` string, nullable
- `as_qdr` string, nullable
- `safe` 'active' | 'off' | 'null', nullable
- `nfpr` integer, nullable
- `filter` integer, nullable
- `tbm` 'isch' | 'vid' | 'nws' | 'lcl' | 'shop' | 'pts' | 'null', nullable
- `udm` integer, nullable
- `start` integer, nullable
- `include_thumbnails` '0' | '1' | 'true' | 'false' | 'null', nullable
- `page` integer, nullable
- `amount` integer, nullable
- `device` 'desktop' | 'tablet' | 'mobile' | 'null', nullable
- `proxy_country` 'pl' | 'null', nullable

## Response `200`

- object
  - `search_information` object, required
  - `search_url` string, required
  - `organic_results` object[], required
    - `position` integer, required
    - `rank_group` integer, required
    - `rank_absolute` integer, required
    - `title` string, required
    - `link` string, required
    - `rating` number
    - `reviews` integer
    - `extensions` string[]
    - `products` object[]
      - `title` string, required
      - `link` string
      - `rating` number
      - `reviews` integer
      - `price` string
      - `extracted_price` number
  - `ads` object[], required
    - `position` integer, required
    - `rank_group` integer, required
    - `rank_absolute` integer, required
    - `block` 'top' | 'bottom', required
    - `title` string, required
    - `link` string, required
    - `tracking_link` string
    - `displayed_link` string
    - `domain` string
    - `source` string
    - `snippet` string
    - `sitelinks` object[]
      - `title` string, required
      - `link` string
      - `tracking_link` string
  - `shopping_ads` object[], required
    - `position` integer, required
    - `rank_absolute` integer
    - `title` string, required
    - `link` string, nullable, required
    - `price` string, nullable, required
    - `extracted_price` number, nullable, required
    - `old_price` string
    - `merchant` string, nullable, required
    - `source` string, nullable, required
    - `rating` number
    - `reviews` integer
    - `extensions` string[]
  - `local_results` object, nullable, required
    - `places` object[], required
      - `position` integer, required
      - `rank_absolute` integer, required
      - `title` string, required
      - `website` string
      - `detail_url` string
      - `kgmid` string
      - `rating` number
      - `reviews` integer
      - `type` string
      - `address` string
    - `modules` object[]
      - `title` string, required
      - `place_indexes` integer[], required
      - `rank_group` integer, required
      - `rank_absolute` integer, required
  - `serp_results` object[], required
    - `type` 'paid' | 'local_results' | 'organic' | 'shops' | 'price_comparison' | 'popular_products' | 'shopping_ads', required
    - `result_index` integer
    - `module_index` integer
    - `title` string
    - `rank_group` integer, required
    - `rank_absolute` integer, required
  - `shops` object[], required
    - `position` integer, required
    - `name` string, required
    - `link` string, required
    - `title` string
    - `snippet` string
    - `rank_absolute` integer
  - `price_comparison_sites` object[], required
    - `position` integer, required
    - `name` string, required
    - `domain` string
    - `link` string
    - `rank_absolute` integer
  - `related_searches` object[], required
  - `people_also_search_for` object[], required
  - `related_questions` object[], required
  - `things_to_know` object[], required
  - `knowledge_graph` object, nullable, required
  - `see_results_about` object, nullable, required
  - `twitter_card` object, nullable, required
  - `inline_videos` object[], required
  - `inline_images` object[], required
  - `local_map` object, nullable, required
  - `popular_products` object[], nullable, required
  - `perspectives` object[], nullable, required
  - `nutrition_information` object, nullable, required
  - `refine_this_search` object[], nullable, required
  - `answer_box` object, nullable, required
  - `ai_overview` object, nullable, required
  - `top_stories` object[], required
  - `videos` object[], required
  - `shopping_results` object[], required
  - `events_results` object[], required
  - `recipes_results` object[], required
  - `immersive_products` object[], required
  - `filters` object[], required
  - `pagination` object[], required
  - `organic_results_count` integer, required
  - `total_results` integer, nullable, required
  - `engine_used` string, required
  - `service_used` string, required
  - `cached` boolean

## Other responses

- `401`: Unauthorized - API key is missing or invalid
- `403`: The country parameter is not enabled for this account. Contact support to enable it.
- `422`: One or more query parameters failed validation.
- `503`: The upstream service is temporarily unavailable. Please retry shortly.

---

[API](https://skmtc.dev/scrappa/apis/scrappa-api-documentation.md) · [All operations](https://skmtc.dev/scrappa/apis/scrappa-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/scrappa/apis/scrappa-api-documentation/revisions/1e1aa78ff103?raw)
