Developers / REST API
Developers

REST API

Base URL https://app.limekiwi.ai/api/v1. Send Authorization: Bearer <key> and JSON bodies for POST and PATCH.

Success
A 2xx status with { data }.
Errors
A 4xx status with { error } saying what's wrong.
Schemas
openapi.json describes every endpoint, for code generators and Postman.
Phone numbers
Australian (0412 345 678) or international (+61 412 345 678) format.

Example: add a lead

curl https://app.limekiwi.ai/api/v1/leads -H "Authorization: Bearer <your key>" \
  -H "content-type: application/json" \
  -d '{"agentId":"<agent id>","name":"Riley","phone":"0411 000 000"}'

Endpoints

  • GET/companyYour company's settings (name, timezone, recording retention) and how many agents, leads and calls it has.
  • PATCH/companyChange the company name, timezone (calling hours and booking follow it) or how long call recordings are kept.
  • GET/agentsList the company's agents.
  • GET/agents/{agentId}Everything about one agent: its settings, goals in order, qualification criteria and knowledge sources.
  • POST/agentsCreate a new agent. Pick its kind (salesperson, receptionist, appointment setter, lead qualifier, customer support or feedback & surveys) and give its name, company, company description and offer (what the company sells or does); write sensible objection handling and rules if the user doesn't. Goals, qualification criteria and knowledge can be given now or added after; without them, non-sales kinds start with ones suited to the job. The voice defaults to the one your latest agent uses.
  • PATCH/agents/{agentId}Change any of an agent's settings except its kind, which is fixed once it's created. Only the fields given are changed.
  • DELETE/agents/{agentId}Delete an agent for good, with its leads, calls, meetings and recordings. The do-not-call list is kept. Can't be undone.
  • POST/agents/{agentId}/activePause an agent (it stops answering and calling) or switch it back on.
  • GET/agents/{agentId}/statsAn agent's dashboard numbers for recent days: calls, answered, conversations, goal rate, outcomes, average talk time.
  • POST/agents/{agentId}/goalsAdd a goal to the end of an agent's goals. The first goal is the main one; later ones are fallbacks.
  • PATCH/agents/{agentId}/goals/{goalId}Change a goal's title, instructions or outcome.
  • POST/agents/{agentId}/goals/{goalId}/moveMove a goal up or down one place.
  • DELETE/agents/{agentId}/goals/{goalId}Delete one of an agent's goals.
  • POST/agents/{agentId}/criteriaAdd something the agent must find out (or should, if it comes up) before moving to a goal.
  • PATCH/agents/{agentId}/criteria/{criterionId}Change a qualification criterion.
  • POST/agents/{agentId}/criteria/{criterionId}/moveMove a qualification criterion up or down one place.
  • DELETE/agents/{agentId}/criteria/{criterionId}Delete a qualification criterion.
  • GET/agents/{agentId}/knowledge/{knowledgeId}The full text of one knowledge source.
  • POST/agents/{agentId}/knowledgeAdd facts the agent may state on calls: a written entry, or a web page, which is read now and digested into a fact sheet (calls never look it up).
  • PATCH/agents/{agentId}/knowledge/{knowledgeId}Edit a written knowledge entry, switch a source on or off, or re-read a web page (refresh: true).
  • DELETE/agents/{agentId}/knowledge/{knowledgeId}Delete a knowledge source.
  • GET/agents/{agentId}/connectionsAn agent's custom connections: other apps' MCP servers whose tools it can use on calls.
  • POST/agents/{agentId}/connectionsConnect an app's MCP server to an agent so it can use the app's tools on calls. Only for servers the user says they trust.
  • PATCH/agents/{agentId}/connections/{connectionId}Switch a connection on or off, switch one of its tools on or off, or re-read its tools from the server.
  • DELETE/agents/{agentId}/connections/{connectionId}Remove a custom connection from an agent.
  • GET/leadsList leads, newest first. Filter by agent, status, or a search on name, phone, email or company.
  • GET/leads/{leadId}One lead with its calls (newest first) and meetings.
  • POST/leadsAdd a lead for an agent. With queue: true the agent rings them at the next allowed calling time (straight away within calling hours).
  • POST/leads/importAdd up to 1,000 leads for an agent at once and queue them all to be called. They share one consent basis.
  • PATCH/leads/{leadId}Change a lead's name, phone, email, company or notes.
  • POST/leads/statusFor one or more leads: queue them to be called, record that they were washed against the Do Not Call Register (which also queues them), or take them off the queue.
  • POST/leads/{leadId}/callHave the lead's agent ring them now. Calling hours and the do-not-call list still apply.
  • POST/leads/resetFor testing: put every lead back to new with no attempts or follow-ups. Do-not-call requests stay, except for your own test numbers.
  • GET/callsList calls, newest first, with each call's one-line summary. Filter by agent, lead, outcome or direction.
  • GET/calls/{callId}One call with its full transcript and summary.
  • GET/meetingsMeetings the agents booked, soonest first. Upcoming only unless a from date is given.
  • POST/health-quotesCompare every Australian health fund open to the public and return the cheapest policies that fit, monthly and before the government rebate.