Build on your AI-visibility data
A read-only REST API for everything you track: AI Presence, prompts, competitors, content gaps, and performance, per brand and per engine. Token-authenticated, metered per plan, with a hosted OpenAPI reference and a flat feed for Power BI, Tableau, and Looker Studio.
What you can read
Eight endpoints that mirror the dashboards. Each returns plain JSON and takes a brand ID from the first one.
List your brands
Every brand your token can see, with the IDs the other endpoints take.
GET /public/brandsAI Presence
Your presence in AI answers per engine for a brand, the headline number you move.
GET /public/brands/:id/visibilityTracked queries
Every question you track for a brand and how visible you are in the answer to each.
GET /public/brands/:id/queriesOne prompt, in full
For a single query: the engines, the citations behind the answer, and who else was named.
GET /public/brands/:id/queries/:queryIdCompetitor share
Who else makes the shortlist for your questions, and how much of the answer they own.
GET /public/brands/:id/competitorsRanked content gaps
Where a small change is most likely to move your visibility, ordered by impact.
GET /public/brands/:id/opportunitiesTrend & movement
How your visibility has moved over time and what changed most recently.
GET /public/brands/:id/performanceFlat table for BI
One flat row per tracked prompt, shaped for Power BI, Tableau, and Looker Studio.
GET /reporting/lookerAuthenticate and make your first call
Four steps from zero to JSON. No SDK required, any HTTP client works.
Mint a token
In the app, open Settings → Connections → API access and create a token. Copy it once; only a hash is stored, so it is never shown again.
Send it as a Bearer
Add an Authorization: Bearer <token> header to every request. No cookie or session is needed, so a server-side job or connector works out of the box.
Call an endpoint
Every route is a plain GET that returns JSON. Start with /public/brands to get a brand ID, then read its visibility, queries, or performance.
Stay under quota
Each request counts against your plan’s monthly API allowance. Over the cap the API returns 429; the current usage is on your token in Settings.
List your brands, then read one brand’s AI Presence:
# 1 · get a brand ID curl -s https://api.ansyra.com/v1/public/brands \ -H "Authorization: Bearer $ANSYRA_TOKEN" # 2 · read its visibility (AI Presence per engine) curl -s https://api.ansyra.com/v1/public/brands/$BRAND_ID/visibility \ -H "Authorization: Bearer $ANSYRA_TOKEN"
Every endpoint, in one place
The full, interactive reference is generated from the live API, so it can never drift from what the service returns. Try any call in the browser, or pull the OpenAPI spec into your codegen.
| Method | Path | Returns |
|---|---|---|
GET | /public/brands | Your brands and their IDs |
GET | /public/brands/{brandId}/visibility | AI Presence per engine |
GET | /public/brands/{brandId}/queries | Tracked prompts + visibility each |
GET | /public/brands/{brandId}/queries/{queryId} | One prompt: engines, citations, rivals |
GET | /public/brands/{brandId}/competitors | Competitor share for the brand |
GET | /public/brands/{brandId}/opportunities | Ranked content gaps (visibility opportunities) |
GET | /public/brands/{brandId}/performance | Trend + recent movement |
GET | /reporting/looker?brandId= | Flat per-prompt table for BI tools |
Hosted OpenAPI reference
An interactive reference with request and response schemas, an Authorize button, and one-click “Try it out”. Base URL https://api.ansyra.com/v1.
Pull it into Power BI, Tableau & Looker
The reporting endpoint returns one flat row per tracked prompt, exactly the shape BI tools want. Point a web data source at it with your token and refresh on a schedule.
Web connector
Get data → Web, point it at the reporting URL, and add the Authorization header. Set a scheduled refresh and your report stays current.
Web data connector
Feed the same flat JSON into Tableau’s web data connector to build visibility dashboards next to the rest of your marketing data.
Community connector
The endpoint is shaped for a Looker Studio community connector, so a per-prompt table drops straight into a report.
Anything that speaks HTTP
It is a plain authenticated GET returning JSON, so a spreadsheet script or a nightly cron export works just as well.
# flat per-prompt table for BI, optionally scoped to one brand curl -s "https://api.ansyra.com/v1/reporting/looker?brandId=$BRAND_ID&format=csv" \ -H "Authorization: Bearer $ANSYRA_TOKEN" -o ansyra-visibility.csv
Drop &format=csv for a downloadable RFC 4180 table (the brand on every row), or omit it for JSON. Point a scheduled refresh at the URL with the same Authorization header.
Scopes, quota & safety
read and actions
Every REST endpoint here needs the token’s read scope. Write automation over MCP needs a separate actions scope, so a reporting token can never trigger a scan.
Metered per month
Requests count against your plan’s monthly API allowance. Over the cap the API returns HTTP 429, and your live usage is on the token in Settings.
Scoped to your data
A token only ever reads the brands it is scoped to. Brand-pinned tokens are 403’d on other brands; nothing crosses a tenant boundary.
Rotate or revoke anytime
Roll a token’s secret in place without changing integrations, or revoke it outright. Secrets are stored only as hashes and shown once.
Frequently asked
Which plans include API access?
Is the API read-only?
actions scope, so automation is opt-in and never accidental.What are the rate limits?
Do the numbers match what I see in the app?
Can one token read every brand?
Get a token and start building
Start a free trial to explore the product, then mint a token in Settings on an API-enabled plan (Agency and up) and read your AI-visibility data over a clean REST API.