KaiCallsAgent
www.kaicalls.com
· KaiCalls
AI-powered call answering service for law firms, home service businesses, and AI agents. Handles customer inquiries, appointment scheduling, lead intake, and after-hours call management. Programmatic signup via API with x402 crypto payments or free trial.
www.kaicalls.com via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
F
Conformance score: 35/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 calls Public aggregate · no PII recordedNo calls observed in the last 7 days. Use the try-it console above to invoke this agent — calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | |
|---|---|---|
| 2026-05-24 19:11:10 current | b303c0da31a8… |
view → |
Endpoints
| Agent card | https://www.kaicalls.com/.well-known/agent.json |
| Provider | https://kaicalls.com |
| Docs | https://kaicalls.com/docs/api |
Skills · 6 declared · mapped to canonical taxonomy
Answer inbound calls 24/7 with a customizable AI voice agent. Captures leads, books appointments, and transfers to humans when needed.
Collect caller information, qualify leads by case type or service need, and push to CRM.
Book appointments via Google Calendar integration during calls.
Place outbound calls to leads with TCPA-compliant scheduling and follow-ups.
Send automated SMS follow-ups after calls or missed calls.
Automated sales development: segments leads into actionable buckets (speed-to-lead, warm demo, trial-stuck, etc.), decides the next-best action (call/email/SMS/…
Health · last 1 probes
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor — only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/www.kaicalls.com) [](https://agenstry.com/agents/www.kaicalls.com) [](https://agenstry.com/agents/www.kaicalls.com) [](https://agenstry.com/agents/www.kaicalls.com)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "KaiCallsAgent",
"description": "AI-powered call answering service for law firms, home service businesses, and AI agents. Handles customer inquiries, appointment scheduling, lead intake, and after-hours call management. Programmatic signup via API with x402 crypto payments or free trial.",
"url": "https://kaicalls.com",
"version": "1.0",
"provider": {
"organization": "KaiCalls",
"url": "https://kaicalls.com"
},
"documentationUrl": "https://kaicalls.com/docs/api",
"capabilities": {
"streaming": false,
"pushNotifications": false
},
"authentication": {
"schemes": [
"bearer"
],
"description": "API key returned from POST /api/v1/signup. Pass as Authorization: Bearer <api_key>."
},
"skills": [
{
"id": "phone-answering",
"name": "AI Phone Answering",
"description": "Answer inbound calls 24/7 with a customizable AI voice agent. Captures leads, books appointments, and transfers to humans when needed."
},
{
"id": "lead-intake",
"name": "Lead Intake & Qualification",
"description": "Collect caller information, qualify leads by case type or service need, and push to CRM."
},
{
"id": "appointment-booking",
"name": "Appointment Booking",
"description": "Book appointments via Google Calendar integration during calls."
},
{
"id": "outbound-calls",
"name": "Outbound Calling",
"description": "Place outbound calls to leads with TCPA-compliant scheduling and follow-ups."
},
{
"id": "sms-followup",
"name": "SMS Follow-Up",
"description": "Send automated SMS follow-ups after calls or missed calls."
},
{
"id": "sdr-automation",
"name": "SDR Pipeline Automation",
"description": "Automated sales development: segments leads into actionable buckets (speed-to-lead, warm demo, trial-stuck, etc.), decides the next-best action (call/email/SMS/skip/escalate), enforces cadence rules, and records every touch. Accessible via /api/sdr/* endpoints for programmatic pipeline management."
}
],
"endpoints": {
"signup": {
"url": "https://kaicalls.com/api/v1/signup",
"method": "POST",
"description": "Create account, get API key, phone number, and AI agent in one call. Supports x402 crypto payments.",
"contentType": "application/json",
"body": {
"business_name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"business_type": {
"type": "string",
"required": false
},
"website": {
"type": "string",
"required": false
},
"phone_forward_to": {
"type": "string",
"required": false
}
},
"returns": {
"api_key": "string",
"business_id": "string",
"agent_id": "string",
"phone_number": "string",
"dashboard_url": "string",
"trial_ends_at": "string"
}
},
"sdr_pipeline": {
"url": "https://kaicalls.com/api/sdr/pipeline",
"method": "GET",
"description": "List leads in the SDR pipeline with segment, score, touch count, and next action. Pass ?businessId=<uuid>. Optional: &segment=<segment>, &limit=<n> (default 100). Segments include: speed_to_lead, fresh_demo_caller, warm_demo_caller, cooling_demo, new_trial_stuck, trial_going_dark, trial_ending, contacted_no_reply, exhausted, churned_recent.",
"authentication": "Bearer API key (sdr:read scope) OR user session",
"scope": "sdr:read",
"query": {
"businessId": {
"type": "string",
"required": true
},
"segment": {
"type": "string",
"required": false
},
"limit": {
"type": "integer",
"required": false
}
},
"returns": {
"businessId": "string",
"enabled": "boolean",
"summary": {
"total_leads": "integer",
"actionable": "integer",
"needs_manual": "integer"
},
"leads": "array of lead objects with segment, score, touch_count, next_action, paused"
}
},
"sdr_action": {
"url": "https://kaicalls.com/api/sdr/action",
"method": "POST",
"description": "Trigger a single SDR action on a lead. Actions: call, email, sms, skip, pause, resume. Enforces cadence rules (min_touch_gap_hours, max_touches) and records the touch in sdr_activity_log.",
"authentication": "Bearer API key (sdr:write scope) OR user session",
"scope": "sdr:write",
"contentType": "application/json",
"body": {
"businessId": {
"type": "string",
"required": true
},
"leadId": {
"type": "string",
"required": true
},
"action": {
"type": "string",
"required": true,
"enum": [
"call",
"email",
"sms",
"skip",
"pause",
"resume"
]
}
},
"returns": {
"success": "boolean",
"action": "string",
"leadId": "string",
"detail": "string (optional, on success)",
"error": "string (optional, on failure)",
"nextAllowedAt": "string (ISO timestamp, if rate-limited by cadence)"
}
},
"sdr_config": {
"url": "https://kaicalls.com/api/sdr/config",
"methods": [
"GET",
"PUT"
],
"description": "Read or update per-business SDR configuration (enabled flag, cadence windows, auto-channel toggles, SDR agent ID for outbound calls, default email account).",
"authentication": "Bearer API key (sdr:read for GET, sdr:write for PUT) OR user session",
"scopes": {
"GET": "sdr:read",
"PUT": "sdr:write"
},
"getQuery": {
"businessId": {
"type": "string",
"required": true
}
},
"putBody": {
"businessId": {
"type": "string",
"required": true
},
"enabled": {
"type": "boolean",
"required": false
},
"min_touch_gap_hours": {
"type": "integer",
"required": false
},
"max_touches": {
"type": "integer",
"required": false
},
"auto_call": {
"type": "boolean",
"required": false
},
"auto_email": {
"type": "boolean",
"required": false
},
"auto_sms": {
"type": "boolean",
"required": false
},
"sdr_agent_id": {
"type": "string",
"required": false
},
"business_hours_start": {
"type": "integer",
"required": false,
"description": "0-23"
},
"business_hours_end": {
"type": "integer",
"required": false,
"description": "0-23"
},
"email_from_account_id": {
"type": "string",
"required": false
}
}
},
"sdr_run": {
"url": "https://kaicalls.com/api/sdr/run",
"method": "POST",
"description": "Manually trigger a full pipeline review + action dispatch for a business. Pass dryRun=true to preview actions without dispatching. Fails 400 if SDR is not enabled for the business.",
"authentication": "Bearer API key (sdr:write scope) OR user session",
"scope": "sdr:write",
"contentType": "application/json",
"body": {
"businessId": {
"type": "string",
"required": true
},
"dryRun": {
"type": "boolean",
"required": false
}
},
"returns": {
"success": "boolean",
"summary": {
"calls_queued": "integer",
"emails_queued": "integer",
"sms_sent": "integer",
"escalated": "integer",
"failed": "integer"
},
"results": "array of dispatch results"
}
},
"sdr_report": {
"url": "https://kaicalls.com/api/sdr/report",
"method": "GET",
"description": "Aggregated SDR pipeline report: action counts, outcomes, hot leads, stale leads. Pass ?businessId=<uuid>. Optional: &period=today|week|month (default week).",
"authentication": "Bearer API key (sdr:read scope) OR user session",
"scope": "sdr:read",
"query": {
"businessId": {
"type": "string",
"required": true
},
"period": {
"type": "string",
"required": false,
"enum": [
"today",
"week",
"month"
]
}
}
},
"sdr_activity": {
"url": "https://kaicalls.com/api/sdr/activity",
"method": "GET",
"description": "Recent SDR activity log entries. Pass ?businessId=<uuid>. Optional: &leadId=<uuid>, &limit=<n> (default 50, max 200).",
"authentication": "Bearer API key (sdr:read scope) OR user session",
"scope": "sdr:read",
"query": {
"businessId": {
"type": "string",
"required": true
},
"leadId": {
"type": "string",
"required": false
},
"limit": {
"type": "integer",
"required": false
}
}
},
"sdr_cron": {
"url": "https://kaicalls.com/api/cron/sdr-pipeline",
"method": "GET",
"description": "Scheduled SDR pipeline runner (every 2h). Reviews + dispatches for every business with SDR enabled. Cron-secret protected; not callable by API key or session."
}
},
"pricing": {
"model": "subscription",
"currency": "USD",
"plans": [
{
"name": "Starter",
"price": 69,
"unit": "month",
"minutes": 150
},
{
"name": "Growth",
"price": 149,
"unit": "month",
"minutes": 500
},
{
"name": "Professional",
"price": 299,
"unit": "month",
"minutes": 1500
},
{
"name": "Business",
"price": 499,
"unit": "month",
"minutes": 3000
},
{
"name": "Enterprise",
"price": 999,
"unit": "month",
"minutes": 5000
}
],
"trial": {
"days": 30,
"requiresPayment": false
},
"agentPricing": {
"payPerCall": "$0.50/call",
"description": "AI agents can opt for per-call pricing instead of a subscription."
}
},
"payment": {
"x402": {
"enabled": true,
"network": "eip155:8453",
"asset": "USDC",
"description": "x402 HTTP 402 payment protocol for machine-to-machine payments. Send request without payment header, receive 402 with requirements, retry with signed payment."
},
"stripe": {
"enabled": true,
"description": "Standard card/subscription payments via Stripe."
}
}
}