List post engagement monitors
curl --request GET \
--url https://api.airscale.io/v1/post-engagement-monitors \
--header 'Authorization: Bearer <token>'const url = 'https://api.airscale.io/v1/post-engagement-monitors';
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"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"monitors": [
{
"id": "71111111-1111-4111-8111-111111111111",
"name": "Competitor audiences",
"status": "active",
"frequency": "daily",
"engagement_types": [
"reactions",
"comments"
],
"include_existing_engagers": false,
"filters": {
"titles": [
"VP",
"Head of"
],
"locations": [
"France"
],
"excluded_company_urls": [
"https://www.linkedin.com/company/example-company"
]
},
"results_table_id": "74444444-4444-4444-8444-444444444444",
"results_status": "ready",
"results_error": null,
"next_check_at": "2026-11-03T09:00:00.000Z",
"last_checked_at": "2026-11-02T09:00:00.000Z",
"last_error": null,
"webhook_url": "https://hooks.example.com/airscale/engagers",
"webhook_configured": true,
"source_count": 2,
"engager_count": 37,
"unread_engager_count": 5,
"created_at": "2026-11-02T08:58:00.000Z",
"updated_at": "2026-11-02T09:00:00.000Z"
}
]
}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid"
}
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded: 120 requests per minute"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}List post engagement monitors
List the post engagement monitors in a workspace with their settings, results table, and source, engager and unread counts. Rate limit: 120 requests per fixed minute per API key, shared by all post engagement monitor endpoints.
GET
/
v1
/
post-engagement-monitors
List post engagement monitors
curl --request GET \
--url https://api.airscale.io/v1/post-engagement-monitors \
--header 'Authorization: Bearer <token>'const url = 'https://api.airscale.io/v1/post-engagement-monitors';
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"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"monitors": [
{
"id": "71111111-1111-4111-8111-111111111111",
"name": "Competitor audiences",
"status": "active",
"frequency": "daily",
"engagement_types": [
"reactions",
"comments"
],
"include_existing_engagers": false,
"filters": {
"titles": [
"VP",
"Head of"
],
"locations": [
"France"
],
"excluded_company_urls": [
"https://www.linkedin.com/company/example-company"
]
},
"results_table_id": "74444444-4444-4444-8444-444444444444",
"results_status": "ready",
"results_error": null,
"next_check_at": "2026-11-03T09:00:00.000Z",
"last_checked_at": "2026-11-02T09:00:00.000Z",
"last_error": null,
"webhook_url": "https://hooks.example.com/airscale/engagers",
"webhook_configured": true,
"source_count": 2,
"engager_count": 37,
"unread_engager_count": 5,
"created_at": "2026-11-02T08:58:00.000Z",
"updated_at": "2026-11-02T09:00:00.000Z"
}
]
}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid"
}
}{
"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.
source_count, engager_count, and unread_engager_count.
This operation is read-only and spends no credits. It never returns a webhook signing secret.
engager_count counts engagers delivered to the results table, and unread_engager_count is an exact count independent of any page size. A paused monitor stays in the list so you can resume it later. Deleted monitors are not listed. If a create request’s response was lost, list monitors before deciding whether to create another.