List delivered engagers
curl --request GET \
--url https://api.airscale.io/v1/post-engagement-monitors/{monitor_id}/engagers \
--header 'Authorization: Bearer <token>'const url = 'https://api.airscale.io/v1/post-engagement-monitors/{monitor_id}/engagers';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/post-engagement-monitors/{monitor_id}/engagers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"engagers": [
{
"id": "73333333-3333-4333-8333-333333333333",
"monitor_id": "71111111-1111-4111-8111-111111111111",
"linkedin_url": "https://www.linkedin.com/in/example-engager",
"name": "Example Engager",
"headline": "VP Sales at Example Company",
"title": "VP Sales",
"company_name": "Example Company",
"company_linkedin_url": "https://www.linkedin.com/company/example-company-2",
"location": "Paris, France",
"existing_engager": false,
"engagement_count": 2,
"first_detected_at": "2026-11-02T09:01:00.000Z",
"last_detected_at": "2026-11-02T09:01:00.000Z",
"delivered_at": "2026-11-02T09:02:00.000Z",
"read_at": null,
"webhook": {
"status": "sent",
"attempt_count": 1,
"last_attempt_at": "2026-11-02T09:02:04.000Z",
"sent_at": "2026-11-02T09:02:05.000Z",
"error_code": null
}
}
],
"next_cursor": null
}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid"
}
}{
"error": {
"code": "monitor_not_found",
"message": "Monitor not found"
}
}{
"error": {
"code": "invalid_page",
"message": "Invalid page"
}
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded: 120 requests per minute"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}List post engagers
Read cursor-paginated engagers delivered to the results table, with their webhook delivery receipts. Rate limit: 120 requests per fixed minute per API key, shared by all post engagement monitor endpoints.
GET
/
v1
/
post-engagement-monitors
/
{monitor_id}
/
engagers
List delivered engagers
curl --request GET \
--url https://api.airscale.io/v1/post-engagement-monitors/{monitor_id}/engagers \
--header 'Authorization: Bearer <token>'const url = 'https://api.airscale.io/v1/post-engagement-monitors/{monitor_id}/engagers';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/post-engagement-monitors/{monitor_id}/engagers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"engagers": [
{
"id": "73333333-3333-4333-8333-333333333333",
"monitor_id": "71111111-1111-4111-8111-111111111111",
"linkedin_url": "https://www.linkedin.com/in/example-engager",
"name": "Example Engager",
"headline": "VP Sales at Example Company",
"title": "VP Sales",
"company_name": "Example Company",
"company_linkedin_url": "https://www.linkedin.com/company/example-company-2",
"location": "Paris, France",
"existing_engager": false,
"engagement_count": 2,
"first_detected_at": "2026-11-02T09:01:00.000Z",
"last_detected_at": "2026-11-02T09:01:00.000Z",
"delivered_at": "2026-11-02T09:02:00.000Z",
"read_at": null,
"webhook": {
"status": "sent",
"attempt_count": 1,
"last_attempt_at": "2026-11-02T09:02:04.000Z",
"sent_at": "2026-11-02T09:02:05.000Z",
"error_code": null
}
}
],
"next_cursor": null
}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid"
}
}{
"error": {
"code": "monitor_not_found",
"message": "Monitor not found"
}
}{
"error": {
"code": "invalid_page",
"message": "Invalid page"
}
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded: 120 requests per minute"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Post engagement monitoring requires a V2 workspace API key. Legacy V1 API keys are not supported by these endpoints. Monitors and their credits belong to the V2 workspace associated with the key.
limit from 1 to 100 (default 50). Pass the returned next_cursor unchanged as cursor; it is null on the last page. A malformed cursor returns 422 invalid_cursor, and an invalid limit or unknown query parameter returns 422 invalid_page.
Each engager has linkedin_url, name, headline, title, company_name, company_linkedin_url, location (each null when unknown), engagement_count, first_detected_at, last_detected_at, delivered_at, and read_at. existing_engager: true marks people imported because include_existing_engagers was on. Use List engagements for the individual reactions and comments.
Webhook delivery receipts
Each engager carries awebhook object, or null when no delivery exists (for example, no webhook was configured when the engager was delivered). status is pending, sending, retryable, sent, failed, uncertain, or cancelled, with attempt_count, last_attempt_at, sent_at, and error_code (for example webhook_http_405 or webhook_configuration_changed). Use Redeliver a webhook to send an engager again.
Next step
Use Mark an engager as read after your application has processed an engager.Authorizations
Use an Airscale workspace API key. Never expose the key in client-side code.
Path Parameters
Query Parameters
Number of engagers to return, from 1 to 100. Defaults to 50.
Required range:
1 <= x <= 100Opaque cursor from the preceding response. Send it unchanged.
Required string length:
1 - 200