Connect Claude, ChatGPT and Cursor
AxiTrace runs a remote MCP server. Connect it to Claude, ChatGPT, Cursor or any other MCP client and ask in plain language about your store: revenue and ROAS, where orders come from, which campaigns sell, which source or campaign brought the most add-to-carts that did not end in an order, whether every ad platform connection is healthy. The assistant reads the same numbers as your AxiTrace dashboard. If you allow it, it can also set up custom events for you; everything else is read-only.
https://axitrace.com/api/mcp
Paste exactly this address, without www. An address on www.axitrace.com is refused.
Prefer code over chat? The same reports are available from the REST API v1.
AxiTrace is an official plugin in ChatGPT, reviewed and approved by OpenAI: AxiTrace in the ChatGPT plugin directory. In ChatGPT you do not need developer mode or a token: open the listing, click Install plugin and sign in to AxiTrace. See the official ChatGPT plugin.
AxiTrace is listed in the official Claude Connectors Directory: claude.ai/directory/axitrace. In Claude you do not need to copy the URL: open the listing, click Connect and sign in to AxiTrace. See Claude.ai and Claude Desktop.
On this page
- Before you start
- How connecting works
- Claude.ai and Claude Desktop
- Claude Code
- ChatGPT (official plugin, desktop app or chatgpt.com)
- Cursor
- Other MCP clients
- Personal access tokens
- The MCP tools
- Setting up custom events
- What data is and is not exposed
- Plans
- Rate limits
- Security e-mails
- Revoking access
- Troubleshooting
Before you start
- A workspace on a paid plan (Pro, Business or Custom; existing legacy Starter also retains access). The Free plan does not include API access. The two fraud tools also need the Business or Custom plan.
- Your own AxiTrace login with access to that workspace. The assistant can read only workspaces you can see yourself, and it loses access to a workspace when you do.
-
An assistant that supports remote MCP servers over HTTP, with OAuth sign-in or a custom
Authorizationheader.
How connecting works
- You add
https://axitrace.com/api/mcpto your assistant as a custom connector (or MCP server). - The assistant finds the AxiTrace sign-in details on its own and opens an AxiTrace page in your browser. Sign in if you are not signed in yet.
- The consent page shows the name of the application, what it will be able to read, and the workspaces it may read. All eligible workspaces are selected; untick the ones you do not want to share. At least one must stay selected. Only workspaces on a paid plan are offered, and demo workspaces are marked Demo.
- Click Approve. You return to the assistant, which can now call the tools.
A few things to know about a connection:
- Workspaces you create later are not included. Connect the application again to add them.
- A connection lasts up to 180 days from your approval. The assistant renews its short-lived access token (one hour) in the background, so you do not notice it. After 180 days, connect again.
- You receive a security e-mail for every new connection.
- You can disconnect at any time: see Revoking access.
Claude.ai and Claude Desktop
Claude signs you in with OAuth, so you need no token. AxiTrace is listed in the Claude Connectors Directory, so the quickest way is to connect it from there.
From the Claude Connectors Directory (recommended)
- Open AxiTrace in the Claude Connectors Directory while signed in to claude.ai.
- Click Connect.
- The AxiTrace page Connect Claude to AxiTrace opens (sign in first if asked). Untick the workspaces you do not want to share, tick any write permission you want to allow and click Approve.
- Open a new chat and ask, for example, "List my AxiTrace workspaces". The first time Claude uses each AxiTrace tool it asks for permission: click Allow once or Always allow.
Once connected, the listing shows Connected and AxiTrace appears under Customize, Connectors on claude.ai.
As a custom connector
You can also add the same server by hand. The steps below were checked on claude.ai on 24 September 2026.
- On claude.ai, click Customize in the left sidebar and open the Connectors tab.
- Click + Add (top right) and choose Add custom connector.
- Step 1 of the dialog: Name
AxiTrace, MCP server URLhttps://axitrace.com/api/mcp. Click Continue. - Step 2: Claude reads the AxiTrace sign-in details on its own and marks two options as Detected. Keep
them exactly as they are:
- Authentication: Sign in now;
- OAuth client: Use Claude's published identity;
- Request headers: add nothing. Do not paste a token or an
Authorizationheader here: Claude gets its own token when you sign in, and a header of yours would get in its way.
- The connector page says You're not connected to AxiTrace yet. Click Connect.
- The AxiTrace page Connect Claude to AxiTrace opens (sign in first if asked). It lists what Claude will be able to read and your workspaces, all ticked. Untick the ones you do not want to share and click Approve.
- You are back on claude.ai with the message Connected to AxiTrace.
- Open a new chat and ask, for example, "List my AxiTrace workspaces" or "AxiTrace overview for the last 7 days". The first time Claude uses each AxiTrace tool it asks Claude wants to use ... from AxiTrace: click Allow once, or Always allow to stop being asked for that tool.
A connector added on claude.ai is available in Claude Desktop and the Claude mobile apps under the same Claude account. If your organization manages connectors centrally, an owner may have to add the connector before members can connect it.
Claude Code
Option A: sign in with OAuth (recommended for your own machine).
claude mcp add --transport http axitrace https://axitrace.com/api/mcp
Then run /mcp inside Claude Code, pick axitrace and choose to authenticate. Your browser
opens the AxiTrace consent page. The page notes that the authorization code goes to an application running on your
own computer: that is Claude Code, which is expected.
Option B: a personal access token (for shared setups, CI or when a browser is not available). Create a token first (see Personal access tokens) and keep it in an environment variable:
export AXITRACE_TOKEN="paste the token here"
claude mcp add --transport http axitrace https://axitrace.com/api/mcp --header "Authorization: Bearer $AXITRACE_TOKEN"
Your shell expands $AXITRACE_TOKEN when you run the command, so the token ends up in the Claude Code
configuration. For a project shared through git, use a .mcp.json file that references the variable
instead, and never commit the token itself:
{
"mcpServers": {
"axitrace": {
"type": "http",
"url": "https://axitrace.com/api/mcp",
"headers": {
"Authorization": "Bearer ${AXITRACE_TOKEN}"
}
}
}
}
ChatGPT
AxiTrace is an official ChatGPT plugin, approved by OpenAI, so the quickest way is to install it from the ChatGPT plugin directory.
From the ChatGPT plugin directory (recommended)
- Open AxiTrace in the ChatGPT plugin directory while signed in to chatgpt.com.
- Click Install plugin.
- The AxiTrace page Connect ChatGPT to AxiTrace opens (sign in first if asked). Untick the workspaces you do not want to share, tick any write permission you want to allow and click Approve.
- Open a new chat and ask, for example, "Use AxiTrace: which traffic sources brought the most revenue last month?"
Adding the server by hand
You can also add the same server yourself. ChatGPT has two different places for that, and they do not look alike. Pick the one that matches where you use ChatGPT. Either way you need a Plus, Pro, Business, Enterprise or Education account.
Option A: the ChatGPT desktop app
The desktop app connects AxiTrace with a personal access token. Create the token first and keep it at hand: AxiTrace shows it only once.
- Click Plugins in the left sidebar.
- Click Add (the dark button, top right, next to Browse catalog) and choose the MCP server option. The page Connect to a custom MCP opens.
- Fill in the form exactly as in the table below. Leave every field that the table marks as empty untouched.
- Click Save. AxiTrace now appears under the MCP servers tab of the Plugins page.
- Open a new chat (an existing one does not see the new server) and ask "List my AxiTrace workspaces". The answer lists your workspaces with their plan, currency and timezone.
| Field | What to enter |
|---|---|
| Name | AxiTrace |
| Type | Click Streamable HTTP. The form starts on STDIO, which is wrong for AxiTrace. After you switch, the fields below appear. |
| URL | https://axitrace.com/api/mcp, exactly this, with nothing after
mcp (no slash, no full stop). |
Bearer token environment variable (grey placeholder MCP_BEARER_TOKEN) |
Leave empty. It expects the name of a terminal variable, which the desktop app cannot see. |
| Headers, left box (Key) | Authorization |
| Headers, right box (Value) | The word Bearer, one space,
then your whole token. For example Bearer eyJ0eXAiOiJKV1QiLCJhbGci... (the real token is
about 900 characters long; paste all of it). |
| Headers from environment variables | Leave empty. |
To change the URL or the token later, open AxiTrace under MCP servers: the page Update MCP AxiTrace shows the same fields. Never share a screenshot of it with the token visible.
On the desktop app's Plugins page, the plus button next to the search box opens Add plugin marketplace, which asks for a Git repository. That is a different feature; close it with Cancel and use Add instead.
Option B: ChatGPT in a browser (chatgpt.com)
On the web, ChatGPT connects AxiTrace in developer mode and signs you in with OAuth, so no token is needed. The steps below were checked on chatgpt.com on 24 September 2026. Button names are given as in the English interface; in another language they sit in the same places.
- Turn on developer mode (once). On chatgpt.com, click your name in the bottom left corner, open Settings and choose Security and login. In the Developer mode section, turn on the Developer mode switch (ChatGPT marks it as elevated risk; every AxiTrace tool is read-only except custom event and survey authoring tools, which work only if you allow them). Close the settings and reload the page (Cmd+Shift+R on a Mac, Ctrl+Shift+R on Windows).
- Click Plugins in the left sidebar, then the plus button next to the Search plugins box. From its menu choose Create app.
- The New plugin dialog opens with a drop zone for plugin files. Ignore it and click Create MCP app in its bottom left corner.
- Fill in the form:
Click Create.Field What to enter Icon (optional) Leave empty. Name AxiTraceDescription (optional) Leave empty. Connection Keep Server URL (not Tunnel) and enter https://axitrace.com/api/mcp.Authentication OAuth (preselected). Advanced OAuth settings Leave as they are: ChatGPT reads them from AxiTrace. I understand and want to continue Tick it (it is ChatGPT's general warning about custom servers). - ChatGPT shows Add AxiTrace to ChatGPT. Click Sign in with AxiTrace. A new browser tab opens the AxiTrace page Connect ChatGPT to AxiTrace: choose the workspaces and click Approve. The tab closes and ChatGPT confirms AxiTrace account connected.
- Load the tools (easy to miss). Right after connecting, the app's settings page says there are no tools yet. Scroll to Information and click Refresh; ChatGPT confirms Tools refreshed and lists the AxiTrace tools. Without this step ChatGPT answers without AxiTrace.
- Open a new chat and name the app in your question, for example "Use the AxiTrace app: list my workspaces, then show the 3 top campaigns by revenue in the last 30 days".
To find the app again later: Plugins → the Personal tab → Created by me → AxiTrace; the ... menu → Manage opens its settings (connected account, tools, Refresh). If the plus button does nothing, reload the page: ChatGPT shows it only once developer mode is on.
No Developer mode switch under Security and login? On a Business, Enterprise or Education workspace an admin has to allow it first (Workspace settings → Permissions & roles → Developer mode). OpenAI renames these menus from time to time; its developer mode guide has the current path.
The server marks report tools as read-only and authoring tools as writes. Grant custom_events:write or surveys:write explicitly to enable those operations. Your assistant controls how it presents tool confirmations.
Cursor
Add AxiTrace to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project) with a
personal access token read from an environment variable:
{
"mcpServers": {
"axitrace": {
"url": "https://axitrace.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:AXITRACE_TOKEN}"
}
}
}
}
Set AXITRACE_TOKEN in the environment Cursor starts from, then check that the axitrace
server and its tools are listed in Cursor's MCP settings. Pasting the token directly into
mcp.json also works, but then the file itself is a secret and must never be committed.
Other MCP clients
Any client that speaks the MCP Streamable HTTP transport can connect:
- Endpoint:
POST https://axitrace.com/api/mcp(Streamable HTTP;GETis not offered, the server does not stream on its own). - OAuth 2.1: the first unauthenticated request answers
401with aWWW-Authenticateheader pointing tohttps://axitrace.com/.well-known/oauth-protected-resource/api/mcp. Authorization code with PKCE (S256), client registration through a Client ID Metadata Document or dynamic client registration, andresource=https://axitrace.com/api/mcp. - Or a personal access token as
Authorization: Bearer <token>.
The OAuth details are the same as for the REST API: see REST API v1, Authentication.
Personal access tokens
A personal access token is a credential you create yourself, for Claude Code, Cursor, the ChatGPT desktop app, scripts and anything else that cannot sign in with OAuth. It works for both the MCP server and the REST API.
- Open the account menu and choose AI assistants and API
(
/admin/account/api-access). - Under Create a personal access token, give it a label you will recognise later (for example Cursor on my laptop), keep the scopes and workspaces it needs, and pick how long it lives: 30, 90, 180 or 365 days (90 by default). Click Create token.
- Copy the token right away. It is shown only once. It is a long string (about 900 characters).
Anyone who has the token can read the workspaces it covers until it expires or you revoke it. Keep it in an environment variable or a password manager, never in a repository, a screenshot or a support ticket. If it leaks, revoke it and create a new one.
The MCP tools
Reports read data. Custom event tools require the opt-in custom_events:write scope (see Setting up custom events); survey authoring tools require surveys:write; settings and Product Labels changes require settings:write Fraud Detection actions fraud:write and excluding orders from the statistics transactions:write (see Settings API and MCP and Fraud Actions API and MCP). No tool changes your tracked data, orders, connections or
campaigns (set_order_exclusion only takes orders out of the statistics and keeps them): the one change AxiTrace can make in an ad account is the Google Ads IP exclusion of an address you block while Fraud Detection Auto Exclusion is on. Call
list_workspaces first; the other tools take a workspace_id from it, which may be left
out when the connection covers exactly one workspace.
| Tool | What it returns | Scope | Plan |
|---|---|---|---|
list_workspaces |
The workspaces this connection may read, with id, name, primary domain, timezone, reporting currency, plan and data retention. | workspaces:read | Any paid |
get_overview |
Revenue, orders, average order value, ad spend, ROAS, sessions and conversion rate, an optional comparison with the previous period, and a revenue and spend series. With profit:read, also profit, POAS and cost coverage. | reports:read; profit fields need profit:read | Any paid |
get_traffic_sources |
Revenue, orders and sessions per traffic source, each order credited to one source by the workspace
attribution model (as in Orders & journeys), with spend and ROAS where known, and
per source the visitors who added to cart (carts) and those of them who did not order
afterwards (carts_without_order), counted per source and not summable across rows. Sort
by revenue, orders, sessions, carts or carts without order. With
profit:read, also profit, POAS and cost coverage per source. |
reports:read; profit fields need profit:read | Any paid |
query_analytics |
Any analytics question in one call: metrics such as visitors, orders, revenue, ad spend, ROAS, clicks, units or leads, per day, week, month, channel group, source, medium, campaign, device, country, landing page, ad platform, product or lead status, organic search per search engine, new and returning customers, or who closed the orders organic search opened, with filters, thresholds and the change against a compared period. It answers from the same reports as the dashboard and says which report it used; a combination no report has is refused with what is supported. | reports:read; lead metrics need leads:read | Any paid |
describe_analytics_schema |
The metrics, dimensions, filters and reports query_analytics answers, with their
definitions. |
reports:read | Any paid |
get_traffic |
The Overview → Traffic page: unique visitors, pageviews, purchases and revenue with a daily, hourly or weekly series and the change against the compared period, for all traffic or only some channel groups, sources, mediums, campaigns, devices or countries. Answers questions such as "how did Facebook traffic change over the last 14 days?". | reports:read | Any paid |
list_traffic_filter_values |
The values each filter of get_traffic can take in a period (channel groups, sources,
mediums, campaigns), with their sessions, searchable by name. |
reports:read | Any paid |
get_traffic_breakdown |
The same figures and their change per channel group, source, medium or campaign, to find which part of
the traffic grew or dropped; for example the Facebook campaigns, with sources set to
facebook. |
reports:read | Any paid |
get_channel_overview |
The Overview → Organic search page: sessions, orders and revenue from search engines with the
change against the compared period, the split by Google, Bing and DuckDuckGo, organic revenue under the
three attribution models, which channel closed the orders search opened, the days to purchase, new and
returning customers, countries and devices, top products and landing pages. Product profit needs
profit:read and the organic lead count leads:read. See
Organic search. |
reports:read | Any paid |
get_store_health |
The Store health section of Overview for the whole store: conversion rate, average order value, revenue per session, add to cart rate, engaged session rate, average engagement time, visits before an order, returning customer share, pages per session and sessions, each with the change against the compared period, a series and a state. See Store health. | reports:read | Any paid |
list_campaigns |
Facebook, Google Ads and TikTok campaigns: platform spend, impressions and clicks next to the orders,
revenue, ROAS and CPA AxiTrace attributed, on the same basis for every period so two ranges compare
directly, plus the visitors who added to cart after the campaign's ad click (carts) and
those of them who did not order afterwards (carts_without_order), counted per campaign and
not summable across rows. Sort by spend, revenue, ROAS, orders, carts or carts without order; up to
200 per page and 2,000 per range. With profit:read, also profit, POAS
and cost coverage per campaign, and sorting by profit or POAS. |
reports:read; profit fields need profit:read | Any paid |
list_products |
Products ranked by revenue, units, growth or conversion rate: orders, units, revenue (each product's share of the order revenue after discounts), product views, add-to-carts, view to order rate and the channel that brought most of the revenue, with the change against the compared period or another attribution model. Filter by channel group (for example AI assistants) or search by name or SKU; up to 50 per page. Ad spend is not split by product. With profit:read, also revenue net of refunds. | reports:read; net revenue needs profit:read | Any paid; another attribution model: Business, Custom |
get_product_performance |
One product from list_products: KPIs with unique viewers, the daily series, the view to
cart to order funnel per landing channel, the channels and campaigns that sold it (each campaign's
whole spend shown for context only) and, on the Business and Custom plans, the same product under
the three attribution models. |
reports:read; net revenue needs profit:read | Any paid; three models: Business, Custom |
list_transactions |
Orders, newest first: order id, time, value, attributed source, medium and campaign. Up to 100 per
page and 1,000 per range. With profit:read, also each order's profit and
cost quality. touched_channel_groups, touched_sources,
touched_mediums and touched_campaigns keep the orders those values took part
in, the orders get_campaign_participation counts. excluded is
include (default, excluded orders flagged), exclude (only the orders that
count in reports) or only (only the excluded orders). |
transactions:read; profit fields need profit:read | Any paid |
set_order_exclusion |
Exclude orders (test orders, duplicates, internal or fraudulent purchases) from every report, or
restore them: up to 500 order ids from list_transactions per call. Excluded orders stay
in list_transactions marked as excluded; nothing is deleted. When the statistics
storage cannot record the change, the call changes nothing and returns a retry-in-a-minute error. See
Excluding orders. |
transactions:write | Any paid |
get_campaign_participation |
Which orders a channel group, source, medium or campaign took part in, credited or not: the orders
whose visits in the 365 days before the order it touched as the only, first, middle or last touch, with
their full revenue and the split by role, beside the orders and revenue the attribution model credits
to it, per day and in total. Visits linked to the buyer only by IP address do not count. Take the
values from list_traffic_filter_values. |
reports:read | Any paid |
get_integrations_health |
Status of each ad platform connection, events sent and failed, the last error and the last sync, whether consent signals arrive, and the tracking check of every connected ad platform that imports spend: the template AxiTrace needs on every ad click, campaigns without it and whether paid visits can be tied to a campaign. | integrations:read | Any paid |
get_tracking_setup_status |
The tracking template of one ad platform, where to paste it, and its tracking check: campaigns without the template and whether paid visits can be tied to a campaign. Changes nothing: you paste the template yourself. | integrations:read | Any paid |
list_custom_events |
Your custom event definitions and how often each fired in the last 30 days. | custom_events:read | Any paid |
get_custom_event |
One custom event with its whole configuration: throttle, declared properties, no-code triggers, destinations and conversion defaults. | custom_events:read | Any paid |
create_custom_event |
Creates a custom event: its key and name, no-code triggers (CSS selectors that are clicked, hovered or become visible), declared properties and the connected platforms it is forwarded to. Changes your workspace. | custom_events:write (opt-in) | Pro, Business, Custom |
update_custom_event |
Changes a custom event or switches it on or off. Changes your workspace. | custom_events:write (opt-in) | Pro, Business, Custom |
get_fraud_summary |
Suspicious addresses on paid traffic, the paid sessions they caused, blocked and whitelisted addresses, and the state of automatic exclusion. | fraud:read | Business, Custom |
list_fraud_verdicts |
Flagged addresses (masked) with risk level, score, rules fired and status. Up to 100 per page. | fraud:read | Business, Custom |
get_fraud_timeline |
Google Ads clicks and the invalid clicks Google filtered out, per day, per campaign and in total, beside the IP exclusions AxiTrace added and removed per day, for any range with a compared period. | fraud:read | Business, Custom |
list_refund_claims |
The Google Ads refund claims of the workspace with status, period, clicks, estimated cost, case number and credit. Filter by status and period. Read only. | fraud:read | Business, Custom |
get_refund_claim |
One refund claim: its history, the evidence summary with the top addresses (masked) and the texts for Google's invalid clicks form (addresses masked). Read only. | fraud:read | Business, Custom |
get_click_tracker_status |
The Google Ads tracking template of the click tracker for your workspace and which campaigns already use it. Read only. Listed once the click tracker setup is switched on. | fraud:read | Any paid |
get_click_economics |
Google Ads click economics: how many paid clicks your buyers need before their first purchase, the click limit AxiTrace recommends and what every limit would save and cost, plus the buyers who clicked at least a given number of ads before buying, against the rest, with their orders. Read only. | fraud:read | Any paid |
get_order_journey |
The visits and ad clicks that led to one order, oldest first: time, channel, UTM source, medium, campaign and id, Google Ads and Meta campaign ids, click ids with their values (gclid, fbclid, ttclid, msclkid and others), landing URL and referrer, and which visit first click, last click and data-driven attribution credited. Up to the 100 most recent visits before the order. | journeys:read | Any paid |
get_conversion_paths |
The most common sequences of channels before a purchase (for example Meta ad, then Google search, then purchase) with orders, share, revenue, days to convert and visits per path, plus a first-to-last touch matrix. Each order counts the buyer's visits in the 365 days before it. | journeys:read | Any paid |
get_ai_credits |
The AI credit balance of your account: available, reserved and owed credits, credits by source, credits expiring within 14 days, credits used this billing period, the monthly allowance, the next grant date and the newest 20 credit activity rows. Read only; credits are bought in the admin panel. See AI credits. | ai_credits:read | Any paid |
get_workspace_settings |
The workspace settings by section: general, tracking, privacy, collection, attribution, fraud, leads and Product Labels. See Settings API and MCP. | settings:read | Any paid |
update_collection_settings, update_attribution_settings,
update_general_settings, update_lead_source_settings |
Change dataLayer tracking, Do Not Track and cookie consent; the attribution model and IP fallback attribution; the reporting timezone; the sources that count as leads. Each answer shows the setting before and after. | settings:write | Any paid |
save_product_label_rules, apply_product_label_template,
refresh_product_labels |
Save a Product Labels rule set, set one up from a starter template, or recalculate every label now. | settings:write | Any paid with Product Labels |
update_fraud_settings, block_ip, unblock_ip,
whitelist_ip, remove_ip_whitelist |
Change the Fraud Detection settings and block, unblock or whitelist an IP address. See Fraud Actions API and MCP. | fraud:write | Business, Custom |
list_custom_channels, list_custom_channel_imports |
The custom paid channels (comparison sites and affiliate networks whose costs you import) and the cost imports of one channel. See Custom paid channels. | settings:read | Any paid |
get_custom_channel_report, preview_custom_channel_rules |
One custom channel's sessions, orders, revenue, imported spend and ROAS of the days with costs; what draft rules would match, without saving anything. | reports:read | Any paid |
create_custom_channel, update_custom_channel,
import_custom_channel_spend, undo_custom_channel_import |
Set up or change a custom channel, import its costs (an amount for a date range or cost rows; previews first and writes only with preview false) and undo an import. | settings:write | Any paid |
query_ads_live |
A live, read-only query of your connected Meta, Google Ads or TikTok account: any fields, breakdowns, levels and ranges the platform API allows. See Live Ad Queries API and MCP. | ads_live:read | Any paid |
get_assistant_memory, set_assistant_memory |
The notes the Axi assistant keeps about the workspace;
setting one needs settings:write. See Axi Memory API and MCP. |
settings:read | Any paid |
list_advisor_reports, get_advisor_report, get_advisor_schedule, update_advisor_schedule, request_advisor_analysis, submit_advisor_feedback |
The AI Advisor reports your team sees, how often they arrive, a new analysis (paid in AI credits) and your verdict on a report;
changing the schedule, starting an analysis and feedback need settings:write. See AI Advisor API and MCP. |
reports:read | Any paid |
get_click_cohorts |
The orders that followed the clicks of one campaign (or the visits of one source) on each day, counted by click date: every order of the visitors who clicked, and the orders your attribution model credits to that day. Shows delayed sales after a spend spike; days still maturing are marked provisional. Read only. | reports:read | Any paid |
list_recommendations |
The recommendations Axi and the AI Advisor gave your workspace, newest first: what was advised, on which campaign or entity, how firmly, with what budget change, and whether it is still open. No conversation content. Read only. | reports:read | Any paid |
search_docs |
Searches this documentation, the API reference and the developer guide. Reads no workspace data. See Docs Search API and MCP. | none | Any |
Date ranges. Reports take a preset (last_7_days, last_14_days,
last_30_days, last_90_days, last_180_days; the default is
last_30_days) or a custom from and to date at most 180 days apart. The fraud
tools accept only last_7_days or last_30_days. A preset works like the same preset on the
dashboard: last_7_days runs from the same weekday one week ago up to and including today, so today's
figures are still partial. Dates follow the workspace's reporting timezone, and money is always an amount with its
currency.
Profit and POAS. The profit:read scope is never granted by
default. On the consent page it is an extra box you must tick, and on the personal access token form it starts
unticked; a connection or token made before it existed does not have it, so reconnect or create a new token to
add it. Even with the scope, the profit fields appear only when profit tracking is on for the workspace and the
workspace owner has not hidden profit from your account; otherwise they are left out of the answer entirely.
Product and line costs are never sent to an assistant.
Add-to-cart figures. If carts and carts_without_order cannot be read for
a request, the traffic source or campaign report still answers: both fields are empty (null) and
carts_unavailable_reason says why: the workspace is busy, the read failed, the period has too many
ad tracking parameter combinations (pick a shorter period), or, for campaigns, the figures of the period are still
being prepared in the background (ask again later) or the period starts more than 180 days ago (campaign
add-to-carts cover the last 180 days; pick a later period).
When a tool cannot answer (a missing scope, a Free workspace, a range that is too long), the assistant receives one sentence that says what to do next, for example to reconnect or to pick another range.
Setting up custom events
An assistant can create custom events for you, for example "Track clicks on the size guide button as a custom event and send it to GA4". It uses the same rules as the Custom Events page of the dashboard and shows up there like any other event.
- You have to allow it. The
custom_events:writescope is an extra box on the consent page that starts unticked, and on the personal access token form it starts unticked too. A connection made without it, or before it existed, stays read-only: reconnect and tick it to add it. - Your role must allow editing the workspace settings (the owner, or a team member with edit rights). Demo workspaces cannot be changed.
- Your plan sets the limit. Custom events are included in the Pro, Business and Custom plans, each with a limit of active custom events.
- Only connected platforms can be destinations. Connect a platform in AxiTrace first.
- Deleting stays in the dashboard. An assistant can switch an event off, but not delete it, because a deleted key can never be used again.
Assistants ask you before they call a tool that changes something. Check the key, the CSS selector and the destinations before you confirm, then try the trigger on your store with the selector tester.
Surveys from your AI assistant
With the opt-in surveys:read scope, use list_surveys, get_survey, list_survey_templates, get_survey_template and get_survey_results. Results include visitor-written text, so review what you share. With surveys:write, create/edit drafts and templates, add/edit/remove questions, set every builder field, preview and activate/pause/end surveys, configure rewards and import coupon pools.
Start with: Use AxiTrace to create a draft survey for all product pages, asking what information would help visitors decide. Show me the questions and a preview before activating it. The Survey API and MCP reference lists all 23 survey tools, fields and examples. After the first response the content is locked; duplicate the survey to revise it. Both survey scopes start unticked. Reconnect, grant them and refresh tools to enable an existing assistant.
Leads from your AI assistant
With the opt-in leads:read scope, use list_leads (every filter of the Leads page), get_lead (one lead with its products, attribution, conversion and notes), get_lead_kpis, list_lead_statuses and get_lead_sources. Contact details, the inquiry message and the text of the team's notes need the separate opt-in lead_contacts:read scope and a role that may see personal data. With leads:write, the assistant can add notes, change a lead's status, exclude or restore a lead, create an order from a lead and link an existing order.
Start with: Which leads from Facebook this week have not converted yet? or Draft an e-mail to this lead based on their inquiry and the products they asked about. The Leads API and MCP reference lists all 10 lead tools, filters and examples. The three lead scopes start unticked. Reconnect, grant them and refresh tools to enable an existing assistant.
What data is and is not exposed
An assistant can read:
- Only the workspaces you selected when connecting, and only with the scopes shown on the consent page.
- Report figures: KPIs, traffic sources, campaigns, orders with their value and attributed source, integration health, custom event definitions and, on Business and Custom plans, fraud results.
- With the
profit:readscope, profit, POAS (Profit on Ad Spend) and cost coverage per report, source, campaign and order, if profit tracking is on and the owner has not hidden it from you. - With the
journeys:readscope, the visits and ad clicks behind each order: times, channels, UTM parameters, click ids with their values, landing URLs and referrers.
An assistant never receives:
- Structured buyer contact details are not exposed. With
surveys:read, visitor-written answers are shared as entered and may contain personal information. The one exception you choose yourself: withlead_contacts:read, the contact details your leads entered (e-mail, phone, name, inquiry message) and the text of your team's lead notes, for a role that may see personal data. - Visitor IP addresses, visitor or session identifiers, except those of a lead under
lead_contacts:read. Fraud results show addresses masked to their network (IPv4 /24, IPv6 /48). - Product costs, line costs or the cost settings of profit tracking.
- Stored credentials: no ad platform tokens, API keys or endpoint secrets. Explicit reward-secret rotation returns the newly generated secret once to its authorized caller.
- Any way to change your tracked data, existing orders, connections or campaigns. Write tools manage custom events, surveys, leads, workspace settings, Product Labels rules and Fraud Detection only with the scopes you tick yourself;
create_lead_orderrecords a new order for a lead and forwards it to ad platforms only if you ask for it, and a blocked IP address reaches your Google Ads account as an IP exclusion only while Fraud Detection Auto Exclusion is on.
Every text value that comes from your store or ad accounts (source, campaign and event names, click ids, landing URLs, workspace names, order ids) can contain any text; AxiTrace tells the assistant to treat it as data, never as instructions. E-mail addresses found in these report texts, for example in a landing URL, are removed before the answer leaves AxiTrace. Survey content and visitor-written answers are returned as entered.
When you connect an assistant, the reports it fetches are handled by that AI provider under your own agreement with them. AxiTrace does not send your data to any AI provider on its own initiative.
Plans
- Pro, Business and Custom (plus existing legacy Starter): report tools other than the fraud tools. Custom event and survey authoring and survey results require Pro, Business or Custom.
- Business and Custom: also the fraud tools
get_fraud_summary,list_fraud_verdicts,get_fraud_timeline,list_refund_claimsandget_refund_claim. - Free: no API access. A Free workspace still appears in
list_workspacesof an existing connection withplan_requiredset, and its reports are refused until the plan is upgraded.
Rate limits
| Limit | Applies to | Allowance |
|---|---|---|
| Per connection or token | Every call with one credential | 120 per minute and 5,000 per day |
| Per workspace | All calls for one workspace, from every connection together | 120 per minute |
| Live reports per workspace | Reports read live from the analytics database rather than from a prepared snapshot, for example custom ranges, orders and fraud | 20 per minute |
When a limit is reached, the assistant is told how many seconds to wait. Normal conversations stay far below these numbers. See REST API v1, Rate limits for the headers.
Security e-mails
AxiTrace e-mails you every time:
- a new application is connected to your account, and
- a new personal access token is created.
The e-mail names the application or token, the workspaces it can read, when it happened and from which IP address and browser, and links to the AI assistants and API page. If it was not you, revoke the access there right away and change your password.
Revoking access
Open AI assistants and API in the account menu
(/admin/account/api-access). It lists your connected applications and
personal access tokens, with the workspaces and scopes of each, when it was last used and its recent calls.
Click Revoke next to one: it stops working immediately, and the application gets an authentication
error on its next call.
Removing the connector inside Claude, ChatGPT or Cursor does not necessarily revoke it on the AxiTrace side, so revoke it in AxiTrace too.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| The assistant cannot reach the server, or gets a plain "403 Forbidden" | The URL is not exactly https://axitrace.com/api/mcp, for example it uses www..
Remove the connector and add it again with the exact URL. |
| ChatGPT says the account is connected, but answers without AxiTrace or lists no tools | ChatGPT has not loaded the tools yet. Open Plugins → Personal → AxiTrace → ... → Manage, click Refresh under Information, then ask again in a new chat and name the AxiTrace app. |
| In the ChatGPT desktop app, the plus button on the Plugins page asks for a Git repository | That is Add plugin marketplace, a different feature. Use Add (top right) as in Option A, or set it up on chatgpt.com as in Option B. |
| Claude or ChatGPT stays on "not connected" after you approved | Open the connector again and click Connect (Claude) or Connect another account (ChatGPT). If the AxiTrace page says the application is not allowed to connect, write to info@axitrace.com with the time it happened. |
| The AxiTrace page says the API is included in paid plans | None of your workspaces is on a paid plan. Upgrade in Billing, then connect again. |
A workspace is missing from list_workspaces |
It was created after you connected, or you did not select it. Connect again and select it. |
| A tool answers that the plan does not include the data | The workspace is on the Free plan, or it is a fraud tool on legacy Starter or Pro. |
| A tool answers that a scope is missing | The connection or token was created without that scope. Reconnect, or create a new token with it. |
| It worked before and now asks to sign in again | The connection reached 180 days, the token expired, or it was revoked. Connect again or create a new token. |
| A tool answers to retry in a few seconds | A rate limit was reached or the workspace is busy with other live reports. Wait and ask again. |
Still stuck? Write to info@axitrace.com with the name of your assistant and the time of the failing call. Never include your token.