These endpoints are called by an AI support agent on behalf of a caller. See the AI Support Agent guide for the conversation flow and integration walkthrough. Responses are typed schemas — the same shapes render in the interactive Swagger.

Authentication

Two layers (see Authentication):
  • X-API-Key: krnl_... — your provider key, which must have the agent_api_access feature enabled. Required on every call.
  • X-Verified-Session: <token> — a short-lived session obtained via the verify flow, required on the endpoints marked verified below.

Endpoints

GET /partner/agent/customers/search

Query params: q (min 2 chars, required), limit (1–100, default 25). Returns masked matches; when ambiguous is true, ask for the service address/unit, append to q, and search again.

GET /partner/agent/customers/

Requires X-Verified-Session. Returns the slim CustomerProfile — no Stripe IDs, operator notes, MAC or user_id.

POST /partner/agent/verify/issue

channel is email (default) or sms. SMS is delivered via Twilio and is inert until configured (503 dependency_unconfigured).
Response — the code is sent, never returned:

POST /partner/agent/verify/check

The token lasts 15 minutes and is bound to one (provider, customer) pair.

GET /partner/agent/customers//billing-summary

Requires X-Verified-Session.

GET /partner/agent/customers//payments

Requires X-Verified-Session. Derived from paid invoices (no separate payments table).

GET /partner/agent/customers//network-health

Requires X-Verified-Session.

POST /partner/agent/customers//notes

Requires X-Verified-Session. Adds an internal, operator-visible note (attributed to the AI).

PATCH /partner/agent/customers//contact

Requires X-Verified-Session. contact_type is contract (default) or invoice; only the fields you send change. Triggers the change-confirmation email (see Overview).

POST /partner/agent/customers//password-reset

Requires X-Verified-Session. action is password_reset (default, 15-min token) or resend_activation (72-h token).

POST /partner/agent/customers//plan-change/preview

Requires X-Verified-Session.

POST /partner/agent/customers//plan-change

Requires X-Verified-Session. Must include confirm: true (call /plan-change/preview first). Phase 1.5 — enabled for GA once the quote_token / Idempotency-Key / rollback controls land.

POST /partner/agent/tickets

Not verification-gated (so escalation works for unverified callers). Provide customer_id (own provider) or contact_email.
priority is low | normal | high; transcript is stored as an internal note.

Rate limits

Exceeding a limit returns 429 (standard rate-limit response; back off and retry).

Errors

Normalized envelope with a stable code and a request_id: