RankPine docs
API for AI agents

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/sync

Returns 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.

On this page