curl --request GET \
--url https://dev-public-api.openphone.dev/calls \
--header 'Authorization: <api-key>' \
--header 'Quo-Api-Version: <quo-api-version>'{
"data": [
{
"id": "AC123abc",
"phoneNumberId": "PN123abc",
"userId": "US123abc",
"direction": "incoming",
"status": "completed",
"participants": [
{
"phoneNumber": "+15555555555",
"userId": "US123abc"
},
{
"phoneNumber": "+15555555555",
"userId": "US456def"
},
{
"phoneNumber": "+15555555556",
"userId": null
}
],
"answeredAt": "2022-01-01T00:00:00Z",
"answeredBy": "USlHhXmRMz",
"initiatedBy": "USlHhXmRMz",
"completedAt": "2022-01-01T00:00:00Z",
"createdAt": "2022-01-01T00:00:00Z",
"updatedAt": "2022-01-01T00:00:00Z",
"callRoute": "phone-number",
"duration": 60,
"forwardedFrom": "US123abc",
"forwardedTo": "US123abc",
"aiHandled": "ai-agent"
}
],
"nextCursor": "eyJsYXN0SWQiOiJVU211a09NaXBhIn0"
}{
"message": "The input was invalid",
"docs": "https://quo.com/docs",
"title": "Bad Request",
"errors": [
{
"path": "/callId",
"message": "Expected string to match '^AC(.*)$'",
"value": "abc123",
"schema": {
"type": "TemplateLiteral",
"pattern": "^AC(.*)$"
}
}
]
}{
"message": "Unauthorized",
"docs": "https://quo.com/docs",
"title": "Unauthorized",
"trace": "6897907457496870895"
}{
"message": "User is forbidden to perform this action",
"docs": "https://quo.com/docs",
"title": "Forbidden",
"trace": "6897907457496870895"
}{
"message": "Call not found",
"docs": "https://quo.com/docs",
"title": "Not Found",
"trace": "6897907457496870895"
}{
"message": "We have encountered an unknown error",
"docs": "https://quo.com/docs",
"title": "Unknown",
"trace": "6897907457496870895"
}List calls
Fetch a paginated list of calls in the workspace, newest first. Every filter is optional, and group calls are included.
curl --request GET \
--url https://dev-public-api.openphone.dev/calls \
--header 'Authorization: <api-key>' \
--header 'Quo-Api-Version: <quo-api-version>'{
"data": [
{
"id": "AC123abc",
"phoneNumberId": "PN123abc",
"userId": "US123abc",
"direction": "incoming",
"status": "completed",
"participants": [
{
"phoneNumber": "+15555555555",
"userId": "US123abc"
},
{
"phoneNumber": "+15555555555",
"userId": "US456def"
},
{
"phoneNumber": "+15555555556",
"userId": null
}
],
"answeredAt": "2022-01-01T00:00:00Z",
"answeredBy": "USlHhXmRMz",
"initiatedBy": "USlHhXmRMz",
"completedAt": "2022-01-01T00:00:00Z",
"createdAt": "2022-01-01T00:00:00Z",
"updatedAt": "2022-01-01T00:00:00Z",
"callRoute": "phone-number",
"duration": 60,
"forwardedFrom": "US123abc",
"forwardedTo": "US123abc",
"aiHandled": "ai-agent"
}
],
"nextCursor": "eyJsYXN0SWQiOiJVU211a09NaXBhIn0"
}{
"message": "The input was invalid",
"docs": "https://quo.com/docs",
"title": "Bad Request",
"errors": [
{
"path": "/callId",
"message": "Expected string to match '^AC(.*)$'",
"value": "abc123",
"schema": {
"type": "TemplateLiteral",
"pattern": "^AC(.*)$"
}
}
]
}{
"message": "Unauthorized",
"docs": "https://quo.com/docs",
"title": "Unauthorized",
"trace": "6897907457496870895"
}{
"message": "User is forbidden to perform this action",
"docs": "https://quo.com/docs",
"title": "Forbidden",
"trace": "6897907457496870895"
}{
"message": "Call not found",
"docs": "https://quo.com/docs",
"title": "Not Found",
"trace": "6897907457496870895"
}{
"message": "We have encountered an unknown error",
"docs": "https://quo.com/docs",
"title": "Unknown",
"trace": "6897907457496870895"
}Authorizations
Headers
API version header. Supported values: 2026-03-30
2026-03-30 Query Parameters
Only return calls on this Quo number.
^PN(.*)$"PN123abc"
Only return calls belonging to this Quo user. Requires an admin or owner when authenticating with a token.
^US(.*)$"US123abc"
Only return calls that involve this E.164 phone number, on either end.
^\+[1-9]\d{1,14}$"+15555555555"
The direction of the call relative to the Quo number.
incoming, outgoing "incoming"
Only return calls with this status, such as status=missed. To match any of several statuses, use status[in]=missed,no-answer.
queued, initiated, ringing, in-progress, completed, busy, failed, no-answer, canceled, missed, answered, forwarded, abandoned "missed"
Bound the results by creation time, in ISO 8601 format: createdAt[gt]=2022-01-01T00:00:00Z&createdAt[lt]=2022-02-01T00:00:00Z.
Show child attributes
Show child attributes
{ "gt": "2022-01-01T00:00:00Z" }
Max number of items to return per page.
1 <= x <= 50"eyJsYXN0SWQiOiJVU211a09NaXBhIn0"
Was this page helpful?