Docs

Type a word or a question. Esc closes the search.

Sign in Start free

Create an alert plan

Creates an alert plan with ordered notification steps and optional repeats.

POST https://app.upfour.io/v1/escalation-policies
POST https://app.upfour.io/v1/escalation-policies

A real request. Sending it changes data in your up4 account.

Authorization
AuthorizationA pls_ key. It stays in this browser tab. Needs escalation_policy.write.
Body
More fields3

1 more field is only available in JSON.

Headers

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key when the field is empty.

Request
Responsenot sent yet
Fill in a key and press Send request (⌘↵).
The answer appears here.
scope escalation_policy.write stable Idempotency-Key supported returns 201

Body

application/json required 5 fields

namestringrequired

Unique within the company.

In the app: Alert plan name
stepsCreateEscalationStepInput[]required

The steps in order, at least one. On update they replace the current steps.

Nested fields 3 fields
FieldTypeDescription
targets optional string[] What the step notifies, at least one entry: alert channel IDs, or on-call rotations written as oncall:<schedule ID>. A rotation is resolved when the step fires, to the person on call at that moment (an override wins) and their own alert channels. Channels and rotations must belong to the company; a client plan may also use that client's. In the app: Who should we alert?
urgency optional string one ofhighlowsmsvoice Which channel types the step uses: high every type, sms only SMS, voice only voice, low only email channels. Empty means high. In the app: How urgent is this alert?
wait_seconds optional integer Seconds to wait after the previous step; from the second step on at least 60. In the app: Wait for
All other fields3 fields
client_iduuid · nullable
descriptionstring
repeat_countinteger

How often the whole plan repeats after the last step, 0 to 8. A value outside that range is stored as 0.

In the app: Reminders after the last step

Returns

A successful request returns 201 with application/json.

Response fields 1 top-level fields
FieldTypeDescription
data EscalationPolicy
EscalationPolicy · 18 fields
FieldTypeDescription
created_at string (date-time)
description string
id uuid
monitor_count integer Monitors currently assigned to the plan. Only filled in the list.
name string
organization_id uuid
repeat_count integer
repeat_interval_seconds integer Pause between repeats of the plan; fixed at 15 minutes.
steps EscalationStep[] · nullable
Each item · 7 fields
FieldTypeDescription
created_at string (date-time)
escalation_policy_id uuid
id uuid
position integer Zero-based position within the plan.
targets string[] · nullable Alert channel IDs and on-call rotations written as oncall:<schedule ID>.
urgency string one ofhighlowsmsvoice
wait_seconds integer Seconds to wait after the previous step.
updated_at string (date-time)
client_id uuid

Errors

Only the errors this operation can return. Every error uses the same envelope.

Status Code Meaning
400 bad_request The request is malformed or fails validation.
402 billing_action_unavailable The Company's billing state does not allow this action. When: A metered or limited action while the billing state, such as paused or without credit, blocks it; details holds the action and billing_state. Fix: Top up the credit or change the plan, then retry.
403 permission_denied The credentials do not permit this action.
503 quota_gate_unavailable The limit check itself failed, so the action was not carried out. When: The quota service could not decide while the request ran. Fix: Retry in a moment; nothing was changed.
403 / 429 quota_limit_reached A usage or inventory limit of the Company was reached. When: Counters and concurrency limits answer 429 with Retry-After, inventory and capacity limits answer 403; details holds purpose, limit and window. Fix: On 429 wait Retry-After seconds; on 403 free something up, request a higher limit where details.raise_request is true, or buy an extension.

Every call can also return unauthorized (401), rate_limit_exceeded (429) or internal_error (500 / 502). See Responses and errors.