Developers
Real experts' minds, from your code.
7 JSON endpoints over HTTPS. One API key, the same credits as on the web, and the expert's name on every answer. This page is built from the same spec your tools import, so it matches the API.
Prefer MCP? Claude, Cursor and any MCP client connect in one click on Connect.
01
Start in a minute
- 1See who can answer. No key, no account.
curl https://sabli.app/api/v1/minds - 2Create a key on Connect (it starts with
mk_, shown once; keep it on a server, never in a web page) and ask a mind.curl https://sabli.app/api/v1/minds/daniel-sousa/consult \ -H "Authorization: Bearer mk_..." \ -H "Content-Type: application/json" \ -d '{"question":"Our product listing pages take about 4.5s to hit LCP on mid-range Android phones, and the hero image plus…"}' - 3Show the answer with its attribution.
{ "answer": "In short: Confirm with real user data that the hero image is the LCP[^1] element on those phones, then make it load early, small and uncached-free. …", "run_id": "run_7f3a...", "attribution": { "twin": "daniel-sousa@1.0.0", "creator": "Daniel Sousa", "runId": "run_7f3a...", "workflow": "consult", "channel": "rest", "license": "platform-exclusive, commercial", "disclosure": "Generated by an AI mind licensed from Daniel Sousa, not by Daniel personally." }, "url": "https://sabli.app/minds/daniel-sousa" }
02
Endpoints
Base address https://sabli.app/api/v1. Send Authorization: Bearer <key> on every call except the two marked “no key”.
GET/mindsno keyList the minds
Every mind that can answer, real experts first, with topics and workflows.
Get back
The minds
GET/minds/{mind}no keyAbout a mind
One mind in detail: the expert, credentials, methods, topics, workflows and license terms.
Send
- {mind}in the path
- The mind's id, from GET /minds.
POST/matchFind the right mind
From a problem in the person's own words, the 1–3 minds that fit best, each with one line on why. No credit used.
Send
- problemstringrequired
- Up to 6,000 characters.
POST/minds/{mind}/consultAsk a mind
Ask a question and get the answer that expert would give, in their method and judgment.
Send
- {mind}in the path
- The mind's id, from GET /minds.
- questionstringrequired
- The question, in the person's own words. Up to 6,000 characters.
- contextstring
- The person's situation: company, goals, constraints, numbers. Read for the answer, never stored.. Up to 4,000 characters.
POST/minds/{mind}/workflows/{workflow}Run a workflow
Run one of the mind's named workflows (a structured deliverable, e.g. a PRD or a pricing review) on a brief.
Send
- {mind}in the path
- The mind's id, from GET /minds.
- {workflow}in the path
- A workflow id of that mind, from GET /minds.
- briefstringrequired
- Situation, goals and constraints. Up to 6,000 characters.
POST/minds/{mind}/critiqueGet a critique
Have the mind review a piece of work against the expert's rules of thumb. Up to 4,000 characters on any plan; longer documents (up to about 25 pages) on paid plans, priced by size.
Send
- {mind}in the path
- The mind's id, from GET /minds.
- artifactstringrequired
- The work to review, as text. Up to 160,000 characters.
- rubricstring
- Optional: what to focus on. Up to 1,000 characters.
POST/runs/{run}/feedbackRate an answer
How an answer landed: up (helpful), off (missed the point) or report (offensive or harmful). No credit used; only the reaction is kept.
Send
- {run}in the path
- The run_id of an answer.
- reaction"up" | "off" | "report"required
03
What comes back
Answer
- answerstringrequired
- Markdown (##, ###, >, -).
- run_idstringrequired
- attributionAttributionrequired
- urlurlrequired
- The mind's page on Sabli.
Attribution
- twinstringrequired
- mind@version.
- creatorstringrequired
- runIdstringrequired
- workflowstring
- channelstring
- licensestringrequired
- disclosurestringrequired
MindSummary
- idstringrequired
- versionstringrequired
- mind@version, as the attribution shows it.
- namestringrequired
- expertstringrequired
- rolestringrequired
- taglinestring
- samplebooleanrequired
- An example mind: a placeholder expert, not a real person.
- verifiedboolean
- topicsstring[]
- workflowsWorkflow[]required
- critiqueobjectrequired
- What a critique costs.
- photourl | nullrequired
- The expert's photo.
- urlurlrequired
Mind
The public profile: the expert, credentials, methods, topics, workflows and license terms
- idstringrequired
- mindstringrequired
- namestringrequired
- rolestring
- taglinestring
- biostring
- sampleboolean
- credentialsstring[]
- methodsobject[]
- topicsstring[]
- workflowsWorkflow[]required
- licenseobject
- The license terms.
- creditsstring
- What an answer costs.
- disclosurestring
- urlurlrequired
Workflow
- idstringrequired
- namestringrequired
- coststringrequired
04
Errors
Every error is JSON with a code and a message: {"error": {"code", "message"}}.
- 400
- Invalid request (invalid_request)
- 401
- Missing or unknown API key (unauthorized)
- 402
- Out of credits: get a Day pass or Plus (out_of_credits)
- 404
- No such mind, workflow or run (not_found)
- 429
- Today's answer limit is reached (daily_limit)
- 503
- Answers are unavailable right now (unavailable)
05
Credits and rules
- Credits. 3 free credits with a new account. An answer is 1 credit. A full deliverable (PRD, launch plan, architecture review and similar) is 3. Signature minds cost 3×: 3 credits an answer, 9 for a full deliverable. Plus a daily answer limit per account (429). Plans.
- Attribution. Show every answer with its attribution block: the expert's name, the mind's version and the line saying it's their AI mind, not them personally.
- Use. Use answers in your work under the expert's terms. Don't copy, resell or train on them. Licensing.
- Privacy. We receive only what you send to a mind. It stays in your run history until you delete it, is never sold and never trains models. Experts never see questions, only counts. Privacy.
Zapier, Make, n8n or a custom GPT: import the spec and every call above is an action. How to set it up. Questions: hello@sabli.app.