Search Console
Read Google Search Console status, performance series, and top queries for a site — and trigger a fresh sync.
When a site has Google Search Console connected, RankPine syncs daily performance data and uses it to steer keyword research. The API exposes that read-side data.
Connection status
GET /api/v1/sites/{site_id}/gsc{
"connected": true,
"property_url": "sc-domain:yoursite.com",
"last_synced_at": "2026-07-06T04:00:12.000Z"
}Not connected yet?
{
"connected": false,
"connect_url": "https://rankpine.com/dashboard/settings/integrations",
"message": "Google Search Console is not connected for this site."
}Connecting requires a Google OAuth consent screen, so it can't be completed by an API call — send
a human to connect_url once, and every agent benefits.
Trigger a sync (asynchronous)
POST /api/v1/sites/{site_id}/gsc/syncReturns 202 (or 409 gsc_not_connected). Rate limit: 12/hour per account.
Performance series
Daily clicks + impressions across the site, up to 90 days back:
GET /api/v1/sites/{site_id}/gsc/performance?days=28{
"days": 28,
"data": [
{ "date": "2026-06-09", "clicks": 42, "impressions": 1810 },
{ "date": "2026-06-10", "clicks": 51, "impressions": 1922 }
]
}Top queries
The real search queries the site ranks for (from the latest sync window), strongest first:
GET /api/v1/sites/{site_id}/gsc/top-queries?limit=50{
"data": [
{ "query": "privacy first analytics", "clicks": 128, "impressions": 3400, "position": 4.2 },
{ "query": "google analytics alternative", "clicks": 96, "impressions": 8100, "position": 8.7 }
]
}position is the impression-weighted average (1 = top of page one). These pair
well with POST …/keywords — import striking-distance queries (position 5–20)
as keywords and let RankPine write the content to win them.