/api/v1/* is a deliberately curated, read-only subset of the full MCP REST surface (/api/mcp/* — see Brands & data), meant for external integrations that only need visibility metrics: Looker Studio, Google Sheets, Power BI, or a custom dashboard. It uses the same ans_ API key authentication and the same organization scoping — you only ever see brands your key's owner can access.
Unlike /api/mcp/*, this surface does not expose writes, topics/prompts management, content opportunities, or site audits — just the metrics needed to build charts.
Endpoints
GET /api/v1/whoami
GET /api/v1/brands
GET /api/v1/visibility-summary?brand_id=<uuid>&date_from=<date>&date_to=<date>
GET /api/v1/visibility-trend?brand_id=<uuid>&date_from=<date>&date_to=<date>&granularity=day|week
GET /api/v1/competitor-comparison?brand_id=<uuid>&date_from=<date>&date_to=<date>
GET /api/v1/citations?brand_id=<uuid>&date_from=<date>&date_to=<date>
GET /api/v1/ai-traffic?brand_id=<uuid>&date_from=<date>&date_to=<date>
GET /api/v1/prompt-performance?brand_id=<uuid>
GET /api/v1/shopping-cards?brand_id=<uuid>
Authorization: Bearer ans_...
brand_id is required on every endpoint except whoami and brands. date_from/date_to default to an unbounded window when omitted.
GET /api/v1/brands
Returns a plain JSON array of the key owner's brands:
[{ "id": "…", "name": "Acme Coffee", "slug": "acme-coffee", "industry": "Food & Beverage", "region": "US", "created_at": "…" }]
GET /api/v1/visibility-trend
Daily (or weekly) visibility series:
{
"granularity": "day",
"buckets": [
{
"date": "2026-07-01",
"result_count": 42,
"avg_visibility_score": 61,
"total_mentions": 118,
"total_citations": 34,
"avg_competitor_score": 48
}
]
}
GET /api/v1/competitor-comparison
Includes a share_of_voice.by_platform breakdown alongside the brand/competitor comparison:
{
"brand": { "id": "…", "name": "…", "avg_visibility_score": 61, "total_mentions": 118, "total_citations": 34, "appearance_count": 42 },
"competitors": [{ "competitor_id": "…", "name": "Globex", "avg_visibility_score": 55, "total_mentions": 90, "total_citations": 20, "appearance_count": 40 }],
"share_of_voice": {
"overall_sov_pct": 56.7,
"total_brand_mentions": 118,
"total_competitor_mentions": 90,
"by_platform": [{ "platform": "chatgpt-web", "model_used": null, "brand_mentions": 60, "competitor_mentions": 40, "sov_pct": 60.0 }]
}
}
GET /api/v1/citations
top_domains is sorted by citation count — the field an integration typically wants:
{
"totals": { "domains": 12, "urls": 34, "citations": 210, "results_with_citations": 88, "avg_citations_per_result": 2.4 },
"top_domains": [{ "domain": "coffee-review.com", "category": "editorial", "total_citations": 18, "results_citing": 14, "usage_pct": 15.9 }],
"top_urls": [...]
}
GET /api/v1/ai-traffic
{
"total_visits": 540,
"platform_breakdown": [{ "platform": "chatgpt", "visits": 320 }],
"top_pages": [{ "url": "/blog/best-coffee", "visits": 90 }],
"country_breakdown": [{ "country": "US", "visits": 410 }]
}
Used by
The Looker Studio connector is built entirely on this surface — see its guide for a worked example of pulling these four shapes into a blended report.
Continue: Looker Studio →