The Rep AI Analytics API lets you bring the sales and support metrics shown in your Rep AI Console into your own reports, dashboards, or data tools. You can request a date range, apply supported filters, and retrieve the results with a credential you manage in the Console.
Create a credential
- Open the API page in your Rep AI Console.
- In Analytics API, select Create a credential.
- Give the credential a name and choose the information it can access:
- How Rep AI is performing gives access to sales and support performance.
- How much support email Rep handled gives access to the support email funnel.
- Create the credential and copy its secret. Rep AI shows the secret once. Store it securely and use it only in server-side tools or scripts.
Your Account Key is also shown on the API page. The Analytics API credential is separate from the API Key used for conversation exports.
Make your first request
Send the credential in an Authorization header. This example requests September 2026 sales metrics for web conversations:
curl "https://api.hellorep.ai/external/v1/analytics/sales?account_key=YOUR_ACCOUNT_KEY&from=2026-09-01&to=2026-09-30&channel=WEB" \
-H "Authorization: Bearer YOUR_ANALYTICS_API_SECRET"from and to are required. Each date includes the whole UTC day. You can also send an ISO 8601 UTC timestamp; Rep AI uses its UTC date. The account_key parameter is optional, but including it makes the intended store clear.
Choose the metrics you need
All paths below use GET and start with https://api.hellorep.ai/external/v1/analytics.
| Path | What it returns | Required permission |
|---|---|---|
/sales | Sales metrics, including conversion, AI-generated sales and orders, average order value, and shopper actions | How Rep AI is performing |
/sales/skills | Sales skill performance | How Rep AI is performing |
/support | Support metrics, including AI resolutions, human handoffs, deflected tickets, savings, and satisfaction | How Rep AI is performing |
/support/skills | Support skill performance | How Rep AI is performing |
/support/escalations-by-topic | Escalations grouped by topic | How Rep AI is performing |
/support/email-funnel | Support email outcomes and funnel stages | How much support email Rep handled |
Every endpoint needs from and to. The sales and support metrics endpoints also accept channel, customers, trafficSource, and conversationSource. Skill and escalation endpoints accept channel; the email funnel has no additional filters. If you omit channel where it is supported, it defaults to WEB.
Use the filter values offered in your Console. For example, customers accepts ALL, NEW, or RETURNING. The EMAIL channel is also accepted and maps to the helpdesk channel.
Read and page through results
Responses identify the store, the UTC period used, the period requested, and any filters applied. Standard sales and support cards include the current value, previous period value, change, and daily figures. Some cards, such as ROI and the shopper recovery funnel, have their own result structure.
Skill and escalation results are paged. Start with your date range and optional limit (up to 200). If hasMore is true, send the returned nextCursor as cursor with the same request settings. Continue until hasMore is false.
You can request up to 366 days at once. If the end date is in the future, the range exceeds 366 days, or it starts before your store’s Rep AI history, the response reports the adjusted period in period and explains the change in clamps. Check period before comparing a result with a Console view. A response with hasData: false and noDataReason means there is no data for the requested period; it does not mean the metric was zero.
Troubleshooting
- 401: Check that you sent the Analytics API credential as a Bearer secret. The conversation export API Key does not work here.
- 403: Check the credential’s permissions and, if supplied, that
account_keybelongs to the same store. - 400: Check the dates, filter values, and parameters accepted by that endpoint. The error identifies the parameter to correct.
- 429: You have reached a request limit. Wait for the number of seconds in the
Retry-Afterheader, then retry.