List crashes, grouped
const url = 'https://api.us.headerhawk.com/v1/crashes?limit=50';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.us.headerhawk.com/v1/crashes?limit=50' \ --header 'Authorization: Bearer <token>'The page crashes browsers reported, grouped by reason, page, frame and visibility, largest first, with the totals across every group. Reads reported data, so it spends the tenant’s budget too.
Every count is an estimate: crashes are sampled at ingestion at the site’s rate, so each stored report stands for 1 / its sample rate.
Window: at most 31 days, the last 31 by default; longer is 400.
Grouping reads every report in the window, and each page groups them
all again. Measured worst case: 19 ms reading 14,660 reports (5 MB) in
90 days.
At most the first 10,000 groups of a query can be paged through.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Only this site’s reports. Another tenant’s site, or none, is 404.
Only crashes with this reason, exactly, such as oom.
Only reports received at or after this instant. Defaults to the start
of your retention window, or where the operation bounds its window, to
that many days before to. Earlier than your retention reaches is
400.
Only reports received before this instant. Defaults to now.
How many items a page holds.
The previous page’s nextCursor. Omit it for the first page.
Responses
Section titled “Responses”A page of groups, and the totals
object
object
Why the page crashed, such as oom or unresponsive.
The page’s URL without its query or fragment.
Whether the top-level document crashed rather than a frame; null when the browser did not say.
The page’s visibility when it crashed, where the browser said.
The start of a stack a report carried. Written by a browser; untrusted text.
Across every group in the window, not only this page’s.
object
Examplegenerated
{ "data": [ { "reason": "example", "page": "example", "isTopLevel": true, "visibilityState": "example", "browsers": [ "example" ], "stackExcerpt": "example", "reportCount": 1, "estimatedReportCount": 1, "firstSeen": "2026-04-15T12:00:00Z", "lastSeen": "2026-04-15T12:00:00Z" } ], "totals": { "estimatedReportCount": 1, "reportCount": 1, "pageCount": 1, "groupCount": 1 }, "nextCursor": "example"}Headers
Section titled “Headers”The budget nearest to running out, per minute.
What is left of that budget this minute.
Seconds until that budget starts again.
A parameter was refused, or one the operation does not take was sent. The message names it.
object
object
What went wrong. An open enum: treat a code you do not know by its HTTP status.
For people. Branch on code.
Quote it when you write to us about this request.
Example
{ "error": { "code": "bad_request" }}invalid_api_key: no key, or one that is malformed, unknown, revoked
or expired. One answer for all of them.
object
object
What went wrong. An open enum: treat a code you do not know by its HTTP status.
For people. Branch on code.
Quote it when you write to us about this request.
Example
{ "error": { "code": "bad_request" }}plan_upgrade_required: the tenant’s plan does not include API access
(the key works again when it does), or does not include what this
operation reads.
object
object
What went wrong. An open enum: treat a code you do not know by its HTTP status.
For people. Branch on code.
Quote it when you write to us about this request.
Example
{ "error": { "code": "bad_request" }}No such resource in your tenant.
object
object
What went wrong. An open enum: treat a code you do not know by its HTTP status.
For people. Branch on code.
Quote it when you write to us about this request.
Example
{ "error": { "code": "bad_request" }}rate_limited: over a budget. Wait Retry-After seconds.
object
object
What went wrong. An open enum: treat a code you do not know by its HTTP status.
For people. Branch on code.
Quote it when you write to us about this request.
Example
{ "error": { "code": "bad_request" }}Headers
Section titled “Headers”Seconds to wait before trying again.
rate_limit_unavailable or upstream_unavailable: HeaderHawk could
not serve this now. Nothing is wrong with the request; try again after
Retry-After seconds.
object
object
What went wrong. An open enum: treat a code you do not know by its HTTP status.
For people. Branch on code.
Quote it when you write to us about this request.
Example
{ "error": { "code": "bad_request" }}Headers
Section titled “Headers”Seconds to wait before trying again.