Remove a company from a monitor
curl --request DELETE \
--url https://api.airscale.io/v1/new-hire-monitors/{monitor_id}/companies/{identifier} \
--header 'Authorization: Bearer <token>'const url = 'https://api.airscale.io/v1/new-hire-monitors/{monitor_id}/companies/{identifier}';
const options = {method: 'DELETE', 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/new-hire-monitors/{monitor_id}/companies/{identifier}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text){
"monitor": {
"id": "61111111-1111-4111-8111-111111111111",
"name": "Target accounts",
"frequency": "weekly",
"status": "active",
"audience": "companies",
"legacy": false,
"filters": {
"job_titles": [
"VP Sales",
"Head of Sales"
],
"excluded_job_titles": [],
"title_match": "strict",
"seniorities": [],
"hire_types": [
"external"
],
"industries": [],
"company_size": null,
"company_location": null,
"person_location": null
},
"results_table_id": "64444444-4444-4444-8444-444444444444",
"results_status": "ready",
"results_error": null,
"baseline_completed_at": null,
"next_check_at": "2026-11-09T10:05:00.000Z",
"last_successful_check_at": "2026-11-02T10:05:00.000Z",
"run_block_reason": null,
"created_at": "2026-11-02T10:00:00.000Z",
"updated_at": "2026-11-02T10:05:00.000Z",
"webhook_url": "https://hooks.example.com/airscale/new-hires",
"webhook_configured": true,
"company_count": 1,
"unresolved_company_count": 0,
"new_hire_count": 1,
"unread_event_count": 1
},
"company": {
"identifier": "example-company-2",
"linkedin_url": "https://www.linkedin.com/company/example-company-2",
"linkedin_company_id": "2036",
"name": "Example Company Two",
"status": "resolved",
"last_checked_at": "2026-11-02T10:05:00.000Z"
},
"baseline_reset": true
}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid"
}
}{
"error": {
"code": "monitor_not_found",
"message": "Monitor not found"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded: 120 requests per minute"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Remove a company from a new hire monitor
Stop watching one company; removing a company rebuilds the baseline. Rate limit: 120 requests per fixed minute per API key, shared by all new hire monitor endpoints.
DELETE
/
v1
/
new-hire-monitors
/
{monitor_id}
/
companies
/
{identifier}
Remove a company from a monitor
curl --request DELETE \
--url https://api.airscale.io/v1/new-hire-monitors/{monitor_id}/companies/{identifier} \
--header 'Authorization: Bearer <token>'const url = 'https://api.airscale.io/v1/new-hire-monitors/{monitor_id}/companies/{identifier}';
const options = {method: 'DELETE', 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/new-hire-monitors/{monitor_id}/companies/{identifier}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text){
"monitor": {
"id": "61111111-1111-4111-8111-111111111111",
"name": "Target accounts",
"frequency": "weekly",
"status": "active",
"audience": "companies",
"legacy": false,
"filters": {
"job_titles": [
"VP Sales",
"Head of Sales"
],
"excluded_job_titles": [],
"title_match": "strict",
"seniorities": [],
"hire_types": [
"external"
],
"industries": [],
"company_size": null,
"company_location": null,
"person_location": null
},
"results_table_id": "64444444-4444-4444-8444-444444444444",
"results_status": "ready",
"results_error": null,
"baseline_completed_at": null,
"next_check_at": "2026-11-09T10:05:00.000Z",
"last_successful_check_at": "2026-11-02T10:05:00.000Z",
"run_block_reason": null,
"created_at": "2026-11-02T10:00:00.000Z",
"updated_at": "2026-11-02T10:05:00.000Z",
"webhook_url": "https://hooks.example.com/airscale/new-hires",
"webhook_configured": true,
"company_count": 1,
"unresolved_company_count": 0,
"new_hire_count": 1,
"unread_event_count": 1
},
"company": {
"identifier": "example-company-2",
"linkedin_url": "https://www.linkedin.com/company/example-company-2",
"linkedin_company_id": "2036",
"name": "Example Company Two",
"status": "resolved",
"last_checked_at": "2026-11-02T10:05:00.000Z"
},
"baseline_reset": true
}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid"
}
}{
"error": {
"code": "monitor_not_found",
"message": "Monitor not found"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded: 120 requests per minute"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}New hire 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.
identifier, the lower-case company slug or numeric ID from its URL as returned in the monitor’s companies. The response returns the updated monitor, the removed company, and baseline_reset: true.
Removing a company restarts the baseline. The monitor discards undelivered findings, cancels an in-progress check, and rebuilds its baseline on the next check. New hires already delivered and the results table are kept.
422 last_company. An identifier the monitor does not watch returns 404 company_not_found. Market and legacy monitors return 422 market_monitor_has_no_companies and 422 legacy_monitor.
Next step
Use Add companies to replace a removed company.Authorizations
Use an Airscale workspace API key. Never expose the key in client-side code.
Path Parameters
The company's identifier from the monitor's company list: the lower-case company slug or numeric company ID from its LinkedIn URL.
Pattern:
^[A-Za-z0-9_-]{1,200}$