Skip to Content
APIEndpointsBusinesses

Businesses

A Business is your AI agent’s “knowledge base + behavior config”. The system prompt, business context (services, FAQs, hours, policies), voice settings, and prompt-level tuning all live here. All AI behavior is configured at the Business level, not the Agent level.

Get a business

GET /api/v1/businesses/:id

Response:

{ "success": true, "data": { "id": "biz_xxx", "name": "Sunset Dental", "industry": "healthcare", "description": "Family dental practice in San Francisco", "timezone": "America/Los_Angeles", "address": "123 Main St, San Francisco, CA 94110", "phone": "+14155551234", "email": "hello@sunset-dental.example", "hours": [ { "day": "monday", "open": "08:00", "close": "17:00" }, { "day": "tuesday", "open": "08:00", "close": "17:00" }, { "day": "saturday", "open": "09:00", "close": "13:00" } ], "services": [ { "name": "Cleaning", "duration": 60, "price": 150 }, { "name": "Whitening", "duration": 90, "price": 400 } ], "faqs": [ { "question": "Do you take insurance?", "answer": "Yes — most major plans." } ], "policies": [...], "systemPrompt": "You are a friendly receptionist for Sunset Dental...", "greetingTemplate": "Thanks for calling Sunset Dental, how can I help?", "fallbackMessage": "I'm sorry, I didn't catch that — could you say it again?", "transferNumber": "+14155559999", "voiceSettings": { "speed": 1.0 }, "interruptionSensitivity": 0.7, "maxCallDurationMinutes": 15, "silenceThresholdMs": 800, "createdAt": "2026-02-01T00:00:00.000Z" } }

Create a business

POST /api/v1/businesses Content-Type: application/json { "name": "Sunset Dental", "industry": "healthcare", "timezone": "America/Los_Angeles" }

Most fields are optional at creation time. Update them as you go via PATCH.

Update business behavior

The single most important PATCH for tuning your AI:

PATCH /api/v1/businesses/:id Content-Type: application/json { "systemPrompt": "You are a friendly receptionist...", "greetingTemplate": "Thanks for calling, how can I help?", "voiceSettings": { "speed": 1.05 }, "interruptionSensitivity": 0.6, "maxCallDurationMinutes": 20 }

All of these flow into the live voice engine on the next call — no restart needed. Changes are versioned in the audit log.

Update services

Services live as a JSON array on the business itself — there’s no separate endpoint. Send the full array via the main PATCH:

PATCH /api/v1/businesses/:id Content-Type: application/json { "services": [ { "name": "Cleaning", "duration": 60, "price": 150 }, { "name": "Whitening", "duration": 90, "price": 400 }, { "name": "Implant Consult", "duration": 30, "price": 0 } ] }

PATCH replaces the entire services array. To add/remove individual entries, GET first, modify in your code, then PATCH the full array. The same pattern applies to faqs, policies, and hours.

Business context for the LLM

businessContext is a free-form JSON object injected into the LLM’s system prompt at call time. Update it via the main PATCH:

PATCH /api/v1/businesses/:id Content-Type: application/json { "businessContext": { "specialties": "Family dentistry, cosmetic, sleep apnea", "insuranceAccepted": ["Delta Dental", "Cigna", "Aetna"], "newPatientForms": "https://example.com/new-patient-pdf" } }

Keep it concise (~500 tokens) — bloated context slows first-token latency. Akol also exposes higher-level helpers (/businesses/:id/generate-services, /businesses/:id/extract-from-url, /businesses/:id/generate-faqs) that populate these fields automatically; check those before hand-rolling JSON.

Soft delete

DELETE /api/v1/businesses/:id

Sets deletedAt. Active campaigns under this business are paused. Hard deletion happens after 90 days unless restored.

Last updated on