The dashboard is one way to read your AI visibility. It is not always the right one. If you want these numbers in your data warehouse, a BI tool, an internal dashboard, or a nightly job that flags regressions, you need them as data, not as a screen. The Data API and Developer Console exist for exactly that.
The Data API
Every endpoint lives under one base URL and authenticates with a single header. From there you can read the same things the dashboard shows: a domain’s analytics, its citations and sources, competitors, opportunities, tracked prompts, and generated reports. On Business plans the write endpoints let you manage prompts programmatically too.

It behaves the way you would want a modern API to behave. Errors come back as problem+json so a failure is machine-readable, not a guessing game. Writes accept an idempotency key so a retried request never double-acts. Every response carries rate-limit headers and a request id you can quote in a support thread. And test keys return fixture responses from a sandbox, so you can build and debug against a stable shape without spending quota or touching production data.
Keys and credits in the Console
You manage all of this from the Developer Console. Mint a live key or a test key, watch usage, and top up prepaid credits when you need more headroom. Live keys (sk_live_) touch production data and count against your plan’s rate limit; test keys (sk_test_) never consume your quota. Read access is available on Professional; the write endpoints unlock on Business.
Docs and webhooks
The reference at docs.surfacedby.com is generated from the live OpenAPI spec, so it never drifts from what the API actually returns. There is a quickstart, an authentication guide, and a page per endpoint.

For changes you would rather not poll for, webhooks push events as they happen, so a scan completing or a competitor passing you can trigger something in your own stack without a cron job hammering the API.
API or MCP?
Two ways to read the same data, for two different consumers. The Data API is for systems you build: pipelines, dashboards, jobs. If instead you want an AI assistant to answer questions from this data in plain language, the MCP Intelligence Server wraps the same read surface for Claude, ChatGPT, and Cursor. Same numbers underneath, including everything on your dashboard; pick the interface that fits the job.
A note on timing
SurfacedBy changes often. We build from a mix of customer requests, our own research, and what developers need to integrate cleanly, so the endpoints and console here reflect how the platform looked at launch. The endpoint set has grown since, and because the docs are generated from the spec, they stay current as it does. Start at docs.surfacedby.com.



