KlientBrain AI VisibilityDocs

API reference

Keys tied to a project, every address, paging, the OpenAPI file and the Postman collection.

Everything you need to call the API from your own scripts and tools. The API is read only: it can look at your projects, but it cannot change anything. For the basics, see API access. For error codes and request limits, see API errors and limits.

Download the description

  • OpenAPI 3.1: https://app.klientbrain.ai/api/v1/openapi.json. Open it in any API tool to try every address, or generate a client library from it.
  • Postman collection: https://app.klientbrain.ai/api/v1/postman.json. Import it into Postman, then set the apiKey and projectId variables.

Neither file needs a key.

API keys

Open Settings, then API keys, and choose Generate API key. Only a workspace Admin can see this tab.

  • Access: choose Whole workspace to read every project, or pick one project. A key tied to one project can read that project and nothing else. Anything else answers 404, as if the project did not exist. Tie a key to one project when you hand it to a single tool or a single client.
  • Expiration: Never, 30 days, 60 days or 90 days. An expired key answers 401 key_expired. Generate a new one and swap it in.
  • Read only: a key is read only unless you choose Read and write under Permissions when you make it. That choice appears only where your workspace has it switched on; see Change projects through the API.
  • Last used: the key table shows when each key last made a request.
  • Shown once: copy the key straight away. It is not shown again. If you lose it, revoke it and generate a new one.
  • Revoke: revoking a key stops it working at once. It stays in the list, marked Revoked.

Send the key as Authorization: Bearer YOUR_KEY. Nothing else is read: not a query string, not another header.

Addresses

All addresses start with /api/v1 and are GET. Start with /api/v1/projects for the project ids.

AddressWhat it returns
/projectsYour projects
/projects/{id}One project
/projects/{id}/overviewVisibility, share of voice, citation rate, position and sentiment, with ranges, and results by engine
/projects/{id}/competitorsEvery tracked brand's figures
/projects/{id}/promptsEach tracked prompt with its latest result on every engine
/projects/{id}/answersWhat AI says about the brand: sentiment, themes and open inaccuracies
/projects/{id}/sourcesThe websites AI answers cite
/projects/{id}/fixesThe fix list, best first
/projects/{id}/reports/{metric}One metric over time, for all engines and each engine. Metrics: visibility, share-of-voice, citation-rate, sentiment, position
/projects/{id}/responsesThe stored AI answers, newest first, with the full text, the brands named, the citations and the searches the engine ran. Add question_id for one prompt
/projects/{id}/responses/{responseId}One stored AI answer
/projects/{id}/sources/urlsEvery page AI answers cite, most cited first
/projects/{id}/traffic/botsVisits by AI crawlers, from the server log counts uploaded for the project. Add days (7, 30 or 90)

The figures are the ones the app shows. Rates are percentages from 0 to 100, and position 1 means named first.

Add from and to (as 2026-10-01) and engines (a comma separated list of engine ids) to narrow most of them.

Paging

Long lists take limit and cursor. Each page answers nextCursor, which is a string to pass back as cursor for the next page, or null on the last page, and hasMore. A Link header with rel="next" points at the next page too. Treat a cursor as opaque. A cursor the API did not give you answers 400 bad_cursor.

Request limits

Every answer carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (seconds until the window ends) and RateLimit-Policy, as well as the X-RateLimit-* headers. Past a limit the API answers 429 with Retry-After. Every answer also carries X-Request-Id; quote it if you contact support.

What is not in the API

Visits from Google Analytics are not in the API. They are shown in the app only.

Need help?

Email support@klientbrain.com and tell us what you were doing.