Launch pricing: 78% of pool capacity allocated. Rates rise as it fills. Lock in today's rate →
Skip to content

GETGoogle Search

GET https://api.serpwiz.com/v1/google/search

Returns one page of live Google web results — organic results, ads, top stories, the knowledge panel, People Also Ask and related searches — as JSON. Costs 1 query when successful; failed requests are free.

curl "https://api.serpwiz.com/v1/google/search?q=best+crm+for+startups&gl=us&hl=en" \
  -H "X-API-Key: $SERPWIZ_API_KEY"

Parameters

Parameter Required Description
q yes Search terms, up to 2,048 characters, at least one letter. Alias: query. Supports Google operators such as site:, "exact phrase", -exclude.
gl no Country to search from, as a 2-letter code: us, ca, gb, de… Sets which country's results you get.
hl no Interface language: en, es, fr, de… Affects result snippets and labels.
page no Results page, starting at 1 (default). 10 results per page; max 100.
lr no Only return pages in a language: lang_en, lang_fr…
cr no Only return pages from a country: countryUS, countryCA… (case-sensitive)
tbs no Time and verbatim filters — see below.

Time filters (tbs)

Value Meaning
qdr:h Past hour
qdr:d Past 24 hours
qdr:w Past week
qdr:m Past month
qdr:y Past year
cdr:1,cd_min:1/1/2026,cd_max:10/1/2026 Custom date range (M/D/YYYY)
li:1 Verbatim — match your exact words

Remember to URL-encode: tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2026%2Ccd_max%3A10%2F1%2F2026.

Response

{
  "search_term": "best crm for startups",
  "results": [
    {
      "position": 1,
      "url": "https://www.reddit.com/r/CRM/comments/…",
      "title": "What's the best CRM for an early stage, bootstrapped startup",
      "description": "Sep 9, 2025 · …",
      "date": "Sep 9, 2025"
    },
    {
      "position": 2,
      "url": "https://www.salesforce.com/crm/startup-crm/",
      "title": "Best CRM For Startups: The All-In-One Guide - Salesforce",
      "description": "Find out how the right CRM for startups can help boost revenue…"
    }
  ],
  "ads": [],
  "top_stories": [],
  "knowledge_panel": {
    "name": "", "label": "",
    "description": { "text": "", "url": "", "site": "" },
    "image": { "url": "", "width": "", "height": "", "page_url": "" },
    "info": []
  },
  "related_keywords": {
    "spelling_suggestion": null,
    "keywords": [
      { "position": 1, "keyword": "Best crm for startups free" },
      { "position": 2, "keyword": "Best crm for startups reddit" }
    ]
  },
  "next_page": 2,
  "next_start": 10
}

Fields

Field Type Description
search_term string The query as Google understood it.
results[] array Organic results in page order.
results[].position integer 1-based rank on this page.
results[].title string Result title.
results[].url string Destination URL.
results[].description string Snippet text.
results[].date string Publication date when Google shows one. Optional.
ads[] array Paid results, when present.
top_stories[] array News carousel items, when present.
knowledge_panel object Entity panel. Fields are empty strings when the page has no panel.
related_keywords.keywords[] array "Related searches" suggestions and "People Also Ask" questions (question text only).
related_keywords.spelling_suggestion string | null "Did you mean" correction.
next_page integer Value to pass as page for the next page. Absent on the last page.

Groups that Google didn't show come back empty ([] or empty strings). Don't rely on any field except results being non-empty, and ignore fields you don't recognise — we add new ones without a version bump.

Paginating

page = 1
while page and page <= 5:
    data = get("/v1/google/search", q="serp api", page=page)
    handle(data["results"])
    page = data.get("next_page")

Each page is a separate query and costs 1.

Notes

  • Results are live. Identical requests within about an hour may be served from a short-lived cache, which is still billed as a query.
  • Location targeting is by country (gl). City-level targeting isn't available yet.
  • See Errors for failure handling. Validation errors return 400 invalid_request and are free.

This page as Markdown: /docs/google-search.md