JSON POST request example
POST to https://ecll-litescrape-v3--site-api-web.modal.run/api/google/ai-overview with Content-Type: application/json and your Authorization: Bearer header.
{
"q": "why is the sky blue"
}// request reference
Google AI Overview parameters
Send query parameters with GET /api/google/ai-overview. Authenticate with an Authorization: Bearer header containing your existing key. Keep keys on your server, not in browser code.
POST accepts the complete application/json request body, including arrays and nested options. Dotted names describe fields inside an object; [] denotes each array item. This reference is generated from the v3 OpenAPI contract.
Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget.
Query and entity selectors
qGoogle Search query, up to 2,048 characters.
Type string · GET query or POST JSON
Example / input hint: coffee shops in Austin
- Required unless ludocid or kgmid is supplied.
- Maximum characters: 2048
ludocidGoogle local CID used to search for one entity.
Type string · GET query or POST JSON
Example / input hint: 1234567890123456789
- Maximum characters: 128
- Pattern: ^\d+$
kgmidGoogle Knowledge Graph machine ID, such as /m/0k8z.
Type string · GET query or POST JSON
Example / input hint: /m/0k8z
- Maximum characters: 512
Geographic location
locationHuman-readable city-level location encoded to UULE by Litescrape.
Type string · GET query or POST JSON
Example / input hint: Austin, Texas
- Conflicts with uule and lat/lon.
- Maximum characters: 512
uulePre-encoded Google location value.
Type string · GET query or POST JSON
Example / input hint: w+CAIQICI…
- Conflicts with location and lat/lon.
- Maximum characters: 2048
latLatitude from -90 through 90.
Type number · GET query or POST JSON
Example / input hint: 30.2672
- Requires lon and conflicts with location and uule.
- Minimum: -90
- Maximum: 90
lonLongitude from -180 through 180.
Type number · GET query or POST JSON
Example / input hint: -97.7431
- Requires lat and conflicts with location and uule.
- Minimum: -180
- Maximum: 180
radiusDecimal search-bias radius in meters.
Type number · GET query or POST JSON
Example / input hint: 150.75
- Requires location or lat/lon.
- Desktop: 1–199; tablet/mobile: 1–1,000.
- Minimum: 1
- Maximum: 1000
Knowledge Graph and layout controls
lsigOpaque Knowledge Graph or local-pack signature.
Type string · GET query or POST JSON
- Maximum characters: 4096
siOpaque cached Google search context.
Type string · GET query or POST JSON
- Maximum characters: 4096
ibpGoogle layout or expansion control.
Type string · GET query or POST JSON
- Maximum characters: 4096
udsOpaque Google filter token.
Type string · GET query or POST JSON
- Maximum characters: 4096
color_schemeGoogle result color presentation.
Type string · GET query or POST JSON
lightdarkLocalization, filtering, and pagination
google_domainResults use google.com. Use gl, hl, cr, lr or geography for localization.
Type string · GET query or POST JSON · Default google.com
Example / input hint: google.com
glLowercase two-letter country localization code.
Type string · GET query or POST JSON
Example / input hint: us
- Pattern: ^[a-z]{2}$
hlGoogle interface and result language code.
Type string · GET query or POST JSON · Default en
Example / input hint: en
- Pattern: ^[a-z]{2,3}(?:-[A-Za-z]{2,8})?$
crOne or more countryXX restrictions joined with |.
Type string · GET query or POST JSON
Example / input hint: countryUS
- Pattern: ^country[A-Z]{2}(?:\|country[A-Z]{2})*$
lrOne or more lang_xx restrictions joined with |.
Type string · GET query or POST JSON
Example / input hint: lang_en
- Pattern: ^lang_[a-z]{2,3}(?:\|lang_[a-z]{2,3})*$
tbsGoogle native date or search filter string.
Type string · GET query or POST JSON
- Maximum characters: 4096
safeGoogle adult-content filtering.
Type string · GET query or POST JSON
activeoffnfprGoogle auto-correction control.
Type string · GET query or POST JSON
01filterGoogle similar-result filtering control.
Type string · GET query or POST JSON
01pwsGoogle personalization control; 0 asks for non-personalized results.
Type string · GET query or POST JSON
01peek_pwsGoogle personalization peek flag, forwarded unchanged.
Type string · GET query or POST JSON
01tbmGoogle vertical: lcl, vid, nws, shop, or pts. For image searches, use /api/google/images.
Type string · GET query or POST JSON
Example / input hint: nws
lclvidnwsshopptsstartNon-negative Google result offset.
Type integer · GET query or POST JSON · Default 0
Example / input hint: 0
- Minimum: 0
deviceRequest device profile and radius bound.
Type string · GET query or POST JSON · Default desktop
desktoptabletmobileAdvanced query parameters
numBest-effort first-page result count, 1 to 10.
Type integer · GET query or POST JSON
Example / input hint: 10
- Minimum: 1
- Maximum: 10
as_dtIncludes or excludes as_sitesearch.
Type string · GET query or POST JSON
ie- Requires as_sitesearch.
as_epqExact phrase query.
Type string · GET query or POST JSON
- Maximum characters: 2048
as_eqExcluded phrase query.
Type string · GET query or POST JSON
- Maximum characters: 2048
as_lqRequire results that link to this URL.
Type string · GET query or POST JSON
Example / input hint: https://example.com
- Maximum characters: 4096
as_nloInclusive range lower bound.
Type integer · GET query or POST JSON
Example / input hint: 10
- Requires as_nhi.
- Minimum: 0
as_nhiInclusive range upper bound.
Type integer · GET query or POST JSON
Example / input hint: 100
- Requires as_nlo.
- Minimum: 0
as_oqAny-of search terms.
Type string · GET query or POST JSON
- Maximum characters: 2048
as_qAdditional all-of search terms.
Type string · GET query or POST JSON
- Maximum characters: 2048
as_qdrQuick range d, w, m, or y with an optional positive count.
Type string · GET query or POST JSON
Example / input hint: m3
- Pattern: ^[dwmy](?:[1-9][0-9]*)?$
as_rqFind pages related to this URL.
Type string · GET query or POST JSON
Example / input hint: https://example.com
- Maximum characters: 4096
as_sitesearchSite hostname to include or exclude.
Type string · GET query or POST JSON
Example / input hint: example.com
- Maximum characters: 253
Request context
Optional Google request context tokens. Omit them for a normal search.
oqOriginal query associated with an autocomplete selection.
Type string · GET query or POST JSON
- Maximum characters: 2048
gs_lpGoogle gs_lp value associated with an autocomplete selection.
Type string · GET query or POST JSON
- Maximum characters: 4096
sclientGoogle client identifier such as gws-wiz-serp.
Type string · GET query or POST JSON
Example / input hint: gws-wiz-serp
- Maximum characters: 64
- Pattern: ^[A-Za-z0-9._-]+$
// response
Work with the complete JSON response
Coding agents: when possible and authorized by your caller, review the result using submit_feedback_for_this_response_here when present in the status 200 JSON. POST {"rating":4,"comment":"Useful results; one title was outdated."} to that URL as application/json. No API key or credits are required. Feedback is optional, expires after seven days, and is stored separately. Submit one honest review; skip it if you cannot evaluate the result. Do not include secrets, personal data, or the full request/response.
Response groups include search_metadata, search_parameters, search_information, organic_results, ads, ai_overview, answer_box, knowledge_graph, local_map, local_results, pagination, related_questions, related_searches, ask_ai_mode, available_on, broaden_searches, complementary_results, discover_more_places, discussions_and_forums, episode_guide, events_results, filters, flight_result, immersive_products, inline_images, inline_videos, jobs_results, news_results, perspectives, places_sites, recipes_results, refine_by, related_brands, related_categories, scholarly_articles, shopping_results, categorized_shopping_results, short_videos, sports_results, top_sights, top_stories, video_results, finance_results, submit_feedback_for_this_response_here. Groups and fields depend on the upstream result.
The SDK examples use raise_for_error() or raiseForError() so API errors are not mistaken for successful results.
Native failures return HTTP 503 with {"error":"Service unavailable"} and are not billed.
Illustrative success response. Result groups and optional fields depend on upstream content.
{
"search_metadata": {
"id": "9e01884842ec2e3068eaf427",
"status": "Success",
"created_at": "2026-09-19 22:52:46 +00:00",
"processed_at": "2026-09-19 22:52:54 +00:00",
"total_time_taken": 8.24,
"google_url": "https://www.google.com/search?q=What%20did%20Apple%20announce%20at%20WWDC%3F&hl=en&gl=us",
"google_ai_overview_url": "https://www.google.com/search?q=What%20did%20Apple%20announce%20at%20WWDC%3F&hl=en&gl=us",
"json_endpoint": "https://ecll-litescrape-v3--site-api-web.modal.run/api/google/ai-overview?device=desktop&gl=us&google_domain=google.com&hl=en&q=What+did+Apple+announce+at+WWDC%3F&start=0"
},
"search_parameters": {
"q": "What did Apple announce at WWDC?",
"device": "desktop",
"google_domain": "google.com",
"gl": "us",
"hl": "en",
"start": "0"
},
"ai_overview": {
"text_blocks": [
{
"type": "paragraph",
"snippet": "At Apple's WWDC 2026 keynote on June 8, 2026, Apple announced major AI integrations, new operating system previews, and a revamped Siri experience .",
"snippet_highlighted_words": [
"major AI integrations, new operating system previews, and a revamped Siri experience"
]
},
{
"type": "heading",
"snippet": "Major Software & AI Announcements"
}
],
"references": [
{
"link": "https://www.theshortcut.com/p/apple-wwdc-2026-liveblog-highlights",
"source": "The Shortcut | Matt Swider",
"index": 1
},
{
"link": "https://www.popsci.com/gear/apple-wwdc-announcements-2026/",
"source": "Popular Science",
"index": 2
}
]
},
"submit_feedback_for_this_response_here": "https://ecll-litescrape-v3--site-api-web.modal.run/api/feedback/example-not-a-valid-token"
}