Aggregate mentions geographically for the heatmap
Returns two independent layers. `countries` needs no geocoding and always renders; `points` carries coordinates only for places the geocoder has resolved, and reports how many are still unlocated rather than dropping them.
In: header
Path Parameters
Domain under analysis
Query Parameters
Start date for the report range (ISO 8601). On aggregated endpoints, omit to default to the last 6 months (there is no "all time"); an explicit start is honoured at any length.
End date for the report range (ISO 8601). Defaults to now when omitted.
Filter by specific models
Filter by specific topic ID
Filter raw results to a single prompt ID. Used by the sentiment heatmap drawer to lazy-load one cell's LLM response instead of bundling all responses in the aggregate.
Include variation calculation comparing to previous period
truePage number for paginated responses
1 <= value1Items per page for paginated responses
1 <= value <= 10050Filter by specific market/language pair ID
Filter by tag IDs (visibility_result joined with prompt_tag)
Restrict the map to one side of the brand split.
"all"Value in
- "all"
- "ourbrand"
- "competitor"
Restrict the map to a single brand, as the analyzer resolved it. Narrower than segment, and used to look at one competitor rather than all of them at once.
Response Body
application/json
curl -X GET "https://example.com/api/domains/string/mention-entities/geo"{ "countries": [ { "countryCode": "FR", "mentions": 1284 } ], "points": [ { "locationKey": "FR|paris|porte de la chapelle", "displayName": "Porte de la Chapelle", "countryCode": "FR", "cityText": "Paris", "localityText": "Porte de la Chapelle", "latitude": 48.8967, "longitude": 2.3597, "precision": "locality", "mentions": 249 } ], "totalMentions": 3342, "locatedPoints": 412, "unlocatedPoints": 88}