Datadog/on Call
Datadog On-Call — on-call schedules, escalation policies, and routing
2026.10.21.1
Changed: The README now shows how to store the API key and application key
in a datadog vault and wire them with ${{ vault.get("datadog", "API_KEY") }}
and ${{ vault.get("datadog", "APP_KEY") }}. The previous example passed
DD_API_KEY and DD_APP_KEY as literal global arguments, which swamp rejects
for sensitive arguments.
Changed: The apiKey and appKey descriptions now say to supply them with
a vault.get expression. Both were already marked sensitive.
Upgrade note: Documentation and argument descriptions only. Methods, arguments, resource schemas and stored data are unchanged.
Global Arguments
| Argument | Type | Description |
|---|---|---|
| apiKey | string | Datadog API key (DD-API-KEY). Wire it with ${{ vault.get("datadog", "API_KEY") }}; never pass the literal value. |
| appKey | string | Datadog application key (DD-APPLICATION-KEY). Wire it with ${{ vault.get("datadog", "APP_KEY") }}; never pass the literal value. |
| site? | enum | Datadog site |
| Argument | Type | Description |
|---|---|---|
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| name | string | Specifies the name for the new escalation policy. |
| resolve_page_on_policy_end? | boolean | Indicates whether the page is automatically resolved when the policy ends. |
| retries? | number | Specifies how many times the escalation sequence is retried if there is no re... |
| steps | array | A list of escalation steps, each defining assignment, escalation timeout, and... |
| Argument | Type | Description |
|---|---|---|
| policy_id | string | The ID of the escalation policy |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| Argument | Type | Description |
|---|---|---|
| policy_id | string | The ID of the escalation policy |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| name | string | Specifies the name of the escalation policy. |
| resolve_page_on_policy_end? | boolean | Indicates whether the page is automatically resolved when the policy ends. |
| retries? | number | Specifies how many times the escalation sequence is retried if there is no re... |
| steps | array | A list of escalation steps, each defining assignment, escalation timeout, and... |
| Argument | Type | Description |
|---|---|---|
| policy_id | string | The ID of the escalation policy |
| Argument | Type | Description |
|---|---|---|
| filter_query? | string | Search query to filter schedules. Supports free-text search on schedule name ... |
| include? | string | Comma-separated list of included relationships to be returned. Allowed value:... |
| Argument | Type | Description |
|---|---|---|
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| layers | array | The layers of On-Call coverage that define rotation intervals and restrictions. |
| name | string | A human-readable name for the new schedule. |
| time_zone | string | The time zone in which the schedule is defined. |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| layers | array | The updated list of layers (rotations) for this schedule. |
| name | string | A short name for the schedule. |
| time_zone | string | The time zone used when interpreting rotation times. |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule. |
| filter_start? | string | |
| filter_end? | string | |
| include? | string | Comma-separated list of related resources to include in the response. Allowed... |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule. |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| entries | array | Array of items to submit |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule. |
| override_id | string | The ID of the override. |
| Argument | Type | Description |
|---|---|---|
| schedule_id | string | The ID of the schedule. |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| filter_position? | string | Comma-separated list of positions to retrieve. Allowed values: `previous`, `c... |
| filter_at_ts? | string |
| Argument | Type | Description |
|---|---|---|
| team_id | string | The team ID |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| Argument | Type | Description |
|---|---|---|
| team_id | string | The team ID |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| Argument | Type | Description |
|---|---|---|
| team_id | string | The team ID |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| rules? | array | A list of routing rule items that define how incoming pages should be handled. |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| config? | unknown | Notification channel configuration |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| channel_id | string | The channel ID |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| channel_id | string | The channel ID |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| category? | unknown | |
| channel_settings? | unknown | Configuration for the associated channel, if necessary |
| delay_minutes? | number | The number of minutes that will elapse before this rule is evaluated. 0 indic... |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| rule_id | string | The rule ID |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| rule_id | string | The rule ID |
| include? | string | Comma-separated list of included relationships to be returned. Allowed values... |
| category? | unknown | |
| channel_settings? | unknown | Configuration for the associated channel, if necessary |
| delay_minutes? | number | The number of minutes that will elapse before this rule is evaluated. 0 indic... |
| Argument | Type | Description |
|---|---|---|
| user_id | string | The user ID |
| rule_id | string | The rule ID |
Resources
2026.10.15.1
Changed: Generated tests now include one execution test per method, so every method is covered. Nothing behavioral changed in the model code, schemas or resources.
2026.10.14.2
Added: list_schedule_overrides, create_schedule_overrides and
delete_schedule_override for on-call schedule overrides.
create_schedule_overrides takes an entries array of override items (1 to 25)
and sends them as the data payload; include is sent as a query parameter.
Its result is stored per schedule ID.
Upgrade note: Additive only. Existing methods, schemas and stored resources are unchanged.
Modified 1 behaviors
2026.10.14.1
Added: The manifest now declares license: Apache-2.0 (SPDX). The registry quality rubric scores a declared license separately from the bundled LICENSE.md.
Upgrade note: Metadata only. No code, schema, or behavioral changes.
2026.10.07.1
Fixed: The shared API helper no longer throws on a successful response with an empty body (such as 202 Accepted); it returns an empty result. Paginated list requests tolerate an empty page body the same way. A body that is not valid JSON now fails with an error naming the HTTP method, path, and status, with a snippet of the body.
Upgrade note: Only the shared helper changed. No methods, arguments, schemas, or resources changed, so no migration is needed and existing stored resources remain valid.
2026.09.18.1
Upgrade note: Normalized npm:zod dependency version to 4.6.5 across the
repo. No behavioral changes in this extension.
2026.09.15.1
Changed: Bump zod 4.4.3 → 4.6.5
2026.09.08.1
Added: Initial code-generated release of @webframp/datadog/on-call with 21 methods covering the Datadog on call API surface.
2026.09.08.1
Added: Initial code-generated release of @webframp/datadog/on-call with 21 methods covering the Datadog on call API surface.
2026.08.28.2
Hardened codegen: instance names sanitized against path traversal; string schema patterns emit regex validation; output schemas passthrough unknown fields.
updated labels
2026.08.28.1
Changed: Normalized the extension license to Apache-2.0 and corrected the copyright holder to "Sean Escriva". Extensions that previously shipped an MIT LICENSE.md are now Apache-2.0, consistent with the repository root and every other extension. No code or behavioral changes.
Upgrade note: License text only. No API, schema, or runtime behavior changed.
2026.08.26.2
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
2026.08.26.2
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
2026.08.25.1
Changed: Updated labels for improved extension discoverability. Added cross-cutting category labels (security, observability, finops, infrastructure, networking, compliance, devops, ai, incident-response) where applicable.
updated labels
2026.08.24.1
Added: Output metadata attributes for observability.
durationMs: Method execution duration in milliseconds.collectedBy: Extension name that produced the data.fetchedAt: ISO 8601 timestamp when data was fetched (added to resources that previously lacked it).
2026.08.21.2
Changed: Error messages and input validation are more specific.
- API errors now name the HTTP method and path that was attempted (e.g.
Datadog API HTTP 404: GET /api/v2/on-call/schedules/abc-123) instead of just the raw status code and response body. This makes it possible to tell which call failed when a method makes more than one Datadog request. - A network-level failure (DNS error, connection reset, timeout) reaching the
Datadog API now raises
Datadog API request failed: <METHOD> <path>: <reason>instead of an unlabeled fetch error, so it's clear which operation was in flight when the connection dropped. create_on_call_escalation_policyandupdate_on_call_escalation_policynow reject an emptystepsarray before making a request, instead of letting Datadog return an opaque validation error for a policy with no escalation steps.create_on_call_scheduleandupdate_on_call_schedulenow reject an emptylayersarray before making a request, for the same reason — a schedule with no layers is never valid.
No changes to request/response shapes or existing successful-path behavior.
2026.08.21.1
Changed: Tightened and clarified Zod schemas as part of a repo-wide schema audit.
- Added
.min(1)toapiKeyandappKeyin the global arguments schema — both are sent directly as request headers, and an empty value would never be accepted by the Datadog API. - Added descriptions to previously undocumented
relationshipsandtypefields in the team on-call users and team routing rules resource schemas. - Added a description to the
categoryargument oncreate_user_notification_ruleandupdate_user_notification_rule, clarifying it takeshigh_urgencyorlow_urgency.
No behavioral changes — these are documentation and validation tightenings only.
2026.07.20.11
Added: Initial code-generated release of @webframp/datadog/on-call with 21 methods covering the Datadog on call API surface.
2026.08.21.1
Changed: Tightened and clarified Zod schemas as part of a repo-wide schema audit.
- Added
.min(1)toapiKeyandappKeyin the global arguments schema — both are sent directly as request headers, and an empty value would never be accepted by the Datadog API. - Added descriptions to previously undocumented
relationshipsandtypefields in the team on-call users and team routing rules resource schemas. - Added a description to the
categoryargument oncreate_user_notification_ruleandupdate_user_notification_rule, clarifying it takeshigh_urgencyorlow_urgency.
No behavioral changes — these are documentation and validation tightenings only.
2026.07.20.11
Added: Initial code-generated release of @webframp/datadog/on-call with 21 methods covering the Datadog on call API surface.
2026.07.20.11
Added: Initial code-generated release of @webframp/datadog/on-call with 21 methods covering the Datadog on call API surface.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License2/2earned
- Verified public repository2/2earned