Getting a key
- 1
Open Developers in your workspace
Under Settings. Any owner or admin of the workspace can make a key.
- 2
Choose the scopes
read sees your data. write saves businesses and drafts messages. send approves and sends. Give a key only what it needs.
- 3
Copy it once
A key starts kl_live_ and is shown once. If you lose it, make a new one and delete the old.
- 4
Keep within the limits
Up to 10 keys per workspace, and 600 calls per 10 minutes per key. The response says how many calls are left.
The API
Base URL https://kwikl.com/api/v1. Send the key in the header Authorization: Bearer kl_live_…. Every request and every reply is JSON. Dates are in your workspace's time zone; money is in your workspace's currency.
| Route | What it does |
|---|---|
YouGET /me | Your workspace, your plan and the scopes of the key you are using. |
BusinessesGET /businesses | The businesses saved in your workspace, with their evidence and how to reach them. |
POST /businesses | Save businesses you already know, so the desk and the API work from one list. |
MessagesGET /messages | Every message sent in your name, with its channel, its approval and its receipt. |
POST /messages/draft | A first message drafted from the evidence, in your name, for you to approve. |
POST /messages/send | Sends one approved draft, within the rules of the country it goes to. |
ApprovalsGET /approvals | The drafts waiting for a yes. |
POST /approvals/:id/approve | Approve one draft. Only a person with the write scope can. |
POST /approvals/:id/decline | Decline one draft, with a reason if you give one. |
ResultsGET /outcomes | Replies, meetings, proposals and payments, each tied to the message it came from. |
GET /meetings | Meetings booked, past and coming. |
POST /meetings | Record a meeting you booked yourself. |
GET /proposals | Proposals sent, with their state: sent, signed, paid. |
The planGET /strategy | Your business memory: what you sell, who buys it, where, and who never to contact. |
GET /opportunities | The businesses with a recent reason to be written to this week. |
GET /countries/:cc | What is allowed in a country before you write: channels, hours, opt-out, language. |
Save a business
One call saves a business you already know. KWIK L reads its website, keeps the evidence with the page it came from, and finds how the business asks to be contacted.
curl https://kwikl.com/api/v1/businesses \
-H "Authorization: Bearer kl_live_..." \
-H "Content-Type: application/json" \
-d '{"website": "northfield-dental.co.uk"}'What comes back
The business, its evidence with the date it was read, the way to reach it, and what the country allows for a first contact.
{
"id": "bus_8f2k",
"name": "Northfield Dental",
"website": "northfield-dental.co.uk",
"country": "GB",
"evidence": [
{ "quote": "We are opening a second practice in Leeds this spring.",
"url": "https://northfield-dental.co.uk/news", "seen": "2026-10-14" }
],
"contact": { "email": "hello@northfield-dental.co.uk", "channel": "email" },
"rules": { "first_contact": "published_only", "opt_out": "none on file" }
}The MCP server
Connect KWIK L to Claude, ChatGPT, Cursor or any other app that speaks MCP, with the same key. The server is at https://kwikl.com/mcp. Your assistant then works from your real workspace: the businesses, the evidence, the results. It never sends anything itself.
- Reading tools
- The same as the GET routes: your businesses, messages, approvals, outcomes, meetings, proposals, strategy, opportunities and a country's rules.
- save_business
- Saves a business you name, and reads its website for the evidence.
- draft_first_message
- Writes a first message from the evidence, in your name. It lands in your approvals; it is not sent.
- list_yes_cards
- The drafts, proposals and payments waiting for your yes, so you can decide in the workspace.
Three rules, the same everywhere
The API is the workspace. It cannot do what the desk cannot.
- Nothing is sent without an approval
- A draft becomes a message only after a person with the send scope approves it. A call to send an unapproved draft is refused.
- Opt-outs apply to every channel
- A business that said no is not written to by email, WhatsApp, call or SMS, from the desk or from the API.
- The country's rules apply to the API exactly as to the desk
- Ask GET /countries/:cc first. Where a country allows only a contact form, the API will not send an email there.
Where will your next customer come from?
Prefer to talk first? Talk to our team.