Overview & Purpose
GET /serp answers a different question than the other endpoints: not “what’s on this page?” but
“what does the search engine say?” It queries the engine configured on the orchestrator
(Google, Brave, or DuckDuckGo — not a client-selectable parameter) and returns parsed organic
results, not raw search-engine HTML.
Use it when you need search results themselves — rank tracking, competitive research, “what’s
currently ranking for X” — rather than the content of a page you already have the URL for. If you
already have a URL, use Scrape instead.
Prerequisites: a valid API key. No special scope required.
Best practices
- Choose
modedeliberately.fastreturns organic results only — cheaper and quicker.full(the default) adds the knowledge graph, People Also Ask, related searches, sitelinks, and result attributes when the engine provides them. Usefastif you only need ranked links. - Set
outputonly when you need page content. Enriching results withhtml,clean_html, orlinksfetches each result’s page and is billed as one ordinary scrape per result attempted — leave it unset for metadata-only results. - Not every engine returns every field. Knowledge graph, People Also Ask, sitelinks, and an estimated result total are all best-effort — treat their absence as normal, not an error.
- Use
tbsfor freshness-sensitive queries (qdr:d,qdr:w,qdr:m) instead of filtering stale results client-side. - Localize with
country/languagerather than embedding location terms inquery— it’s more reliable and doesn’t cost extra query length.
