---
title: "Find a trigger delivery by ID"
method: GET
path: "/api/v1/trigger-delivery/deliveries/{id}"
tags: ["Triggers"]
---

# Find a trigger delivery by ID

`GET /api/v1/trigger-delivery/deliveries/{id}`

## Request

- Base URL: `https://$SCALEKIT_ENVIRONMENT_URL`
- URL: `https://$SCALEKIT_ENVIRONMENT_URL/api/v1/trigger-delivery/deliveries/{id}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://$SCALEKIT_ENVIRONMENT_URL/oauth/token`
- TypeScript: <https://skmtc.dev/scalekit/apis/scalekit-api-reference/docs/api/v1/trigger-delivery/deliveries/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Finds one trigger event by its message ID or its event ID, and returns every delivery attempt made for it across every delivery endpoint in this environment, oldest first. Use this endpoint when you hold an ID from your own server: the message ID arrives as the `webhook-id` header, and the event ID is the payload's `dedupe_key`. Pass the ID in the path. Attempt IDs (`atmpt_`) are not accepted. Only this environment's deliveries are searched, so an ID from another environment is reported as not found. Returns the event's message ID, event ID and creation time, the trigger subscription, trigger and connection it came from while they still exist, and its attempts, each naming the endpoint and URL it was sent to, with response bodies cut to their first 4096 bytes. Returns at most 50 attempts, the newest 50; `truncated` is true when the event has more. The event payload is never returned.

## Path parameters

- `id` string, required

## Response `200`

The event, with its message ID, event ID and creation time, the trigger and connection it came from, and its delivery attempts to every endpoint, oldest first

- TriggersLookupTriggerDeliveryResponse
  - `attempts` TriggersTriggerDeliveryAttempt[]: The event's delivery attempts to every endpoint in this environment, oldest first. Each names the endpoint_id and endpoint_url it was sent to.
    - `endpoint_id` string: ID of the endpoint this attempt was made against.
    - `endpoint_url` string: URL this attempt was sent to.
    - `id` string: ID of this delivery attempt.
    - `msg_id` string: ID of the trigger event message this attempt delivered. Every attempt to deliver the same event shares this ID.
    - `response` string: Response body the endpoint returned for this attempt. A long body may be truncated.
    - `response_duration_ms` integer: How long the endpoint took to respond to this attempt, in milliseconds.
    - `response_status_code` integer: HTTP status code the endpoint returned for this attempt.
    - `response_truncated` boolean: True when `response` was cut to its first 4096 bytes. Set only by ListTriggerDeliveryAttemptsByMessage and LookupTriggerDelivery, which apply that cap.
    - `status` 'SUCCESS' | 'PENDING' | 'FAIL' | 'SENDING' | 'CANCELED': The outcome of one delivery attempt. - SUCCESS: The endpoint accepted the delivery. - PENDING: The attempt is waiting to be sent. - FAIL: The attempt failed. Failed deliveries are retried. - SENDING: The attempt is being sent. - CANCELED: The attempt was canceled and will not be sent.
    - `timestamp` string, date-time: When this attempt was made.
    - `trigger_type` 'TRIGGER_DELIVERY_ATTEMPT_TRIGGER_TYPE_SCHEDULED' | 'TRIGGER_DELIVERY_ATTEMPT_TRIGGER_TYPE_MANUAL': Why a delivery attempt was made. - TRIGGER_DELIVERY_ATTEMPT_TRIGGER_TYPE_SCHEDULED: The first attempt or an automatic retry on the delivery schedule. - TRIGGER_DELIVERY_ATTEMPT_TRIGGER_TYPE_MANUAL: A retry someone started by hand.
  - `connection_id` string: ID of the connection the event came from. Present even after the connection is deleted. Empty when the event carries none.
  - `connection_key_id` string: Key ID of the connection the event came from. Empty when the connection no longer exists.
  - `connection_provider` string: Provider of the connection the event came from. Empty when the connection no longer exists.
  - `event_id` string: Event ID of the event: the payload's `dedupe_key` and `correlation_id`. Empty when the event was sent without one.
  - `message_timestamp` string, date-time: When the event was accepted for delivery.
  - `msg_id` string: Message ID of the event, sent to each endpoint as the `webhook-id` header.
  - `subscription_id` string: ID of the trigger subscription that sent the event. Present even after the subscription is deleted. Empty when the event carries none.
  - `trigger_mode` 'WEBHOOK' | 'POLL': How a trigger detects that something happened. - WEBHOOK: The provider posts to a Scalekit URL when the event occurs. - POLL: Scalekit walks the provider's list on a cadence.
  - `trigger_name` string: Key of the trigger that fired, as the subscription was created with. Empty when the subscription no longer exists.
  - `truncated` boolean: True when the event has more than the 50 attempts returned. The newest 50 are returned, so the earliest attempts are missing when this is true.

## Other responses

- `400`: Invalid request - id is empty, longer than 256 characters, contains characters other than letters, digits, `.`, `_` and `-`, or is an attempt ID (`atmpt_`)
- `404`: Not found - no trigger event with this message ID or event ID exists in this environment (error_code NOT_FOUND), or Triggers is not enabled for the environment (error_code RESOURCE_NOT_FOUND)
- `429`: Too many requests - deliveries are being read too often. Retry shortly; the request is not retried on your behalf
- `500`: Internal error - the delivery could not be looked up; retry the request

## Changes

- **2026-10-30** `f47f1022d844`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/scalekit/apis/scalekit-api-reference/changes/api/v1/trigger-delivery/deliveries/:id/get.md)

---

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