API
The Noki Mind API
Everything the admin space does can be called from a server too: your clients, quotes, tasks, meetings, notes. One endpoint per action, a key to authenticate, and an OpenAPI document your tools swallow as-is.
196 endpoints · 63 read · 104 write · 29 delete
First call
Create a key from the admin workspace, Integrations then API, and call. Here is a complete call, ready to paste.
https://nokimind.com/api/v1curl https://nokimind.com/api/v1/list_clients \ -H "Authorization: Bearer $NOKI_API_KEY"
Keep the key in an environment variable: pasted into a repository, it is worth the account that created it.
Authentication
Every call carries a key, created from the admin space under Integrations › API. Two headers are accepted, whichever your tool prefers.
Authorization: Bearer ecpapi_… X-Api-Key: ecpapi_…
A key acts in the name of the administrator who created it and sees only what they see. Never put one in a web page: these calls go server to server, and no CORS header is set.
Scopes
A key carries one or more scopes. None implies another: a key that writes does not delete for that reason. Every endpoint states the one it needs.
| Scope | What it opens | Endpoints |
|---|---|---|
read | Everything that reads, changing nothing. | 63 |
write | Create and update. Deletes nothing. | 104 |
destructive | Permanent deletions. | 29 |
Methods and envelopes
What reads accepts GET, parameters in the query string, and POST, JSON body. What writes or deletes accepts POST only. An array is expressed by repeating the parameter: ?tags=a&tags=b.
Success returns 200 with the result under data.
{ "data": … }A refusal returns a stable code under error and a sentence under message. Test the code, never the message.
{ "error": "missing_scope", "message": "…" }Rate limits
Each key gets a per-minute ceiling, set by what the action does. Reading a lot breaks nothing; deleting thirty times a minute is not normal use.
| Scope | Ceiling |
|---|---|
read | 600 calls per minute |
write | 120 calls per minute |
destructive | 30 calls per minute |
Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset, including when it succeeds: that is what lets you slow down before the wall. Going over returns 429 with Retry-After.
Refusals
| Code | Status | When |
|---|---|---|
missing_api_key | 401 | No key in the request headers. |
invalid_api_key | 401 | The key presented does not exist. |
revoked_api_key | 401 | The key was cut off from the admin space. |
expired_api_key | 401 | The key is past its expiry date. |
not_admin | 403 | The account the key belongs to is no longer an administrator. |
missing_scope | 403 | The key does not carry the scope this endpoint requires. |
unknown_endpoint | 404 | The address names no endpoint. The response suggests close names. |
method_not_allowed | 405 | GET on an endpoint that writes or deletes. |
invalid_json | 400 | The request body is not JSON. |
invalid_query | 400 | A query parameter is unknown. The response says which ones exist. |
invalid_payload | 400 | The parameters fail validation. The response details them, field by field. |
refused | 422 | The action said no for a business reason, explained in the message. |
payload_too_large | 413 | The body is over 4 MB. |
rate_limited | 429 | The key's call ceiling is reached for this level of action. The “Retry-After” header says how many seconds to wait. |
server_error | 500 | Something failed on our side. |
OpenAPI document
The full contract, generated from the code at every deploy. Paste it straight into Postman, Insomnia, Bruno, Scalar or Swagger UI, or feed it to a client generator.
Try it
Call an endpoint from this page with your own key. The request goes from your browser to this site; nothing is recorded here.
Endpoints
All 196 actions, with their parameters and the shape of their response. Search by name or by module.
searchaccountagenciesadmin-localenotificationspushadmin-invitationsclientstasksclient-userscustom-fieldsreferrersquotesquote-commentstask-commentstask-viewssocialsocial-viewsmeetingsmeeting-proposalsrecallrecall-calendarquestionnairescredentialsbillsmetricsfilesfile-foldersdecisionsassistant-conversationsmedianotesnote-foldersticketscompanycompany-searchdesigneditor-imageseditor-filestranslation