---
title: "Get an event"
method: GET
path: "/v1/events/{event_id}"
tags: ["Events"]
---

# Get an event

`GET /v1/events/{event_id}`

## Request

- Base URL: `https://api.scrip.dev`
- URL: `https://api.scrip.dev/v1/events/{event_id}`
- Auth: HTTP bearer

Retrieve a single event by ID, including processing status and rule evaluation results.

## Path parameters

- `event_id` string, uuid, required

## Query parameters

- `include_skipped` boolean

## Response `200`

Event details with rule executions

- EventDetailResponse: An event with its processing status and the rule evaluations it produced.
  - `created_at` string, date-time: When this event was created
  - `error_code` string: Why a FAILED event failed, as a code from the Errors page, such as `program_inactive`, `participant_inactive` or `unknown_participant`. Absent when the event did not fail or the failure has no code.
  - `error_message` string: Error details if the event failed during processing
  - `event_data` object: Original event data payload
  - `event_timestamp` string, date-time: When the event occurred (from the ingestion request)
  - `event_type` 'EXTERNAL' | 'SYSTEM' | 'OPERATIONAL': Whether you sent the event or Scrip generated it.
  - `external_id` string: Your system's identifier for the participant (the value provided at ingestion)
  - `id` string, uuid: Unique identifier for this event
  - `idempotency_key` string: Client-provided unique key for deduplication
  - `participant_id` string, uuid: Participant UUID, resolved from external_id if one was provided at ingestion
  - `processed_at` string, date-time: When the event finished processing (null while pending or processing)
  - `program_id` string, uuid: Program this event belongs to
  - `received_at` string, date-time: When Scrip received the event
  - `recipient_id` string, uuid: Recipient participant UUID sent as recipient_id or recipient_external_id; rules read it as recipient.id
  - `rule_evaluations` RuleEvaluationResponse[]: Recorded rule-evaluation rows for this event. Rules whose conditions cleanly evaluate to false are not recorded; later rules in the same set after a successful stop_after_match are not evaluated or recorded. SKIPPED_ERROR and SKIPPED_TIMEOUT rows are omitted unless include_skipped=true.
    - `created_at` string, date-time: When the evaluation occurred
    - `error_message` string: Error details if the rule failed during execution
    - `id` string, uuid: Unique identifier for this evaluation record
    - `reason` string: Why a recorded SKIPPED evaluation was skipped. On a SUCCESS evaluation, REFERENCE_ALREADY_SETTLED means a CREDIT to HELD was skipped because its reference_id had already settled. Absent otherwise.
    - `rule_history_id` string, uuid: Snapshot of the rule version that was active when this evaluation occurred
    - `rule_id` string, uuid: Rule that was evaluated
    - `rule_name` string: The name of the rule when it was evaluated.
    - `rule_set_id` string, uuid: Rule set that contained the rule when this evaluation occurred
    - `status` 'SUCCESS' | 'FAILED' | 'SKIPPED' | 'SKIPPED_ERROR' | 'SKIPPED_TIMEOUT': The recorded result of the evaluation.
    - `stopped_by_rule_id` string, uuid: The earlier rule whose `stop_after_match` skipped this rule. Only rule configuration simulations return it; event results have no row for a skipped rule.
  - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED': Where the event is in processing.
  - `updated_at` string, date-time: When this event was last updated

## Other responses

- `400`: Invalid ID format (code: validation_error)
- `401`: The API key is missing or not valid. See [Authentication](https://docs.scrip.dev/authentication).
- `404`: Resource not found (code: event_not_found)
- `429`: Too many requests. Wait the number of seconds in the `Retry-After` header, then retry. See [Limits and durations](https://docs.scrip.dev/limits#rate-limits).
- `500`: Something failed on Scrip's side. Retry the request, and quote `request_id` if it keeps failing. [Errors](https://docs.scrip.dev/errors) lists every code, and the [API introduction](https://docs.scrip.dev/api-reference/introduction) describes the error format.

---

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