API + MCP
Use your AI visibility data anywhere.
Pull exact answers, cited sources, metrics, and recommended fixes into Claude, Cursor, reports, or your own tools.
Everything the dashboard shows is available over a REST API and an MCP server. Create an API key in Settings, then point your code or your AI tools at it. API access is included on the Grow and Agency plans.
Setting up an agent to do this work for you? Recometrix for agents walks through the read-audit-then-fix loop.
Authentication
Send Authorization: Bearer rmx_YOUR_KEY on every REST and MCP request.
Create keys in Settings, Developers, API keys. The tab only allows key creation when your workspace has API access.
New keys are shown once when you create them. Recometrix stores only the hashed key, so create a new key if you lose it.
Machine-readable discovery
Agents can discover the REST API through https://recometrix.com/.well-known/api-catalog and its OpenAPI 3.1 description at https://recometrix.com/openapi.json.
The MCP server card is at https://recometrix.com/.well-known/mcp/server-card.json. It publishes the transport endpoint, bearer authentication requirement, protocol version, and current tool schemas.
Task-specific Agent Skills are published through https://recometrix.com/.well-known/agent-skills/index.json. Use review-recometrix-audit to interpret an audit and implement-recometrix-action to carry one selected action into a verified repository change.
A concise authentication guide is available as Markdown at https://recometrix.com/auth.md.
REST endpoints
Use https://recometrix.com as the base URL. Responses are JSON. List endpoints accept limit with default 50 and max 200.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/projects | List every project available to the API key. |
| GET | /api/v1/projects/{projectId}/metrics | Return the latest visibility metrics and a 12-run history for one project. |
| GET | /api/v1/projects/{projectId}/answers | Return prompt-level answers from the latest completed audit. Optional limit query parameter, default 50, max 200. |
| GET | /api/v1/projects/{projectId}/sources | Return ranked citation-source opportunities from the latest completed audit. Optional limit query parameter, default 50, max 200. |
| GET | /api/v1/projects/{projectId}/actions | Return prioritized executable actions for one project. Every action includes one target, output, step list, completion check, and credit cost. Optional limit query parameter, default 50, max 200. |
| GET | /api/v1/projects/{projectId}/referrals | Return AI referral events and crawler rollups for one project. Optional limit query parameter, default 50, max 200 per list. |
| GET | /api/v1/projects/{projectId}/deliverables | Return generated deliverables for one project. Optional limit query parameter, default 50, max 200. |
| GET | /api/v1/projects/{projectId}/methodology | Return methodology metadata for the latest completed deep audit. |
| GET | /api/v1/projects/{projectId}/export?type=answers | Download CSV exports. Supported types: answers, sources, actions, referrals. Optional limit query parameter, default 200, max 200. |
GET /api/v1/projects
{
"projects": [
{
"id": "6f0c9f0e-2a9d-4b5f-8c1a-2b3c4d5e6f70",
"brandName": "AcmeDesk",
"websiteUrl": "https://acmedesk.example",
"category": "shared inbox software"
}
]
}GET /api/v1/projects/{projectId}/metrics
{
"latest": {
"runId": "9a8b7c6d-1234-4cde-9f01-3456789abcde",
"visibilityScore": 48.6,
"mentionRate": 0.42,
"top3Rate": 0.25,
"citationRate": 0.38,
"stability": 0.81,
"sampleCount": 144,
"competitors": [
{
"name": "AcmeDesk",
"isBrand": true,
"mentions": 61,
"share": 0.42,
"rank": 2
},
{
"name": "InboxPilot",
"isBrand": false,
"mentions": 73,
"share": 0.51,
"rank": 1
}
],
"at": "2026-07-03T12:20:00.000Z",
"perProvider": [
{
"provider": "openai",
"visibilityScore": 52.1,
"mentionRate": 0.46,
"citationRate": 0.41,
"top3Rate": 0.29,
"sampleCount": 36
}
]
},
"history": [
{
"at": "2026-06-19T12:20:00.000Z",
"visibilityScore": 42.4,
"mentionRate": 0.36
},
{
"at": "2026-07-03T12:20:00.000Z",
"visibilityScore": 48.6,
"mentionRate": 0.42
}
]
}GET /api/v1/projects/{projectId}/answers
{
"runId": "9a8b7c6d-1234-4cde-9f01-3456789abcde",
"answers": [
{
"prompt": "Best shared inbox software for a small support team?",
"provider": "anthropic",
"mode": "memory",
"model": "claude-sonnet-4-5",
"sampleIndex": 0,
"brandMentioned": true,
"brandRank": 3,
"sentiment": "positive",
"citedDomains": [
"g2.com",
"capterra.com"
],
"answer": "AcmeDesk appears in shared inbox comparisons when teams ask for routing, ownership, and reporting.",
"error": null
}
]
}GET /api/v1/projects/{projectId}/sources
{
"runId": "9a8b7c6d-1234-4cde-9f01-3456789abcde",
"sources": [
{
"domain": "g2.com",
"type": "review/list",
"count": 12,
"providerCounts": {
"openai": 5,
"anthropic": 4,
"perplexity": 3
},
"promptIds": [
"prompt-1",
"prompt-2"
],
"brandPromptIds": [
"prompt-2"
],
"gapPromptIds": [
"prompt-1"
],
"exampleResponseIds": [
"response-1",
"response-2"
],
"urls": [
"https://g2.com/categories/shared-inbox"
],
"gapUrls": [
"https://g2.com/categories/shared-inbox"
],
"competitorAnswers": 8,
"brandAnswers": 2,
"topCompetitors": [
{
"name": "InboxPilot",
"answers": 5
}
],
"firstSeenAt": "2026-07-01T12:20:00.000Z",
"lastSeenAt": "2026-07-03T12:20:00.000Z"
}
]
}GET /api/v1/projects/{projectId}/actions
{
"actions": [
{
"id": "action-1",
"key": "citation-gap:g2.com",
"lane": "seo",
"title": "Win the G2 shared inbox category page",
"description": "Competitors are cited there more often than AcmeDesk.",
"category": "citation_gap",
"priority": "high",
"status": "open",
"promptIds": [
"prompt-1"
],
"execution": {
"version": 1,
"operation": "pitch_page",
"target": {
"kind": "external_page",
"label": "g2.com/categories/shared-inbox",
"url": "https://g2.com/categories/shared-inbox"
},
"output": {
"kind": "outreach_kit",
"label": "A ready-to-send pitch tailored to the G2 shared inbox page."
},
"steps": [
"Read the G2 shared inbox category page.",
"Pitch one factual addition that gives AcmeDesk a legitimate place on the page.",
"Send the pitch and mark the action done when the mention is live."
],
"completion": {
"kind": "source_mentions_brand",
"label": "The G2 page mentions AcmeDesk and a later audit sees the source."
},
"creditCost": 1
},
"shippedAt": null,
"resolvedAt": null,
"outcome": null,
"createdAt": "2026-07-03T12:20:00.000Z"
}
]
}GET /api/v1/projects/{projectId}/referrals
{
"referrals": [
{
"id": "referral-1",
"provider": "chatgpt",
"path": "/pricing",
"landingPath": "/pricing",
"kind": "visit",
"conversionLabel": null,
"reportedValueCents": null,
"createdAt": "2026-07-03T12:20:00.000Z"
}
],
"crawlerRollups": [
{
"day": "2026-07-03",
"provider": "perplexity",
"path": "/compare",
"count": 17,
"updatedAt": "2026-07-03T12:20:00.000Z"
}
]
}GET /api/v1/projects/{projectId}/deliverables
{
"deliverables": [
{
"id": "deliverable-1",
"actionId": "action-1",
"kind": "brief",
"title": "G2 category-page outreach brief",
"mode": "draft",
"targetUrl": "https://g2.com/categories/shared-inbox",
"groundedOn": {
"inventoryUrls": [],
"sourceUrls": [
"https://g2.com/categories/shared-inbox"
],
"promptIds": [
"prompt-1"
],
"sourceDomains": [
"g2.com"
],
"competitorExamples": [
{
"name": "InboxPilot",
"answers": 5
}
]
},
"evidence": [
{
"domain": "g2.com",
"prompts": [
"prompt-1"
]
}
],
"creditsSpent": 2,
"model": "gpt-5-mini",
"contentMarkdown": "# Outreach brief\n\nUpdate the comparison proof points...",
"createdAt": "2026-07-03T12:20:00.000Z"
}
]
}GET /api/v1/projects/{projectId}/methodology
{
"latestRun": {
"runId": "9a8b7c6d-1234-4cde-9f01-3456789abcde",
"kind": "deep",
"createdAt": "2026-07-03T12:20:00.000Z",
"completedAt": "2026-07-03T12:28:00.000Z",
"promptCount": 25,
"answerCount": 300,
"validAnswerCount": 292,
"errorCount": 8,
"sampleCount": 292,
"providers": [
{
"provider": "openai",
"mode": "grounded",
"model": "gpt-5-mini",
"answerCount": 75,
"validAnswerCount": 73,
"errorCount": 2,
"sampleIndexes": [
0,
1,
2
]
}
]
},
"methodology": {
"scoring": "Metrics are computed from valid answers in the latest completed deep audit.",
"rankCaveat": "Rank is treated as a distribution signal, not a single deterministic AI-search position."
}
}GET /api/v1/projects/{projectId}/export?type=answers
prompt,provider,mode,model,sample_index,brand_mentioned,brand_rank,sentiment,cited_domains,error,answer
"Best shared inbox software?",anthropic,memory,claude-sonnet-4-5,0,true,3,positive,"g2.com capterra.com",,"AcmeDesk appears in shared inbox comparisons..."MCP
The MCP server lets AI tools use Recometrix directly. Tell Claude to check your visibility, pull prompt-level answers, inspect citation sources, review referrals, list what to fix, or fetch generated deliverables, and it can call these tools itself.
Endpoint: POST https://recometrix.com/api/mcp. The server is stateless streamable HTTP, accepts single JSON-RPC 2.0 request objects, and advertises protocol 2025-06-18 during initialize.
list_projects
List the brands/projects tracked in this Recometrix workspace, with their ids.
{
"type": "object",
"properties": {},
"additionalProperties": false
}get_visibility_metrics
Latest AI-visibility metrics for a project (visibility score, mention rate, top-3 rate, stability, competitor share) plus a 12-run history.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
}
},
"additionalProperties": false
}get_prompt_results
Prompt-level answers from the latest completed audit: which AI tools mentioned the brand, at what rank, with which cited domains. Includes the verbatim answers.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
},
"limit": {
"type": "number",
"description": "Max rows to return (default 50, max 200)"
}
},
"additionalProperties": false
}get_sources
Ranked citation-source opportunities from the latest completed audit, including citation gaps and source type.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
},
"limit": {
"type": "number",
"description": "Max rows to return (default 50, max 200)"
}
},
"additionalProperties": false
}get_actions
Prioritized action recommendations for a project (what to fix first), each backed by stored answers.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
},
"limit": {
"type": "number",
"description": "Max rows to return (default 50, max 200)"
}
},
"additionalProperties": false
}get_referrals
AI referral events and crawler rollups for a project.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
},
"limit": {
"type": "number",
"description": "Max rows to return (default 50, max 200)"
}
},
"additionalProperties": false
}get_deliverables
Generated deliverables for a project, including grounded markdown drafts.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
},
"limit": {
"type": "number",
"description": "Max rows to return (default 50, max 200)"
}
},
"additionalProperties": false
}get_methodology
Methodology metadata for the latest completed deep audit, including provider, model, sample, and scoring caveats.
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project id from list_projects"
}
},
"additionalProperties": false
}Claude Code
claude mcp add --transport http recometrix https://recometrix.com/api/mcp --header "Authorization: Bearer rmx_YOUR_KEY"JSON for other MCP clients
{
"mcpServers": {
"recometrix": {
"url": "https://recometrix.com/api/mcp",
"headers": { "Authorization": "Bearer rmx_YOUR_KEY" }
}
}
}Rate limits and errors
Each active API key is limited to 600 requests per 60 seconds.
When the limit is hit, the API returns 429 with { "error": "API rate limit exceeded. Try again in a minute." } and Retry-After: 60.
Missing, invalid, or revoked keys return 401. Workspaces without API access return 403. Unknown project IDs return 404 on REST and a tool error in MCP.