{
"monitor": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "CRM champions",
"frequency": "every_30_days",
"status": "active",
"results_table_id": "44444444-4444-4444-8444-444444444444",
"results_status": "ready",
"results_error": null,
"next_check_at": "2026-11-02T10:00:00.000Z",
"last_successful_check_at": null,
"created_at": "2026-11-02T10:00:00.000Z",
"updated_at": "2026-11-02T10:00:00.000Z",
"webhook_url": "https://hooks.example.com/airscale/job-changes",
"webhook_configured": true,
"run_block_reason": null,
"run_block_detail": null,
"active_profile_count": 1,
"unread_event_count": 0
},
"signing_secret": "example-signing-secret",
"signing_secret_warning": "Store this secret now. It is not returned again."
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": "<string>",
"message": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Update a job-change monitor
Rename a monitor, change its frequency, pause or resume checks, change its webhook, or rotate the signing secret. Rate limit: 120 requests per fixed minute per API key, shared by all job-change monitor endpoints.
{
"monitor": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "CRM champions",
"frequency": "every_30_days",
"status": "active",
"results_table_id": "44444444-4444-4444-8444-444444444444",
"results_status": "ready",
"results_error": null,
"next_check_at": "2026-11-02T10:00:00.000Z",
"last_successful_check_at": null,
"created_at": "2026-11-02T10:00:00.000Z",
"updated_at": "2026-11-02T10:00:00.000Z",
"webhook_url": "https://hooks.example.com/airscale/job-changes",
"webhook_configured": true,
"run_block_reason": null,
"run_block_detail": null,
"active_profile_count": 1,
"unread_event_count": 0
},
"signing_secret": "example-signing-secret",
"signing_secret_warning": "Store this secret now. It is not returned again."
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": "<string>",
"message": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}PATCH. The body accepts name, frequency, action (pause or resume), webhook_url, and rotate_signing_secret: true, and they can be combined in one request, for example {"name": "CRM champions (Q4)", "action": "pause"}.
The response returns the complete updated monitor, including its active profile and unread event counts.
Pause and resume
Pausing stops future checks and clearsnext_check_at. Resuming requires at least one active profile and reruns monitoring admission, including the credit check for the next full check; an empty monitor returns 422 no_active_profiles and a workspace that cannot pay returns 402 insufficient_credits.
A resumed monitor that has never completed a check is due immediately. Otherwise its next check is one period after the last completed check, or immediately if that time has already passed.
Change the frequency
Changing the frequency of an active monitor reschedules the next check from its last completed check, never earlier than now. A monitor that has not completed a check keeps its pending first check, and a paused monitor stays paused until resumed. Recurring checks are anchored on the time the previous check became due, so long checks do not shift the schedule. Renaming a monitor also renames its results table while the table still has its generated<name> — Job changes title.
Change the webhook or recover a lost signing secret
webhook_url accepts a public HTTPS URL without embedded credentials, or null. Invalid URLs return 422 invalid_monitor_update. These fields work independently of name, frequency, and pause or resume.
- Setting or changing the URL generates a fresh signing secret.
{"rotate_signing_secret": true}alone rotates the secret of the current webhook. Rotating without an enabled webhook returns422 webhook_not_configured; combining rotation withwebhook_url: nullreturns422 invalid_monitor_update.{"webhook_url": null}disables the webhook and clears its stored secret.- Setting the same URL without rotation keeps the existing secret and returns no secret.
signing_secret and signing_secret_warning. Store the secret immediately; list and get never return it. If the response is lost, rotate again and install the newest secret.
Changing the URL, disabling, or rotating cancels pending and retryable deliveries made with the previous configuration (error_code: "webhook_configuration_changed"); delivered and failed receipts stay visible. When a send is in flight, the request returns 409 webhook_delivery_in_progress without changing anything. Wait for the delivery to settle, retry the edit, and make your receiver accept the new secret after rotation.
Webhook changes keep the monitor ID, baselines, history, results table, and schedule. They do not check profiles or spend credits.
Next step
Use Add profiles before resuming a monitor with no active profiles.Authorizations
Use an Airscale workspace API key. Never expose the key in client-side code.
Path Parameters
Body
Send at least one of name, frequency, action, webhook_url, or rotate_signing_secret.
1 - 120weekly, every_30_days, every_90_days pause, resume Set or change the webhook (a public HTTPS URL without embedded credentials), or send null to disable it and clear its signing secret. Setting a new URL returns a fresh signing_secret.
2048Generate a new signing secret for the enabled webhook. Cannot be combined with webhook_url: null.
Response
The updated monitor. signing_secret and signing_secret_warning appear only when a new secret was generated.