Every read (and a few writes) the MCP server offers is also exposed as a plain REST endpoint under /api/mcp/*, authenticated with an ans_ API key. All endpoints are organization-scoped — you only ever see brands your key's owner can access.
Brand creation and editing happen in the dashboard (onboarding wizard and brand settings) — there is no public write API for brand CRUD. The endpoints below are the supported programmatic surface.
Who am I
GET /api/mcp/whoami
Authorization: Bearer ans_...
Returns the key's user, organization, and plan context — useful as a connectivity check.
List brands
GET /api/mcp/brands
Authorization: Bearer ans_...
Returns every brand in your organization with id, name, domain, and status.
Visibility
GET /api/mcp/visibility-summary?brand_id=<uuid>&days=7
GET /api/mcp/visibility-trend?brand_id=<uuid>&days=30
Authorization: Bearer ans_...
Aggregate score/mentions/citations/top-competitors, and the day-by-day series.
Topics, prompts, and volumes
GET /api/mcp/topics?brand_id=<uuid>
GET /api/mcp/prompts?brand_id=<uuid>&topic_id=<uuid>&limit=50
GET /api/mcp/prompt-performance?brand_id=<uuid>
GET /api/mcp/prompt-volumes?brand_id=<uuid>
Citations, competitors, traffic, shopping
GET /api/mcp/citations?brand_id=<uuid>
GET /api/mcp/competitor-comparison?brand_id=<uuid>
GET /api/mcp/ai-traffic?brand_id=<uuid>
GET /api/mcp/shopping-cards?brand_id=<uuid>
GET /api/mcp/product-visibility?brand_id=<uuid>
Content opportunities
GET /api/mcp/content-opportunities?brand_id=<uuid>
GET /api/mcp/content-opportunities/{id}
POST /api/mcp/content-opportunities/{id}/brief # generate (or fetch cached) brief
PATCH /api/mcp/content-opportunities/{id}/status # {"status": "sent" | "done" | ...}
Site audits
GET /api/mcp/site-audits?brand_id=<uuid>
POST /api/mcp/site-audits # {"brand_id": "...", "url": "https://..."}
GET /api/mcp/site-audits/{id}
GET /api/mcp/site-audits/quota
Error semantics
| Status | Meaning |
|---|---|
400 |
Missing/invalid brand_id or parameters |
401 |
Missing or revoked API key |
402 |
Plan limit reached (cloud) — body carries a quota explanation |
404 |
Resource not found or not visible to your organization |
Continue: Tracking →