API Reference
Log In
API Reference

Get one page of the PR Health engineer rows

Server-side paginated and sorted version of the report's engineers[] list. Rows, figures and grouping match the report exactly: one row per provider login for authors with at least one non-draft open PR, or one PR closed without merging or merged in [startDate, endDate]; rows with no provider login are grouped under unknown. The team settings apply as they do to the report, so automation authors never get a row. departmentId narrows the rows and totalElements together, before paging; assistedOnly counts AI-assisted pull requests only. Open figures reflect the current synced state within the cutoff; closedUnmerged is window-scoped. mergedPrs counts the engineer's merges in the same window under the same settings, departmentId and assistedOnly as closedUnmerged. mergedPrsAssisted is the AI-assisted subset under the same rule used by the aiShare sort, and both merge counts are 0, never null, when there are none; aiShare divides mergedPrsAssisted by mergedPrs. An author who only merged gets a row with zero open and closed counts, known by the mapped email of those merges. q keeps the engineers whose login or mapped email contains it, case-insensitively, on the page and totalElements together. Each row carries departmentLabel, the engineer's own department today by their mapped email, or Unassigned. departmentId is that department's id and departmentPath its chain of {id, name} from the top-level department down to it, placed by the same attribution departmentId filtering uses; both are an explicit null when the engineer is Unassigned. prsInWindow is openPrs + closedUnmerged + mergedPrs of the same row. pricedRottingPrs, pricedClosedUnmerged and pricedPrsInWindow are rottingPrs, closedUnmerged and prsInWindow cut to pull requests opened on or after the report's pricedSince: price those, never the full counts. activeMappedEmail is the row's mappedEmail, trimmed and lower-cased, only when an active GitHub mapping ties that email to the row's own login, and that mapping is either resolved or an admin's manual override (compared case-insensitively); it is an explicit null otherwise and always on the unknown row. sortBy: authorLogin, openPrs, agingPrs, rottingPrs, closedUnmerged, mergedPrs, aiShare, rotRate, departmentLabel, oldestInactiveDays; ties and null sort values order by authorLogin ascending, nulls last. sortBy=authorLogin orders by the identity the row displays, activeMappedEmail else the login, with the unknown row last in both directions. size is capped at 200. The window may span at most 366 days counting both startDate and endDate (for example 2024-01-01 to 2025-01-01, so a one-year window that crosses 29 February is one day too wide), and startDate must not be after endDate; either violation is a 400.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string
required

VCS source: github or gitlab

date
required

Start date (ISO yyyy-MM-dd) of the closed-without-merge window

date
required

End date (ISO yyyy-MM-dd), inclusive

int32
Defaults to 0

Zero-based page index

int32
Defaults to 50

Page size, 1..200

string
Defaults to authorLogin

authorLogin, openPrs, agingPrs, rottingPrs, closedUnmerged, mergedPrs, aiShare, rotRate, departmentLabel or oldestInactiveDays

string
Defaults to asc

asc or desc

int64

Scope every figure to a single department (and, with includeDescendants, its subtree), by the department its members belong to today. Must belong to the caller's organization. Omit it for the whole organization.

boolean
Defaults to false

When departmentId is set, also include its descendant departments. Ignored when departmentId is omitted.

boolean
Defaults to false

Keep only AI-assisted pull requests (the co-author flag or a detected coding-assistant vendor). Defaults to false here; the team's own default is the assistedOnly team setting, which the caller passes explicitly.

string

Keep only engineers whose login or mapped email contains this text, case-insensitively (unknown finds the rows with no login). At most 100 characters; blank means no search.

string

Team to read or write, as the team's hashid (the same id as /v2/api/teams/{id}). The caller must belong to it or be able to read it: 403 otherwise, 404 when no such team exists. An API key may only name its own organization. Omit it for the API key's organization, or for a signed-in user the first organization they belong to.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
*/*