Skip to content

on-call: no way to list pages by team or responder (stable v2 list returns empty) #642

Description

@nadimchakra

Problem

There is no way to list on-call pages programmatically. pup on-call pages only supports create and get <page_id>, and the underlying API has no usable list endpoint:

  • GET /api/v2/on-call/pages returns 200 OK with content-length: 0 (empty body) — even with filter=team:<handle> or page[size]. It is not a functioning collection endpoint.
  • The only source of page records is GET /api/unstable/on-call/pages, which is undocumented and unstable.

This makes it impossible (via the stable API) to answer basic on-call questions like "how many pages did my team get this week" without scraping the Page Explorer UI.

Request

  1. A stable GET /api/v2/on-call/pages list endpoint (and a pup on-call pages list wrapper) that supports filtering by team and responder/on-call engineer id, plus time-window and pagination.
  2. In the meantime, a pup on-call pages list command wrapping the unstable endpoint — opened as Add on-call pages list command #641.

Findings on the unstable/on-call/pages endpoint (verified against datadoghq.com)

Documenting these because they limit any wrapper built today:

  • Search filter param is filter= (top-level), not filter[query]=. filter=team:<handle> works; filter=team:<uuid> (team.id:) returns 0.
  • No responder/user facet. responders:, responder:, user:, target:, responders.id:, assignee: all return 0 even for a UUID confirmed present in relationships.responders. Responder filtering is only possible client-side.
  • No server-side sort. sort=, order=, page[sort] all ignored — always oldest-first.
  • No working pagination. page[number] and page[offset] never advance (always page.current: 1); links is null; no cursor in meta.
  • No in-query time filter. created_at:>… ignored (RFC3339 → 400).
  • page[size] caps at 1000 (10000 → 400). Combined with oldest-first + no pagination, teams with >1000 all-time pages cannot retrieve recent pages.

Happy to help shape the stable endpoint's filter/pagination contract.

Metadata

Metadata

Assignees

No one assigned

    Fields

    No fields configured for Enhancement.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions