Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization
header with the value "Bearer {API_TOKEN}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can generate an API token by visiting your settings page.
Endpoints
Get the list of all accounts you have access to
requires authentication
Example request:
curl --request GET \
--get "https://aircall.postcall.io/api/accounts" \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
[
{
"id": 1,
"name": "Postcall Demo Account",
"created_at": "2023-04-30T11:24:04.000000Z",
"updated_at": "2023-05-30T11:24:19.000000Z"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a single account
requires authentication
Example request:
curl --request GET \
--get "https://aircall.postcall.io/api/accounts/1" \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
{
"id": 1,
"name": "Postcall Demo Account",
"created_at": "2023-04-30T11:24:04.000000Z",
"updated_at": "2023-05-30T11:24:19.000000Z"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all surveys of the specified account
requires authentication
Example request:
curl --request GET \
--get "https://aircall.postcall.io/api/accounts/1/surveys" \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
[
{
"id": 1,
"name": "CSAT Survey",
"url": null,
"questions": [
{
"id": 1,
"question": "How did we do today?",
"question_type": "csat-5-emoji",
"required": true
},
{
"id": 2,
"question": "Any other comments?",
"question_type": "longtext",
"required": false
}
]
},
{
"id": 2,
"name": "NPS Survey",
"url": null,
"questions": [
{
"id": 3,
"question": "How likely are you to recommend us to a friend?",
"question_type": "nps",
"required": true
},
{
"id": 4,
"question": "Any other comments?",
"question_type": "longtext",
"required": false
}
]
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a single survey of the specified account
requires authentication
Example request:
curl --request GET \
--get "https://aircall.postcall.io/api/accounts/1/surveys/1" \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
{
"id": 1,
"name": "CSAT Survey",
"url": null,
"questions": [
{
"id": 1,
"question": "How did we do today?",
"question_type": "csat-5-emoji",
"required": true
},
{
"id": 2,
"question": "Any other comments?",
"question_type": "longtext",
"required": false
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get the (paginated) results of the specified survey
requires authentication
Example request:
curl --request GET \
--get "https://aircall.postcall.io/api/accounts/1/surveys/1/results?since=2023-05-01&until=2023-05-09" \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 55
{
"data": [
{
"id": 1,
"sent_at": "2023-05-30T11:24:04.000000Z",
"answered_at": "2023-05-07T11:19:31.000000Z",
"call": {
"id": 1,
"direction": "inbound",
"source": "aircall",
"source_external_id": "1",
"duration_seconds": 0,
"contact_phone_number": "+12725062076",
"business_phone_number_id": "640126",
"tags": null,
"source_external_user_id": "1038829",
"source_external_call_queue_id": null,
"source_external_user_email": "phil@postcall.io",
"source_external_user_name": "Phil Manavopoulos",
"started_at": "2023-05-07T11:19:21.000000Z",
"answered_at": "2023-05-07T11:19:24.000000Z",
"source_external_asset": "https://example.com/1/recording"
},
"contact": {
"id": 1,
"source": "demo-seed",
"source_external_id": "jackeline79@example.com",
"subscribed": 1,
"name": "Gussie Bednar",
"unsubscribed_at": null,
"unsubscribe_reason": null
},
"answers": [
{
"id": 1,
"survey_question_id": 1,
"question": "How did we do today?",
"question_type": "csat-5-emoji",
"answer": "ok"
},
{
"id": 2,
"survey_question_id": 2,
"question": "Any other comments?",
"question_type": "longtext",
"answer": "Perspiciatis optio et voluptatem eveniet possimus aliquid. Laudantium sequi ut animi placeat ad autem recusandae."
}
]
},
{
"id": 5,
"sent_at": "2023-05-30T11:24:04.000000Z",
"answered_at": "2023-05-07T23:47:04.000000Z",
"call": {
"id": 5,
"direction": "inbound",
"source": "aircall",
"source_external_id": "5",
"duration_seconds": 520,
"contact_phone_number": "+19738476153",
"business_phone_number_id": "640126",
"tags": null,
"source_external_user_id": "1038829",
"source_external_call_queue_id": null,
"source_external_user_email": "phil@postcall.io",
"source_external_user_name": "Phil Manavopoulos",
"started_at": "2023-05-07T23:46:54.000000Z",
"answered_at": "2023-05-07T23:46:57.000000Z",
"source_external_asset": "https://example.com/5/recording"
},
"contact": {
"id": 5,
"source": "demo-seed",
"source_external_id": "sschinner@example.org",
"subscribed": 1,
"name": "Stan Koelpin",
"unsubscribed_at": null,
"unsubscribe_reason": null
},
"answers": [
{
"id": 5,
"survey_question_id": 1,
"question": "How did we do today?",
"question_type": "csat-5-emoji",
"answer": "good"
},
{
"id": 6,
"survey_question_id": 2,
"question": "Any other comments?",
"question_type": "longtext",
"answer": "Maxime culpa quod ipsum doloremque nihil repudiandae consequatur ex. Est unde dolor amet totam maiores."
}
]
}
],
"path": "https://aircall.postcall.io/api/accounts/1/surveys/1/results",
"per_page": 2,
"next_cursor": "eyJzdXJ2ZXlfaW5zdGFuY2VzLmlkIjo1LCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
"next_page_url": "https://aircall.postcall.io/api/accounts/1/surveys/1/results?per_page=2&since=2023-05-01T00%3A00%3A00%2B00%3A00&until=2023-05-09T00%3A00%3A00%2B00%3A00&cursor=eyJzdXJ2ZXlfaW5zdGFuY2VzLmlkIjo1LCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
"prev_cursor": null,
"prev_page_url": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.