Report on ACR with your own AI agent or script
Give an agent or script a Viewer API key and it reads the same analytics, runs and transcripts the app shows. ACR has no MCP server.
Last reviewed November 7, 2026
How an agent connects
ACR has no MCP server. An AI agent, a script or a no-code tool calls ACR's REST API with an API key, and gets the same routes the app's own pages use, so its numbers match what you see on screen. The full list of routes is at /api/openapi-app.json, which an agent can read to find its way, and the API reference shows the same list for people.
- Open API keys from the user menu. An admin selects Create new key.
- Name the key after the agent and choose the Viewer role for reporting.
- Copy the key. It is shown once.
- Give it to the agent as a secret, never in a web page's code, and try one call:
curl -H "Authorization: Bearer $ACR_API_KEY" \
"https://acr.growthdept.ai/api/app/stores/current/analytics/overview?range=last_30_days"current stands for the store the key belongs to.
Routes for reports
| Question | Route |
|---|---|
| How is recovery doing? | GET /analytics/overview: funnel, revenue per currency, provider cost, ROI, the previous period, runs per day |
| How is each channel doing? | GET /analytics/reach |
| Which orders were credited? | GET /analytics/conversions (add only_discount_code=1 for code orders) |
| Every order, credited or not | GET /analytics/orders, or /analytics/orders/export.csv |
| What did shoppers say? | GET /analytics/evaluations?campaign_id= for counts, GET /evaluation-results for answers |
| One run or conversation | GET /runs, GET /interactions (with transcripts and summaries) |
| Who is waiting for your team? | GET /handoffs |
The analytics routes take range (last_24_hours, last_7_days, last_14_days, last_30_days, all_time or custom with from and to as ISO times with an offset) and campaign_id. The default is the last 7 days. Revenue comes back per currency; tell your agent never to add currencies together.
What each role can do
A Viewer key only reads. Wherever a shopper appears it gets a first name and last initial with masked contact details, and no cart link, context or metadata. Transcripts and summaries are not masked, so a Viewer agent still reads what shoppers said. A Member key can also change campaigns and leads, and an Admin key can manage keys, mailboxes, numbers and integrations. Give an agent more than Viewer only when it must act. Change routes that support ?dry_run=1 show what would happen without changing anything.
Limits and paging
Each key gets 300 calls a minute, counted as 100 per 20 seconds. The X-Acr-Api-Call-Limit header shows the count, and going over returns 429 with a Retry-After header. Lists answer with data, next_cursor, total and page; pass cursor and a limit from 1 to 100 (30 by default), or page to jump.
Runs as they end, and the /api/v2 routes
To hear about runs as they finish instead of polling, add a webhook for lead.campaign.completed or lead.campaign.cancelled. The routes under /api/v2 list leads and their runs, which that API calls lead campaigns, and can cancel a run. They return no revenue or analytics, so use the store API for reports.