One page: its Google figures, the searches that lead to it and where those searchers are.
Pass the page address as url. Returns the page totals with the comparison, every search that showed it (up to 500, most clicks first) and its clicks and impressions per country. Addresses are matched the way SEO Intelligence matches pages: with or without www, a trailing slash or tracking parameters.
https://app.softsolz.uk/api/v1/services/seo/sites/{site_id}/search-performance/pageRecent Requests
Kept only in this browserPath Params
site_idstringrequiredHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Query Params
urlstringThe full page address, starting with https://.
rangestring7d, 28d, 3m, 6m, 12m or all. Ignored when from and to are set.
fromstringFirst day (YYYY-MM-DD), inclusive.
tostringLast day (YYYY-MM-DD), inclusive.
comparestringprevious (default), year (same days a year earlier) or none.
countrystringOnly searches from one country: a two-letter ISO code or Google's three-letter code.
Response
Response Body
siteobjectThe website.sourcestringlive (asked Google for exactly these days), monthly (whole months from stored data, used when Google could not be reached) or daily (countries from stored daily totals).stalebooleanTrue when an older copy of Google's answer was used.reconnect_requiredbooleanTrue when the Search Console connection needs to be reconnected.fallback_reasonstring | nullWhy monthly data was used: reconnect_required, google_failed, rate_limited or not_connected.effective_rangeobjectWith monthly data: the whole months actually covered.truncatedbooleanTrue when Google returned more rows than are kept, so only the top rows by clicks are included.rangeobjectThe range used.previous_rangeobjectThe comparison range, or null.pageobjectThe page with its figures, previous and change.queriesarray of objectsSearches that showed the page.countriesarray of objectsClicks and impressions per country.Request
curl --request GET \ --url https://app.softsolz.uk/api/v1/services/seo/sites/{site_id}/search-performance/page \ --header 'Authorization: Bearer sk_live_your_key'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser. Use an sk_test_ key to stay in your sandbox.
Response · 200
{ "data": { "site": { "id": "3f2b9c44-8f4e-4d0a-9c1b-2a7d6e5f1a23", "name": "Main site", "domain": "example.com" }, "source": "live", "stale": false, "reconnect_required": false, "fallback_reason": null, "effective_range": null, "truncated": false, "range": { "key": "28d", "label": "Last 28 days", "from": "2026-09-09", "to": "2026-10-06", "days": 28 }, "previous_range": { "from": "2026-08-12", "to": "2026-09-08" }, "page": { "url": "https://example.com/blog/how-to", "clicks": 40, "impressions": 900, "ctr": 0.0444, "position": 6.1 }, "queries": [ { "key": "https://example.com/pricing", "url": "https://example.com/pricing", "path": "/pricing", "title": null, "query": "pricing software", "country": "gbr", "country_code": "GB", "clicks": 120, "impressions": 4200, "ctr": 0.0286, "position": 8.4, "previous": { "clicks": 120, "impressions": 4200, "ctr": 0.0286, "position": 8.4 }, "change": { "clicks": 0.25, "clicks_delta": 24, "impressions": 0.1, "ctr": 0.004, "position": -1.2 } } ], "countries": [ { "key": "https://example.com/pricing", "url": "https://example.com/pricing", "path": "/pricing", "title": null, "query": "pricing software", "country": "gbr", "country_code": "GB", "clicks": 120, "impressions": 4200, "ctr": 0.0286, "position": 8.4, "previous": { "clicks": 120, "impressions": 4200, "ctr": 0.0286, "position": 8.4 }, "change": { "clicks": 0.25, "clicks_delta": 24, "impressions": 0.1, "ctr": 0.004, "position": -1.2 } } ] }}