A portfolio's figures
https://seolyticize.com /api/v1/tools/get_portfolio_metrics Traffic, rankings, issues and AI visibility across a portfolio, with each member's own row: Google clicks over the newest 28 days and the 28 before, tracked keywords in the top 3 and 10 and the average position, site health and critical issues from the newest crawl, and how often AI assistants named the brand. Each total says how many members it covers; a member without the data is left out, never counted as zero. A site member is read for that site; AI visibility is per client. Answers 'how are the dental practices doing'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
portfolioIdstringrequired{
"portfolioId": "string"
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_portfolio_metrics" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"portfolioId":"string"}'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_portfolio_metrics
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_portfolio_metrics
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_portfolio_metrics
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_portfolio_metrics
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_portfolio_metrics
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_portfolio_metrics
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_portfolio_metrics
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger