v1Resources/SEO/postDownload a branded ranking report

Download a branded ranking report

Builds the branded, section-configurable ranking report — the same "Download Report" action in the app. Returns rendered HTML, not a binary PDF: rasterizing to PDF happens in the browser (no headless-Chrome renderer runs server-side), so turning this into an actual PDF file is on the caller, the same constraint the app's own UI has. Distinct from POST /api/v1/seo/reports/generate, which only enqueues a background rank-grid scan and returns no document.

post/api/v1/seo/reports
seo:read
Request body
locationIdstringrequired
The location to report on.
presetstringoptional
Date-range preset, e.g. "lastMonth" (default).
fromstringoptional
Custom range start (ISO date). Requires to.
tostringoptional
Custom range end (ISO date). Requires from.
keywordsarray of stringoptional
Limit to these tracked keyword ids. Omit for all.
sectionsobjectoptional
Which report sections to include, by key. Omitted keys use the report's own defaults.
coverPagebooleanoptional
executiveSummarybooleanoptional
performanceSnapshotbooleanoptional
agencyActivityLogbooleanoptional
gridRankSnapshotsbooleanoptional
keywordPerformanceTablebooleanoptional
monthOverMonthTrendbooleanoptional
competitorLandscapebooleanoptional
aiRecommendationsbooleanoptional
notesstringoptional
Free-text notes to include on the report.
localestringoptional
Language for the rendered report. Defaults to en.
Response
dataobjectoptional
htmlstringoptional
The rendered report as a self-contained HTML document.
filenamestringoptional
Suggested filename for the report.
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
429Too many requests. Retry after the number of seconds in the Retry-After header.
502The report couldn't be built (a data-source failure, not a client error).
post/api/v1/seo/reports
Your API key
Request body*
{
  "data": {
    "html": "<style>#seo-report{width:100%;...}</style><div id=\"seo-report\"><section class=\"cover\"><h1>Ranking Analytics Report</h1><div class=\"biz\">Acme Dental — Downtown</div></section>...</div>",
    "filename": "Acme_Dental_Downtown_RankingReport_Jan2026_Feb2026.pdf"
  }
}