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
- freeZum Listenpreis
- Success rate
- 100 %Last 30 days · 23.864 calls
- Latency p50
- 161 msp95 610 ms
- Last verified
- 28.07.2026Verified working
POSThttps://toolswitch.dev/v1/tools/google-search-console.performanceBeta- Uses platform quota
- Synchronous response
- Reads public data
Parameter
request shape previously live-verified via the registry entry's examples. Query data is retained 16 months
| Parameter | Typ | Erforderlich | Beschreibung | Beispiel |
|---|---|---|---|---|
| Pfadparameter | ||||
siteUrl | Zeichenkette | Erforderlich | 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 |
| Anfragetext (JSON) | ||||
type | Zeichenkette | Optional | web (default) | image | video | news | discover | googleNews | web |
endDate | Zeichenkette | Erforderlich | 2026-06-28 | |
rowLimit | Ganzzahl | Optional | 1–25000, default 1000 | 100 |
startRow | Ganzzahl | Optional | pagination offset | 0 |
dataState | Zeichenkette | Optional | final (default) | all — 'all' includes fresh, still-incomplete data | final |
startDate | Zeichenkette | Erforderlich | 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/"}]}] | |
- Pfadparameter
siteUrlZeichenketteErforderlichRaw 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
Beispiel:
sc-domain:example.com- Anfragetext (JSON)
typeZeichenketteOptionalweb (default) | image | video | news | discover | googleNews
Beispiel:
webendDateZeichenketteErforderlichBeispiel:
2026-06-28rowLimitGanzzahlOptional1–25000, default 1000
Beispiel:
100startRowGanzzahlOptionalpagination offset
Beispiel:
0dataStateZeichenketteOptionalfinal (default) | all — 'all' includes fresh, still-incomplete data
Beispiel:
finalstartDateZeichenketteErforderlichYYYY-MM-DD; data lags ~2 days, so 'today' is always empty
Beispiel:
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
Beispiel:
["query"]dimensionFilterGroupsArrayOptionalfilters, e.g. [{"filters":[{"dimension":"page","operator":"contains","expression":"/blog/"}]}]
Codebeispiele
Ersetze $TOOLSWITCH_KEY durch den in der Konsole erstellten Schlüssel.
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());Diese Gateway-API ist in der Beta; URL und Authentifizierung können sich ändern. Die Beispielparameter sind Musterdaten. Aufrufe werden mit free einschließlich Servicegebühr abgerechnet.