Get the Search performance payload
const url = 'https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/search-console';const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/search-console \ --header 'x-api-key: <x-api-key>'28-day totals + daily trend from the synced Search Analytics data, top pages (joined with live SEO issue counts and index verdicts), top queries, and index-coverage rollups from the URL Inspection sweep. Search data lags roughly two days and syncs daily.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”The site’s UUID.
Responses
Section titled “ Responses ”The Search performance payload.
object
A site’s Search Console connection, projected for display. The OAuth refresh token is sealed at rest and never appears in any response.
object
Whether the server has a Google OAuth client configured.
Epoch ms of the last analytics sweep, or null.
Computed findings over the search data - striking-distance queries, low-CTR pages, orphan winners, host/protocol splits - each with its evidence items.
object
object
object
Daily totals, ascending by date.
object
object
Live SEO issue count on the page.
object
object
object
object
Example
{ "connection": { "status": "pending-property" }, "insights": [ { "kind": "striking-distance", "tone": "tip" } ]}Missing or invalid credentials.
object
A human-readable error message.
Example
{ "error": "invalid api key"}Site not found, SEO app off, or Search Console not connected.
object
A human-readable error message.
Examplegenerated
{ "error": "example"}