Full Report
Get a combined 30-day report with Google organic, LLM citations, and competitor comparison.
Returns a multi-section tracking report covering the last 30 days: Google organic rankings summary, LLM citation metrics with baseline delta, and competitor comparison across LLM mentions.
Query parameters
brand_idstringrequiredThe brand UUID.
Response
{
"brand": "Your Brand",
"domain": "yourdomain.com",
"generated_at": "2026-04-07T10:00:00Z",
"period": "last_30_days",
"sections": {
"google_organic": {
"total_keywords": 127,
"branded_keywords": 18,
"non_branded_keywords": 109,
"top_10": [
{
"keyword": "ai marketing tools",
"position": 8,
"volume": 12000
}
]
},
"llm_citations": {
"total_mentions": 34,
"impressions": 1280,
"baseline": 22,
"delta_since_baseline": 12
},
"competitor_comparison": [
{ "domain": "yourdomain.com", "mentions": 34 },
{ "domain": "competitor1.com", "mentions": 58 },
{ "domain": "competitor2.com", "mentions": 21 }
]
},
"summary": "Your Brand currently ranks for 127 keywords (109 non-branded) on Google. LLM citation count: 34 total mentions across AI platforms (+12 vs baseline)."
}
Field notes
| Field | Description |
|---|---|
period | Always the literal string "last_30_days". |
summary | A single paragraph of text — not a structured object. |
sections.google_organic | Branded vs non-branded keyword split and top 10 ranking pages |
sections.llm_citations.baseline | Citation count when the brand was registered |
sections.llm_citations.delta_since_baseline | Change vs baseline (positive = growth) |
sections.competitor_comparison | Sorted by mention count descending, brand first unless a competitor outranks |
The report does not currently include an AIO section. For AI Overview presence, call GET /track/aio separately.
Sections may be replaced by an error placeholder on upstream failure. When a DataForSEO call fails for one of the sections, the section value is replaced with {"error": "<message>"} rather than omitted — the report still returns 200, but you must check each section for an error key before consuming its data. The competitor_comparison section is only included when the brand has at least one business- or serp-type competitor set; brands with no competitors get a report without that key. The summary paragraph wording is heuristically generated from the section data and is not a stable contract — do not parse it.
Example
curl -H "X-API-Key: $BM_API_KEY" \
"https://api.boringmarketing.com/track/report?brand_id=$BRAND_ID"
Use the full report for monthly reviews. Use individual tracking endpoints (/rankings, /citations, /aio) for real-time checks.