Docs

AI visibility API quickstart

Mint a key, confirm it, make a real request. Five minutes end to end, and nothing to install unless you want the CLI.

Card required, nothing charged for 7 days

Before you start

You need an AIMentionTracker account with at least one brand configured and collecting, and the Owner or Admin role, because those are the only roles that may mint a key.

The API reads what has already been collected. It does not trigger collection, so a brand that finished onboarding an hour ago will have fewer answers than a rate can be quoted from. See how to read our numbers.

Four steps

  1. 1

    Mint a key

    Go to API keys in the app and create one. It starts amt_live_and is shown once. Copy it somewhere safe before you close the dialog.

  2. 2

    Put it in the environment

    Never in source control, never in front-end code. It reads every brand the key covers.

  3. 3

    Confirm it with /me

    One request that proves the key works and tells you the rules in force.

  4. 4

    Ask a real question

    Per-engine visibility over a window you choose, or the answers behind it.

Step 1 and 2: the key

The API keys screen in the AIMentionTracker app, listing existing organisation keys with their scopes. No key value is shown; keys are displayed once at creation and stored hashed.
Mint a key yourself, in seconds. The value is shown once and stored as a hash — which is why there is no key visible here.
shell
export AMT_API_KEY=amt_live_...

Keys belong to the organisation, not to you. They survive the person who made them leaving, and a request is not re-checked against that person's role — demoting an admin must not take production down at 3am. Revoke a key when someone leaves; deleting the user does not.

Step 3: confirm the key with /me

curl
curl -H "X-API-Key: $AMT_API_KEY" \
  https://app.aimentiontracker.ai/api/v1/me

A 200 means the key is good. The response carries your plan, how many prompts it includes, whether the key is pinned to a single brand, your current rate-limit position, and a reporting_rules block with the live thresholds. Read those rather than hardcoding 5: if we change the floor, your client should follow without a release.

Anything else means something specific. The full list is on errors and rate limits.

Step 4: your first real request

Start with visibility over the last 30 days. If your organisation has one brand, this is all it takes.

curl
curl -H "X-API-Key: $AMT_API_KEY" \
  "https://app.aimentiontracker.ai/api/v1/visibility?days=30"

If you have more than one brand you will get 400 brand_required. That is the API refusing to guess. Call /brands, take the id, pass it on every request after that. Full detail on working with multiple brands.

curl
curl -H "X-API-Key: $AMT_API_KEY" \
  "https://app.aimentiontracker.ai/api/v1/brands"

curl -H "X-API-Key: $AMT_API_KEY" \
  "https://app.aimentiontracker.ai/api/v1/visibility?days=30&brand=<id>"

Before you render any of it

Three rules you must not break

These are not style preferences. Breaking them produces a confidently wrong report in your customer's name.

  1. 1

    A null rate means "not enough answers yet". It is NOT zero.

    Rates come back as {present, responses, rate, min_sample}. When rate is null, the sample is below the floor. Say “3 of 4 answers, too few to quote a percentage”. Never render it as 0%, and never let it into an average. Reporting “0% visibility” for a brand that was named in 3 of 4 answers is the single most damaging thing you can do with this data.

  2. 2

    Never average the engines.

    There is no single visibility score and you must not compute one. ChatGPT, Perplexity and Google AI Overviews are different surfaces that disagree, so a mean describes nothing real. Report per engine. If the user insists on one number, give them the pooled counts (present and responses summed) and say plainly what you did.

  3. 3

    An empty alerts list does NOT mean nothing changed.

    A finding is raised only when both comparison windows carry enough answers AND the move is larger than its own margin of error. On a small plan that excludes most real movement. Say “no change large enough to distinguish from noise at this sample size”. GET /me shows the thresholds in force.

If you would rather not write HTTP

The CLI does the same thing from a terminal or a CI job, with no code at all.

shell
npx @aimentiontracker/cli whoami
npx @aimentiontracker/cli visibility --days 30

And if you are working inside an AI assistant, the MCP server gives it the same six reads as tools, with no install and no key handling in the conversation.

Quickstart questions

Answered from the implementation.

Where do I get an AIMentionTracker API key?
In the app, under API keys. Owner and Admin roles only. The key is displayed once and stored as a SHA-256 hash, so we cannot show it to you again or recover it. If you lose it, revoke it and mint another.
Should I call /me first?
Yes, every time you build something new. It confirms the key works, tells you the plan and how many prompts it covers, says whether the key is pinned to one brand, and returns the live reporting thresholds in a reporting_rules block so your client can state them accurately instead of hardcoding them.
Why did my request return 400 brand_required?
Your organisation has more than one brand, so the API refuses to guess which one you meant. Call GET /brands, take the id you want, and pass it as ?brand=<id>. This is deliberate: a silent default would file one client's numbers under another's with nothing in the response saying so.
Can I use the API key in a browser?
No. It is an organisation credential with read access to every brand it covers, so it belongs on a server or in a CI secret. Putting it in front-end code hands your competitors' visibility data to anyone who opens devtools.
Do I need an SDK?
No. It is plain HTTP with one header, so curl, fetch or whatever HTTP client you already have is enough. The CLI and the MCP server exist for terminals and for AI assistants, not because the API is hard to call.

7-day trial

You need data before you can read it

The API returns what has already been collected. Add your brand and the prompts your buyers type, and the first answers land within minutes.

Card required, nothing charged for 7 days.

On every plan

  • Every answer stored in full, with its citations.
  • Every rate shown with the number of checks behind it.
  • Cited-but-not-named reported as its own state.