Introduction
The WiseParts API connects external systems to your account over HTTP. One integration token authenticates every call, the base URL and conventions below apply throughout, and each area of the product exposes its own endpoints.
Voice is the area available today. You post call events as they happen — ringing, answered, completed — and WiseParts turns them into calls. Each call then drives three things: the on-screen notification bar, the activity record written automatically, and the figures in Call Reports. See Call Center for what the product does with them.
/pt, /es, /fr and /it as they do here.Base URL
https://app.wiseparts.ai/api/v1
The version is a path segment, not a header or a query parameter. Every path in the reference is relative to that base, whichever area it belongs to, and production is the only server.
Voice operations
Post a call event — POST /voice/call. Creates a call, or advances one that already exists. Send one request per state change, reusing the same id for the whole call.
Look up a caller's priority — GET /voice/priority. Given a number, returns the priority of the segment the matching customer belongs to, so your routing plan can queue known customers before the call is offered.
List request history — GET /voice. Returns what WiseParts recorded for your account: the payload as received, the response, the status and the duration.
The first two also answer on the other verb — /voice/call accepts GET with the same fields in the query string, /voice/priority accepts POST — for phone systems that can only fire a URL.
Your first call
The steps below use the Voice endpoints, but the token and the conventions are the same whichever area you end up calling.
1. Get the token. Under Integrations, open the integration you are connecting and copy its token. It identifies both the account and the integration, so there is no separate account identifier. See Authentication for the ways to send it.
2. Post an event.
curl -X POST https://app.wiseparts.ai/api/v1/voice/call \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "CALL-2026-08-12-0042",
"direction": "inbound",
"status": "answered",
"from": "+351210000000",
"caller_id": "201"
}'
id, direction and status are required, and from is required when the direction is inbound. The reply is a result string of 48 random characters that identifies nothing — your own id is the reference to keep.
3. Find it in the history.
curl "https://app.wiseparts.ai/api/v1/voice?search=request&search_term=CALL-2026-08-12-0042&sort=-created_at&limit=10" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
search and search_term work only as a pair, and there is no default ordering, so pass sort when order matters. Send Accept: application/json too: without it, a request that fails authentication answers with a 302 to a browser page rather than a 401.
limit is set, the body is an object with data, links and meta. Drop limit and you get a bare array containing the entire history instead — the two shapes are not interchangeable.A 200 on step 2 confirms receipt, not that a call was written: a call only ever moves forward, and an event that arrives out of order is accepted and discarded. Post a call event lists the statuses and which of them may overwrite which.
If the call never appears, Troubleshooting covers where to look — starting with the fact that a request failing authentication leaves no entry at all.