Visits, pages and goals (Matomo)
https://seolyticize.com /api/v1/tools/get_matomo_report For a client that measures with Matomo instead of GA4, read live from their Matomo. report: overview (visits, unique visitors when the server processes them for ranges, actions, pageviews, bounce rate, average time, conversions, conversion rate, revenue); channels (visits, bounce rate, conversions and revenue by referrer channel: search, social, ai, direct, website, campaign — Matomo's own split); landing_pages (entrances, bounce rate, actions per entrance, conversions and revenue credited to the entry page); pages (pageviews, visits, average time, bounce and exit rate by page URL); goals (conversions, conversion rate and revenue per goal, and in total). channel limits overview, landing_pages, pages and goals to search engines (organic) or AI assistants (ai) through a Matomo segment; Matomo answers a segment only once it has processed it, and says so. Compares with the same number of days before unless compare is false; defaults to the 28 days ending yesterday. Rows carry key, label, current and previous (null where that period had no row). Figures Matomo did not send are null, never zero. Refuses with a sentence when Matomo is not connected (connect_integration with provider matomo). Answers 'is organic traffic growing' and 'which landing pages convert' for a Matomo site. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredreportstringchannelstringfromstringtostringcomparebooleanlimitinteger{
"clientId": "string",
"report": "overview",
"channel": "all",
"from": "string",
"to": "string",
"compare": true,
"limit": 25
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_matomo_report" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","report":"overview","channel":"all","from":"string","to":"string","compare":true,"limit":25}'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_matomo_report
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_matomo_report
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_matomo_report
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_matomo_report
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_matomo_report
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_matomo_report
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_matomo_report
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger