Activity grouped by lead entry — one row per journey, not one per call
curl --request GET \
--url https://api.pineyard.ai/calls/leads \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pineyard.ai/calls/leads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pineyard.ai/calls/leads"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)[
{
"key": "<string>",
"contactId": "<string>",
"toNumber": "<string>",
"contactName": "<string>",
"company": "<string>",
"agentName": "<string>",
"campaignId": "<string>",
"campaignName": "<string>",
"externalRef": "<string>",
"apiDeliveryRequestId": "<string>",
"source": "<string>",
"doNotCall": true,
"attempts": 123,
"lastCallId": "<string>",
"hasOpenIssue": true,
"lastOutcome": "<string>",
"lastStatus": "<string>",
"lastDurationMs": 123,
"lastQueuedAt": "<string>",
"lastInterestLevel": "<string>",
"nextEligibleAt": "<string>",
"scheduledCallbackAt": "<string>",
"pendingReason": "<string>",
"isPending": true,
"nextActionState": "SCHEDULED",
"whatsappState": "NEEDS_REPLY",
"whatsappLastMessageAt": "<string>",
"disposition": "<string>"
}
]Calls
Activity grouped by lead entry — one row per journey, not one per call
GET
/
calls
/
leads
Activity grouped by lead entry — one row per journey, not one per call
curl --request GET \
--url https://api.pineyard.ai/calls/leads \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pineyard.ai/calls/leads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pineyard.ai/calls/leads"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)[
{
"key": "<string>",
"contactId": "<string>",
"toNumber": "<string>",
"contactName": "<string>",
"company": "<string>",
"agentName": "<string>",
"campaignId": "<string>",
"campaignName": "<string>",
"externalRef": "<string>",
"apiDeliveryRequestId": "<string>",
"source": "<string>",
"doNotCall": true,
"attempts": 123,
"lastCallId": "<string>",
"hasOpenIssue": true,
"lastOutcome": "<string>",
"lastStatus": "<string>",
"lastDurationMs": 123,
"lastQueuedAt": "<string>",
"lastInterestLevel": "<string>",
"nextEligibleAt": "<string>",
"scheduledCallbackAt": "<string>",
"pendingReason": "<string>",
"isPending": true,
"nextActionState": "SCHEDULED",
"whatsappState": "NEEDS_REPLY",
"whatsappLastMessageAt": "<string>",
"disposition": "<string>"
}
]Required scope:
calls.viewAuthorizations
Your API key, e.g. pk_live_xxxxxxxxxxxxxxxxxxxxxxxx.
Response
OK
Available options:
SCHEDULED, WAITING_FOR_WINDOW, READY, CAMPAIGN_PAUSED Available options:
NEEDS_REPLY, REPLIED, READ, DELIVERED, SENT, FAILED, RETRYING 
