API Docs
Everything on this page also lives in one markdown file — grab it below to hand to an LLM, or read it inline.
Simplitas API
The Simplitas API lets you run AI Visibility Checks — scanning ChatGPT, Perplexity, and Google AI against real buyer prompts for a keyword — and read back the results, from your own code instead of the app.
This document is also served as plain text at /api-docs.md, so you can hand the whole thing to
an LLM or fetch it from a script.
Base URL
https://www.simplitas.com/api/v1
Authentication
Every request needs an API key in the Authorization header:
Authorization: Bearer smpl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Generate a key from Developers inside the app: simplitas.com/app/developers. The full key is shown once, at creation — Simplitas only ever stores its hash, so if you lose it you'll need to create a new one and revoke the old one.
A key belongs to your organization, not to the person who created it: any key on the account can read and write the same data, and teammates all see the same keys under Developers.
Requests without a valid, unrevoked key get:
{ "error": "Invalid or missing API key" }
with HTTP status 401.
Resources
Visibility Checks
A visibility check runs ~100 AI-generated buyer prompts about a keyword through ChatGPT and
records which brands show up, and where. Creating one is asynchronous — prompts are generated and
saved immediately, then the scan itself runs in the background over the next few minutes. Poll the
check until status is "complete".
POST /visibility-checks
Start a new check.
Body
| Field | Type | Required | Description |
|---|---|---|---|
keyword |
string | yes | What buyers are shopping for, e.g. "CRM software". Max 120 characters. |
brand_name |
string | no | Your brand, so the response can report its position in each answer. |
brand_domain |
string | no | Your domain, used the same way as brand_name. |
curl -X POST https://www.simplitas.com/api/v1/visibility-checks \
-H "Authorization: Bearer smpl_live_xxxx" \
-H "Content-Type: application/json" \
-d '{"keyword": "CRM software", "brand_name": "Acme", "brand_domain": "acme.com"}'
Response — 202 Accepted
{
"id": "b3b9b5f0-...",
"keyword": "CRM software",
"promptCount": 100,
"status": "running",
"createdAt": "2026-09-08T12:00:00.000Z"
}
GET /visibility-checks
List checks for your organization, newest first.
Query parameters
| Param | Type | Default | Description |
|---|---|---|---|
limit |
number | 20 | Max results to return (1-100). |
curl https://www.simplitas.com/api/v1/visibility-checks?limit=10 \
-H "Authorization: Bearer smpl_live_xxxx"
Response — 200 OK
{
"data": [
{
"id": "b3b9b5f0-...",
"keyword": "CRM software",
"brandName": "Acme",
"brandDomain": "acme.com",
"promptCount": 100,
"completedCount": 100,
"status": "complete",
"createdAt": "2026-09-08T12:00:00.000Z"
}
]
}
GET /visibility-checks/{id}
Fetch one check's full results: every prompt's answer, and a leaderboard of every brand that showed up across them.
curl https://www.simplitas.com/api/v1/visibility-checks/b3b9b5f0-... \
-H "Authorization: Bearer smpl_live_xxxx"
Response — 200 OK
{
"check": {
"id": "b3b9b5f0-...",
"keyword": "CRM software",
"brandName": "Acme",
"brandDomain": "acme.com",
"promptCount": 100,
"completedCount": 100,
"status": "complete",
"createdAt": "2026-09-08T12:00:00.000Z"
},
"results": [
{
"prompt": "Which CRM software is best for a 10-person sales team?",
"sequenceNumber": 1,
"brands": [{ "rank": 1, "name": "Acme" }, { "rank": 2, "name": "Competitor" }],
"sources": [{ "url": "https://...", "name": "...", "snippet": "..." }],
"brandPosition": 1
}
],
"leaderboard": [{ "name": "Acme", "mentions": 42, "avgPosition": 1.8 }]
}
A check you didn't create — wrong ID, or one belonging to a different organization — returns
404.
Tracked Keywords
Keywords with "Track daily" turned on in the app get rescanned automatically. The API can list them and flip that switch, but not create new tracked keywords directly — a keyword starts being tracked the first time a signed-in user runs a check for it in the app.
GET /tracked-keywords
curl https://www.simplitas.com/api/v1/tracked-keywords \
-H "Authorization: Bearer smpl_live_xxxx"
Response — 200 OK
{
"data": [
{
"id": "9f1c...",
"keyword": "CRM software",
"brandName": "Acme",
"brandDomain": "acme.com",
"enabled": true,
"lastRunAt": "2026-09-08T06:00:00.000Z",
"createdAt": "2026-08-01T09:00:00.000Z"
}
]
}
PATCH /tracked-keywords/{id}
Enable or disable daily tracking for one keyword.
Body
| Field | Type | Required | Description |
|---|---|---|---|
enabled |
boolean | yes | true to track, false to stop. |
curl -X PATCH https://www.simplitas.com/api/v1/tracked-keywords/9f1c... \
-H "Authorization: Bearer smpl_live_xxxx" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'
Response — 200 OK
{ "id": "9f1c...", "keyword": "CRM software", "enabled": false }
Errors
Every error response is a JSON object with a single error string:
{ "error": "Missing keyword" }
| Status | Meaning |
|---|---|
400 |
The request body or query string is missing or invalid. |
401 |
The API key is missing, malformed, or revoked. |
404 |
The resource doesn't exist, or belongs to another organization. |
500 |
Something went wrong on our end. |
502 |
The upstream AI provider failed to generate a usable response — try again. |
Fair use
There's no hard rate limit yet, but a visibility-checks scan costs real API calls on our end
(AI models write the prompts and run the scan) — keep automated check creation
to what you'd reasonably run by hand. If you need a specific volume, get in touch.
Feature coverage
This API currently covers AI Visibility Checks and tracked-keyword management. It does not cover every feature in the Simplitas app (AI Brand Mentions outreach, AI Humanizer, GEO Content, and the CRM are app-only for now) — if you need one of those as an API, let us know.
Using this from Claude
Everything above is also available as a Claude connector — a remote MCP server at /api/mcp that
wraps these same endpoints. It supports both a real sign-in (OAuth) and the static API key shown
above. See /claude-connector for setup.