Pull your figures with the API
A read-only API to pull your measurement data into your own dashboards or scripts. Available in beta on the Bureau and Enterprise plan. GET only, only your own organization.
Base URL
All endpoints hang under one host. Responses are JSON.
https://api.geony.aiAuthentication
You create an API key in the organization settings in the app (only an organization admin can do that). You see the full key exactly once, so keep it safe; if you lose it, you create a new one. Keys begin with geony_ so a leaked key is recognizable to secret scanners.
Send the key as a Bearer token in the Authorization header:
Authorization: Bearer geony_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxThe key is strictly read-only: any method other than GET returns a 403. The data is limited to the organization of the key; a workspace-limited key sees only its own workspaces.
A first request
Start with your workspaces; from there you get the ids that the other endpoints need.
curl https://api.geony.ai/v1/workspaces \
-H "Authorization: Bearer $GEONY_API_KEY"Example response:
[
{
"id": "ws_3f2a…",
"name": "Acme Nederland",
"slug": "acme-nederland"
}
]Core endpoints
| Method | Path | What it returns |
|---|---|---|
| GET | /v1/workspaces | Your brand workspaces. |
| GET | /v1/workspaces/:workspaceId/projects | The projects within a workspace, with visibility score and last measurement. |
| GET | /v1/projects/:projectId | One project with its settings. |
| GET | /v1/projects/:projectId/overview | The visibility figures per entity over the most recent period. |
| GET | /v1/projects/:projectId/runs | The latest measurement rounds with their status and credits used. |
Example: projects in a workspace
curl https://api.geony.ai/v1/workspaces/ws_3f2a.../projects \
-H "Authorization: Bearer $GEONY_API_KEY"Example response:
[
{
"id": "prj_9b1c…",
"name": "Acme.nl",
"domain": "acme.nl",
"archivedAt": null,
"visibilityScoreBp": 3600,
"lastRunAt": "2026-08-01T06:00:00.000Z"
}
]Fields ending in Bp are basis points: 3600 means 36%. This keeps percentages whole numbers, without rounding errors.
Example: the visibility overview
With the optional parameter period (day, week or month) you choose the aggregation.
curl "https://api.geony.ai/v1/projects/prj_9b1c.../overview?period=week" \
-H "Authorization: Bearer $GEONY_API_KEY"Example response:
{
"periodStart": "2026-07-27T00:00:00.000Z",
"entities": [
{
"entityId": "ent_1a2b…",
"entityName": "Acme",
"entityType": "brand",
"isPrimary": true,
"observationsN": 180,
"presentN": 65,
"presenceRateBp": 3600,
"presenceCiLowBp": 2600,
"presenceCiHighBp": 4700,
"visibilityScoreBp": 3400,
"sovBp": 2800,
"citationShareBp": 1500
}
]
}The fields presenceCiLowBp and presenceCiHighBp are the lower and upper bound of the 95% confidence interval, also in basis points. From the example: 36% visible, interval 26 to 47%.
More read-only endpoints
Under the same authentication and tenant model, these GETs are available too. They work on the same projects:
| GET | /v1/projects/:projectId/trend | The trend points per entity over time. |
| GET | /v1/projects/:projectId/prompts | The measured questions with their results per assistant. |
| GET | /v1/projects/:projectId/sources | The cited sources that feed the answers. |
| GET | /v1/projects/:projectId/cited-pages | Cited sources at URL level. |
| GET | /v1/projects/:projectId/actions | The work list: recommended actions with their status. |
| GET | /v1/projects/:projectId/alerts | The flagged changes for this project. |
MCP server for AI assistants
The same read-only data is also available as an MCP server (Model Context Protocol), so an AI assistant like Claude, Cursor or ChatGPT can query your measurement data directly without you writing scripts yourself. The server is a thin, read-only layer over this API and uses the same geony_ key.
It offers tools for your workspaces and projects, and per project for the visibility overview, the questions, the sources, the cited pages, sentiment, the work list, notifications, the trend and the AI Readiness. Connecting is done via two environment variables:
{
"mcpServers": {
"geony": {
"command": "geony-mcp",
"env": {
"GEONY_API_BASE": "https://api.geony.ai",
"GEONY_API_KEY": "geony_..."
}
}
}
}Because the key is read-only, the assistant cannot change anything: it queries the data and reasons about it. Beta on the Bureau and Enterprise plan, just like the API.
Errors
The API uses ordinary HTTP status codes and a compact error shape.
| Code | Meaning |
|---|---|
| 401 | No or invalid key. |
| 403 | A non-GET method, or insufficient permissions. |
| 404 | Unknown id, or a resource outside your organization (indistinguishable, by design). |
{ "error": "forbidden" }Beta, so in motion
The API is new and can still grow: higher limits and new endpoints are on the roadmap. Is something not working as expected, or are you missing an endpoint? Let us know.
Within a day you'll know whether AI mentions or ignores your brand
The first measurement runs on your own prompts, across three assistants, with real figures. No demo data, no sales call first.
Prefer to talk it over first? Book a call