Data API · Read-only · Included with the Dashboard

Your AI visibility data, in the tools you already use

Every Signal Dashboard subscription includes a read-only Data API: one keyed URL that returns your weekly AI visibility history as CSV or JSON. Pull it into Google Sheets, Looker Studio, Power BI, Tableau, Zapier, or your own scripts. No extra charge, no metered billing, no rate plans. Your data is yours.

The endpoint

GET https://api.otwmotion.com/api/feed?key=YOUR_FEED_KEY&format=csv GET https://api.otwmotion.com/api/feed?key=YOUR_FEED_KEY&format=json

Response fields

FieldTypeMeaning
dateYYYY-MM-DDReport date
ai_visibility_scorenumberHow often AI engines named your business in that report's answers
technical_scorenumberTechnical AI-readiness of your site (crawlability, structure)
total_scorenumberCombined Signal Score
competitors_namednumberHow many competitors AI named in your prompts that week
top_competitorstringThe competitor AI named most

JSON responses wrap the rows as { "business": "Your Business", "data": [ ...rows ] }.

Recipes

Google Sheets (live-updating, one cell):

=IMPORTDATA("https://api.otwmotion.com/api/feed?key=YOUR_FEED_KEY")

curl / scripts:

curl -s "https://api.otwmotion.com/api/feed?key=YOUR_FEED_KEY&format=json" | jq '.data[-1]' # latest week's scores as JSON

Looker Studio: Add data source → File upload or the community CSV/URL connector → paste the CSV URL. Power BI: Get Data → Web → paste the CSV URL. Tableau: Connect → To a Server → Web Data Connector, or refresh a CSV pulled by schedule. Zapier: Schedule trigger → Webhooks by Zapier (GET the JSON URL) → send new rows anywhere.

Errors

StatusMeaningFix
400Missing keyAdd ?key=...
404Invalid keyCopy the URL from your Dashboard's Integrations panel
403No active subscriptionThe feed is a Signal Dashboard feature
Fair use & security. The feed is cached for 5 minutes, so polling more often than that returns the same data. Treat your feed key like a password: anyone holding it can read your visibility history. If a key is exposed, contact support@otwmotion.com and we'll rotate it.

The full API: programmatic report runs

Trigger Signal Reports from your own stack: POST a website, get back the full evidence-linked measurement. Pricing is prepaid run credits: you buy credits up front, each API-triggered report consumes one, and the API simply stops when credits run out. No metered surprises, no end-of-month invoice, no card on file for usage. Every run includes all available AI engines (ChatGPT, Gemini, Claude, Perplexity).

PackCreditsPricePer run
Starter10 runs$290 USD$29
Growth50 runs$1,150 USD$23
Scale200 runs$3,600 USD$18
Buy credits (self-serve). Pay by card via Stripe; credits and your API key appear in your account seconds after checkout. Credits never expire.

How to run a report via the API

curl -X POST https://api.otwmotion.com/api/v1/reports \ -H "Authorization: Bearer otw_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"website_url": "https://example.com"}' # 202 -> { "run_id": "...", "status_url": "...", "credits_remaining": 9 } curl https://api.otwmotion.com/api/v1/reports/RUN_ID \ -H "Authorization: Bearer otw_YOUR_API_KEY" # -> { "status": "running" | "complete" | "failed", "report_json_url": "...", "report_page_url": "..." }

Your API key lives in your account after the first purchase. A run typically completes in 1 to 3 minutes; poll the status URL. Each run consumes one credit and includes every available engine.

A human, one email away. Stuck, confused, or hit an edge case? Email melinda@otwmotion.com with your account email and (if you have one) the run_id. Real person, typically same-day reply. Every API error response also includes this address.