Google Search API
Real-time structured data from Google SERPs. Target by country, language, device and result count. Returns rank, title, URL, snippet and rating for organic results.
2
credits / per call
GET
/v1/google/searchComing soonThis endpoint is being prepared and is not callable yet. Stay tuned.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search keyword, up to 700 characterse.g. wireless earbuds |
| gl | string | optional | Country code, default use.g. us |
| hl | string | optional | Language code, default ene.g. en |
| num | integer | optional | Number of results, 1-20, default 10 (flat 2 credits per call)e.g. 10 |
| device | string | optional | Device: desktop / mobilee.g. desktop |
Request example
bash
curl --location 'https://api.xdatafly.com/v1/google/search?q=wireless%20earbuds&gl=us&hl=en&num=10&device=desktop' \
--header 'Accept: application/json' \
--max-time 120 \
--header 'secret-key: sk_live_xxxxxxxxxxxxxxxx'Response example
json
{
"code": 0,
"message": "ok",
"request_id": "req_7f3a9c21",
"data": {
"query": "wireless earbuds",
"location_code": 2840,
"language_code": "en",
"total_results": 1280000000,
"pages_count": 1,
"feature_types": [
"organic",
"people_also_ask"
],
"items": [
{
"position": 1,
"position_group": 1,
"title": "The 5 Best Wireless Earbuds of 2026",
"url": "https://example.com/best-wireless-earbuds",
"display_url": "example.com › best-wireless-earbuds",
"domain": "example.com",
"snippet": "Our experts tested 40 pairs to find the best...",
"website_name": "Example",
"rating": {
"value": 4.8,
"votes": 1240
}
}
],
"parser_version": "google.serp:2026.09.1"
},
"usage": {
"credits": 2,
"balance": 998
},
"duration_ms": 2140
}- Only organic results are returned; ads, sitelinks and knowledge panels are filtered out.
- position is the absolute rank on the page (rank_absolute upstream), so it stays stable when features are present.
- num above 10 needs no extra charge — Google search is a flat 2 credits per call regardless of result count.
- Queries containing operators such as site:, inurl: or filetype: are rejected with 40003.
- device=mobile returns the mobile SERP layout, which can differ in ranking from desktop.