Every figure a monthly report needs
https://seolyticize.com /api/v1/tools/get_report_data One read of a client's period, from..to inclusive, against the period before (compareTo previous_period, the default) or the same days a year earlier (previous_year): searchConsole (clicks, impressions, CTR and position in total, branded and non-branded, with the non-branded queries and pages that moved most), analytics (GA4 organic sessions, key events and revenue, or the first-party web analytics' visits), revenue (imported orders by currency, organic and AI channels, attribution coverage — as get_seo_revenue), rankings (each tracker's summary and movers between the period's ends), audit (the latest crawl in the period, its health, and new and fixed issues against the last crawl before it), backlinks (gained and lost), aiVisibility (mention rate against the comparison), annotations (the timeline, with Google's updates) and alerts fired. A section is null with unavailableReason when the client lacks that source. Answers 'pull October's numbers for the report'. Use it first; the single tools go deeper on one section. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredfromstringrequiredtostringrequiredcompareTostring{
"clientId": "string",
"from": "string",
"to": "string",
"compareTo": "previous_period"
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_report_data" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","from":"string","to":"string","compareTo":"previous_period"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_report_data
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_report_data
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_report_data
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_report_data
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_report_data
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_report_data
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_report_data
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger