Calls
List calls
GET/calls
Newest first. Page through with limit and offset.
#Parameters
limitinteger · querydefault 50- min 1, max 200
offsetinteger · querydefault 0- min 0
assistant_idinteger · querydirectionstring · query- one of inbound, outbound
#Example request
curl https://app.bluepenguin.io/api/v1/calls \
-H "Authorization: Bearer $BLUEPENGUIN_KEY"const r = await fetch('https://app.bluepenguin.io/api/v1/calls', {
method: 'GET',
headers: {
authorization: `Bearer ${process.env.BLUEPENGUIN_KEY}`,
},
})
const data = await r.json()import os, requests
r = requests.get(
"https://app.bluepenguin.io/api/v1/calls",
headers={"Authorization": f"Bearer {os.environ['BLUEPENGUIN_KEY']}"},
)
data = r.json()#Example response
200 OK
{
"total": 1284,
"items": [
{
"id": 8812,
"assistant_id": 12,
"channel": "phone",
"direction": "inbound",
"from_number": "+15555550142",
"to_number": "+15555550100",
"started_at": "2026-10-06T14:28:51Z",
"ended_at": "2026-10-06T14:31:58Z",
"duration_s": 187,
"status": "completed",
"outcome": "booked",
"ended_reason": "call_ended",
"summary": "Maya, a new patient, booked a cleaning for Thursday at 2:30 PM.",
"intent": "book a cleaning",
"caller_name": "Maya Chen",
"score": 9,
"analysis": {
"success": 9,
"success_reason": "Booked on the first try",
"scale": "score_10",
"data": {
"new_patient": true
}
}
}
]
}#Errors
| Status | When |
|---|---|
401 | Missing or invalid API key. |
422 | A parameter or field is invalid; the reply lists which. |
429 | More than 240 requests a minute on this key. |