---
title: "Get an error group"
method: POST
path: "/api/pulses/errors/{fingerprint}/"
tags: ["Error Groups"]
---

# Get an error group

`POST /api/pulses/errors/{fingerprint}/`

## Request

- Base URL: `https://api.respan.ai`
- URL: `https://api.respan.ai/api/pulses/errors/{fingerprint}/`
- Auth: HTTP bearer

Returns one error group's counts, first and last seen, reach and triage state in a time range, with its most recent failed spans.

## Path parameters

- `fingerprint` string, required

## Request body

- ErrorGroupDetailRequest
  - `start_time` string, date-time: Start of the range, ISO 8601. A time without an offset is read as UTC. Defaults to 7 days ago, which is also used if the value can't be parsed.
  - `end_time` string, date-time: End of the range, ISO 8601. A time without an offset is read as UTC. Defaults to now, which is also used if the value can't be parsed.
  - `environment` string: Only count spans from this environment, such as `prod` or `test`. Omit it to include every environment.
  - `limit` integer: Most recent failures to return in `occurrences`. Values above 500 are capped at 500.

## Response `200`

The error group.

- ErrorGroupDetail: Failed spans that share one fingerprint.
  - `fingerprint` string, required: Error group ID: a hash of error class, provider, endpoint and status code. 16 uppercase hex characters.
  - `title` string, required: Readable name: error class, provider and endpoint, and status code.
  - `error_class` 'user_invalid_request' | 'user_auth_byok' | 'user_quota' | 'user_rate_limit' | 'user_content_policy' | 'user_context_window' | 'user_payload_too_large' | 'provider_down' | 'provider_overloaded' | 'provider_timeout' | 'provider_rate_limit' | 'respan_managed_auth' | 'respan_managed_billing' | 'respan_config' | 'respan_internal' | 'network_transient' | 'client_cancelled' | 'unknown', required: Normalized cause of the failure, assigned when the span is stored.
  - `fault_domain` 'user' | 'respan' | 'provider' | 'none', required: Whose fault the failure is, derived from `error_class`: `user` (your requests or your own provider keys), `provider` (the upstream provider), `respan` (Respan's gateway or managed capacity), or `none` (client cancellations).
  - `level` 'none' | 'ops_log' | 'ops_page', required: Respan's ops alert level for the error class: `ops_page` for errors Respan pages its on-call for, `ops_log` for the rest, `none` for cancellations.
  - `provider` string, required: Provider ID.
  - `endpoint` string, required: Upstream operation, such as `chat/completions`, `responses` or `embeddings`.
  - `status` integer, required: HTTP status code.
  - `count` integer, required: Failed spans in the group in the time range.
  - `first_seen` string, required: First failure in the range. UTC, ISO 8601 without a timezone suffix.
  - `last_seen` string, required: Latest failure in the range. UTC, ISO 8601 without a timezone suffix.
  - `affected_customers` integer, required: Distinct `customer_identifier` values among the failures. Spans without one count as one value.
  - `affected_models` integer, required: Distinct models among the failures.
  - `resolution` 'unresolved' | 'resolved' | 'ignored', required: Triage state. Groups you haven't triaged are `unresolved`.
  - `occurrences` ErrorGroupOccurrence[], required: Most recent failures in the group, newest first.
    - `unique_id` string, required: Span ID. Get a span returns its full request, response and error message.
    - `model` string, required
    - `status` string, required: Span status, such as `failed`.
    - `status_code` integer, required: HTTP status code.
    - `customer_identifier` string, required: Customer the span belongs to, if set.
    - `environment` string, required
    - `timestamp` string, required: When the span failed. UTC, ISO 8601 without a timezone suffix.

## Other responses

- `403`: Forbidden: the API key is missing, invalid or expired; the key doesn't grant `logs:read` (Read access does).
- `404`: The group has no failures in the time range.
- `429`: Rate limited. This endpoint allows 60 requests per minute per organization.

## Changes

- **2026-10-21** `c30bcb383ee8`: 16 breaking, 4 info
  - the response's body type changed from `object` to no type for status `200`
  - removed the required property `affected_customers` from the response with the `200` status
  - removed the required property `affected_models` from the response with the `200` status
  - removed the required property `count` from the response with the `200` status
  - …16 more
- **2026-10-02** `b830b79cfd52`: 1 info
  - endpoint added
- **2026-08-13** `4e064cf81dae`: 1 breaking
  - api path removed without deprecation
- **2026-07-31** `c26d550029f8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/keywordsai/apis/respan-api/changes/api/pulses/errors/:fingerprint/post.md)

---

[API](https://skmtc.dev/keywordsai/apis/respan-api.md) - [All operations](https://skmtc.dev/keywordsai/apis/respan-api/llms.txt) - [OpenAPI document](https://skmtc.dev/keywordsai/apis/respan-api/revisions/900841387635?raw)
