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.
Articles
Use the RankPine Articles API to list finished articles, retrieve Markdown and HTML, and start asynchronous article generation for a keyword on your site.
Billing & usage
Read subscription status and per-site article usage with the RankPine Billing API. Review response fields and an authenticated example request.