Search performance of your site — clicks, impressions, CTR
google-search-console.performanceGet your site's Google Search performance — clicks, impressions, CTR and top queries
- Price
- freeAt list price
- Success rate
- 100%Last 30 days · 23,864 calls
- Latency p50
- 161 msp95 610 ms
- Last verified
- Jul 28, 2026Verified working
POSThttps://toolswitch.dev/v1/tools/google-search-console.performanceBeta- Uses platform quota
- Synchronous response
- Reads public data
Parameters
request shape previously live-verified via the registry entry's examples. Query data is retained 16 months
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| Path parameters | ||||
siteUrl | string | Required | Raw property id accepted — treg encodes it: 'sc-domain:example.com' for a domain property, or 'https://example.com/' (with trailing slash) for a URL-prefix one. treg's connection picker lists both forms | sc-domain:example.com |
| Request body (JSON) | ||||
type | string | Optional | web (default) | image | video | news | discover | googleNews | web |
endDate | string | Required | 2026-06-28 | |
rowLimit | integer | Optional | 1–25000, default 1000 | 100 |
startRow | integer | Optional | pagination offset | 0 |
dataState | string | Optional | final (default) | all — 'all' includes fresh, still-incomplete data | final |
startDate | string | Required | YYYY-MM-DD; data lags ~2 days, so 'today' is always empty | 2026-06-01 |
dimensions | array | Optional | any of query, page, country, device, date, searchAppearance. OMIT for a site TOTAL — summing a dimension does NOT equal the total, because rows below the privacy threshold are withheld | ["query"] |
dimensionFilterGroups | array | Optional | filters, e.g. [{"filters":[{"dimension":"page","operator":"contains","expression":"/blog/"}]}] | |
- Path parameters
siteUrlstringRequiredRaw property id accepted — treg encodes it: 'sc-domain:example.com' for a domain property, or 'https://example.com/' (with trailing slash) for a URL-prefix one. treg's connection picker lists both forms
Example:
sc-domain:example.com- Request body (JSON)
typestringOptionalweb (default) | image | video | news | discover | googleNews
Example:
webendDatestringRequiredExample:
2026-06-28rowLimitintegerOptional1–25000, default 1000
Example:
100startRowintegerOptionalpagination offset
Example:
0dataStatestringOptionalfinal (default) | all — 'all' includes fresh, still-incomplete data
Example:
finalstartDatestringRequiredYYYY-MM-DD; data lags ~2 days, so 'today' is always empty
Example:
2026-06-01dimensionsarrayOptionalany of query, page, country, device, date, searchAppearance. OMIT for a site TOTAL — summing a dimension does NOT equal the total, because rows below the privacy threshold are withheld
Example:
["query"]dimensionFilterGroupsarrayOptionalfilters, e.g. [{"filters":[{"dimension":"page","operator":"contains","expression":"/blog/"}]}]
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
curl -X POST 'https://toolswitch.dev/v1/tools/google-search-console.performance' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY" \
-H "Content-Type: application/json" \
--data-raw '{"endDate":"2026-07-21","rowLimit":2,"startDate":"2026-07-01"}'import os
import json
import requests
response = requests.request(
"POST",
"https://toolswitch.dev/v1/tools/google-search-console.performance",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
json=json.loads("{\"endDate\":\"2026-07-21\",\"rowLimit\":2,\"startDate\":\"2026-07-01\"}"),
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/google-search-console.performance", {
method: "POST",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
"Content-Type": "application/json",
},
body: JSON.stringify(JSON.parse("{\"endDate\":\"2026-07-21\",\"rowLimit\":2,\"startDate\":\"2026-07-01\"}")),
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());This gateway API is in beta; its URL and authentication may change. The example parameters are sample data. Calls are billed at free, including the service fee.