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

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions