KaiCalls Agency Packages API
The Agency Packages API from KaiCalls — 1 operation(s) for agency packages.
The Agency Packages API from KaiCalls — 1 operation(s) for agency packages.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/kaicalls-com:kaicalls-com-agency-packages-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: KaiCalls Public Agency Packages API
version: '2026-06-05'
description: Machine-readable surface for KaiCalls external developers and client agents.
servers:
- url: https://www.kaicalls.com/api
security:
- bearerAuth: []
tags:
- name: Agency Packages
paths:
/v1/agency-packages:
get:
summary: Read up to 50 accessible clients, Convert/Care/Improve enrollment receipts and…
description: Membership and token tenant scope are both required. Also accepts authenticated dashboard sessions. Reports distinguish unavailable data, recorded lead status and verified business outcomes.
parameters:
- in: query
name: after
schema:
type: string
format: uuid
description: Exclusive business-id page cursor.
- in: query
name: ids
schema:
type: string
description: Optional comma-separated UUIDs, maximum 50; still membership/token scoped.
responses:
'200':
description: Catalog, authorized client page, enrollment checks, artifacts, report and nextCursor.
'400':
description: Invalid page.
'401':
description: Authentication required.
'403':
description: Missing scope.
'503':
description: Enrollment schema or evidence unavailable.
x-required-scopes:
allOf:
- workspaces:read
- calls:read
- leads:read
- emails:read
tags:
- Agency Packages
operationId: getV1AgencyPackages
x-operation-id-source: derived
post:
summary: Preview/enroll up to 50 clients into versioned agency packages, or retry/pause…
description: Admin membership for every existing client. New imports create owned workspaces atomically under stable external references; partner identity comes only from verified auth. Enroll requires approved=true and the exact fingerprint/entries returned by preview. Installation resumes through the scheduled coordinator. Care templates do not grant campaign authority. Pause stops installation/checks, not existing live services. No billing, number purchase or campaign send is performed by this endpoint.
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required:
- action
- packages
- entries
additionalProperties: false
properties:
action:
type: string
enum:
- preview
- enroll
packages:
type: array
minItems: 1
maxItems: 3
uniqueItems: true
items:
type: string
enum:
- convert
- care
- improve
enableFollowThrough:
type: boolean
default: false
description: Explicit opt-in to existing caller follow-through; requires Convert.
defaults:
type: object
additionalProperties: false
description: Fallbacks applied only AFTER reading saved client facts.
properties:
timezone:
type: string
maxLength: 100
instructions:
type: string
maxLength: 3000
approved:
type: boolean
description: Must be true for enroll.
fingerprint:
type: string
pattern: ^[a-f0-9]{64}$
description: Required for enroll; exact preview fingerprint.
entries:
type: array
minItems: 1
maxItems: 50
items:
type: object
required:
- expectedRevision
additionalProperties: false
properties:
businessId:
type: string
format: uuid
description: Use an existing authorized client OR newClient, never both.
newClient:
type: object
required:
- name
- externalRef
additionalProperties: false
properties:
name:
type: string
minLength: 1
maxLength: 200
externalRef:
type: string
minLength: 1
maxLength: 150
expectedRevision:
type: string
nullable: true
description: Current enrollment revision, or null for first enrollment/replay of a new import.
profile:
type: object
additionalProperties: false
properties:
timezone:
type: string
maxLength: 100
services:
type: array
maxItems: 20
items:
type: string
minLength: 1
maxLength: 120
serviceArea:
type: string
maxLength: 500
hours:
type: string
maxLength: 1000
instructions:
type: string
maxLength: 3000
website:
type: string
maxLength: 1000
description: HTTPS without credentials, or empty.
reviewUrl:
type: string
maxLength: 1000
description: HTTPS without credentials, or empty.
- type: object
required:
- action
- businessId
- revision
additionalProperties: false
properties:
action:
type: string
enum:
- retry
- pause
businessId:
type: string
format: uuid
revision:
type: string
pattern: ^[a-f0-9]{64}$
responses:
'200':
description: Frozen preview or installation control accepted.
'202':
description: Per-client queued/replayed/conflict outcomes. Inspect every result.
'400':
description: Invalid package batch or missing approval.
'401':
description: Authentication required.
'403':
description: Missing scope or client admin membership.
'409':
description: Preview or enrollment changed; refresh and review again.
'413':
description: Body too large.
'503':
description: Enrollment unavailable. The same approved batch is safe to retry.
x-required-scopes:
allOf:
- workspaces:write
- agents:write
tags:
- Agency Packages
operationId: postV1AgencyPackages
x-operation-id-source: derived
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'KaiCalls API key. Per-operation scope requirements are published on each operation as `x-required-scopes` — a scope string, or a nested `{ allOf: [...] }` / `{ anyOf: [...] }` expression. An operation with no `x-required-scopes` requires a valid key but no particular scope.'
x-scopes:
- workspaces:read
- workspaces:write
- numbers:read
- numbers:write
- agents:read
- agents:write
- communication-runs:read
- communication-runs:write
- calls:read
- calls:write
- sms:read
- sms:write
- webhooks:read
- webhooks:write
- events:read
- events:replay
- lifecycle:write
- leads:read
- leads:write
- emails:read
- emails:write
- sdr:read
- sdr:write
- evals:read
- evals:write
- appointments:read
- appointments:write
- knowledge:read
- knowledge:write
- products:read
- products:write
- integrations:write
- approvals:write
- concierge:write
- billing:read
- billing:write
- call_evidence:read
- call_evidence:write
- support:write
sessionAuth:
type: apiKey
in: cookie
name: sb-access-token
description: Authenticated dashboard session cookie. Used by first-party flows that mint or manage API keys.