API-referens

REST API för att bygga egna integrationer.

LeadCallers API är ett REST-API över HTTPS som svarar med JSON. Med det kan du skapa kunder och lägga till teammedlemmar programmatiskt. Samma säkra funktioner finns som MCP-verktyg för AI-agenter. Det kompletta maskinläsbara kontraktet finns på /v1/openapi.json.

Autentisering

Skapa en OAuth-klient under Inställningar → API & MCP. Klienthemligheten visas en gång och används endast för att hämta en kortlivad access-token:

curl -u "$LEADCALLER_CLIENT_ID:$LEADCALLER_CLIENT_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "resource=https://api.leadcaller.com" \
  https://api.leadcaller.com/oauth/token

Svarets access_token skickas som Authorization: Bearer …. Token gäller i 15 minuter och är bunden till den begärda resursen.

Behörigheter

Profilen bestäms av den användare som skapar klienten. Admin kan hantera kunder och team. Återförsäljare kan bara hantera sina egna kunder. Vanliga användare får endast läsa och lägga till vanliga medlemmar i sitt eget team; API:et accepterar inget rollfält som kan ge högre behörighet.

REST-endpoints

  • GET /v1/customers och GET /v1/customers/{id}
  • POST /v1/customers
  • GET /v1/team-members
  • POST /v1/team-members
  • GET /v1/operations/{id} för status på asynkron onboarding

Listor använder ?cursor= och ?limit=. Alla POST-anrop kräver en unik Idempotency-Key, så samma säkra retry inte skapar dubletter.

curl https://api.leadcaller.com/v1/customers \
  -H "Authorization: Bearer $LEADCALLER_ACCESS_TOKEN"

MCP

MCP använder Streamable HTTP på POST /mcp. Begär token med resource=https://api.leadcaller.com/mcp. Servern annonserar bara de verktyg klientens scopes tillåter, och REST och MCP använder exakt samma validering, tenantgränser, idempotens och audit log. Verktyget operations.get följer status på välkomstmail och andra asynkrona onboardingsteg utan att lämna MCP-tokenens audience. Status failed är terminal och innebär att support behöver granska den säkert sparade operationen.

MCP-version 2026-07-28 är stateless. Varje anrop skickar MCP-Protocol-Version, Mcp-Method och vid tool calls även Mcp-Name. Samma protokollversion och klientens capabilities ska finnas i params._meta; header och body måste matcha.

curl https://api.leadcaller.com/mcp \
  -H "Authorization: Bearer $LEADCALLER_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/list" \
  --data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'

Felhantering

REST- och OAuth-API:et använder vanliga HTTP-statuskoder: 2xx vid lyckat anrop, 4xx vid fel i din förfrågan och 5xx vid fel hos oss. Felsvar följer application/problem+json och innehåller ett maskinläsbart code, request-ID och en läsbar detalj:

{
  "type": "https://api.leadcaller.com/problems/unauthorized",
  "status": 401,
  "code": "unauthorized",
  "detail": "En giltig Bearer-token krävs.",
  "request_id": "…"
}

MCP följer i stället JSON-RPC 2.0 och använder standardiserade MCP-felkoder, exempelvis -32020 när routingheaders och body inte matchar.

Rate limits

Anrop är hastighetsbegränsade per OAuth-klient för att skydda tjänsten. Når du gränsen svarar API:et med 429 Too Many Requests — vänta så länge Retry-After anger innan du försöker igen.