---
title: "List Destination Attempts"
method: GET
path: "/tenants/{tenant_id}/destinations/{destination_id}/attempts"
tags: ["Destinations"]
---

# List Destination Attempts

`GET /tenants/{tenant_id}/destinations/{destination_id}/attempts`

## Request

- Base URL: `https://api.outpost.hookdeck.com/2025-07-01`
- URL: `https://api.outpost.hookdeck.com/2025-07-01/tenants/{tenant_id}/destinations/{destination_id}/attempts`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Retrieves a paginated list of attempts scoped to a specific destination.

Returns `404` if the destination does not exist or has been deleted. The attempts of a deleted destination remain available from `GET /attempts?destination_id=`.

## Query parameters

- `event_id` union
  - string
  - string[]
- `status` 'success' | 'failed'
- `topic` union
  - string
  - string[]
- `time` Operator: Comparison operators for filtering by date-time values (RFC3339 or YYYY-MM-DD format).
  - `gte` string, date-time: Filter with value >= the specified date-time.
  - `lte` string, date-time: Filter with value <= the specified date-time.
  - `gt` string, date-time: Filter with value > the specified date-time.
  - `lt` string, date-time: Filter with value < the specified date-time.
- `limit` integer
- `next` string
- `prev` string
- `include` union
  - string
  - string[]
- `order_by` 'time'
- `dir` 'asc' | 'desc'

## Response `200`

A paginated list of attempts for the destination.

- AttemptPaginatedResult: Paginated list of attempts.
  - `pagination` SeekPagination: Cursor-based pagination metadata for list responses.
    - `order_by` string: The field being sorted on.
    - `dir` 'asc' | 'desc': Sort direction.
    - `limit` integer: Page size limit.
    - `next` string, nullable: Cursor for the next page of results. Null if no more results.
    - `prev` string, nullable: Cursor for the previous page of results. Null if on first page.
  - `models` Attempt[]: Array of attempt objects.
    - `id` string: Unique identifier for this attempt.
    - `tenant_id` string: The tenant this attempt belongs to.
    - `status` 'success' | 'failed': The attempt status.
    - `time` string, date-time: Time the attempt was made.
    - `code` string: Response status code or error code.
    - `response_data` object, nullable: Response data from the attempt. Only included when include=response_data.
    - `attempt_number` integer: The attempt number (1 for first attempt, 2+ for retries).
    - `manual` boolean: Whether this attempt was manually triggered (e.g., a retry initiated by a user).
    - `latency_ms` integer, nullable: Time in milliseconds from sending the attempt to receiving the destination's response (or the error), measured around the provider's publish call. Null for attempts that never reached the provider and for attempts recorded before latency was tracked.
    - `event_id` string: The ID of the associated event.
    - `destination_id` string: The destination ID this attempt was sent to.
    - `event` union: The associated event object. Only present when include=event or include=event.data.
      - EventFull: Full event object with data (returned when include=event.data).
        - `id` string
        - `tenant_id` string: The tenant this event belongs to.
        - `destination_id` string: The destination this event was delivered to.
        - `topic` string
        - `time` string, date-time: Time the event was received.
        - `eligible_for_retry` boolean: Whether this event can be retried.
        - `metadata` object, nullable
        - `data` object: The event payload data.
      - EventSummary: Event object without data (returned when include=event).
        - `id` string
        - `tenant_id` string: The tenant this event belongs to.
        - `destination_id` string: The destination this event was delivered to.
        - `topic` string
        - `time` string, date-time: Time the event was received.
        - `eligible_for_retry` boolean: Whether this event can be retried.
        - `metadata` object, nullable
    - `destination` AttemptDestination: The destination an attempt was sent to, without credentials. Use the destination endpoints to retrieve credentials.
      - `id` string, required: Control plane generated ID or user provided ID for the destination.
      - `tenant_id` string, required: The tenant the destination belongs to.
      - `type` string, required: Type of the destination.
      - `topics` union, required: "*" or an array of enabled topics. Topic strings can include "*" as a wildcard matching any run of characters. When available topics are configured, wildcard patterns must match at least one available topic.
        - '*'
        - string[]
      - `filter` Filter, nullable: Optional JSON schema filter for event matching. Events must match this filter to be delivered to this destination. Supports operators: $eq, $neq, $gt, $gte, $lt, $lte, $in, $nin, $startsWith, $endsWith, $exist, $or, $and, $not. If null or empty, all events matching the topic filter will be delivered. Uses full-replacement semantics on update: send a new object to replace, null or `{}` to clear, omit for no change.
      - `config` object, required: Type-specific destination configuration.
      - `delivery_metadata` object, nullable: Static key-value pairs merged into event metadata on every attempt.
      - `metadata` object, nullable: Arbitrary contextual information stored with the destination.
      - `disabled_at` string, date-time, nullable, required: ISO Date when the destination was disabled, or null if enabled.
      - `created_at` string, date-time, required: ISO Date when the destination was created.
      - `updated_at` string, date-time, required: ISO Date when the destination was last updated.
      - `target` string, required: A human-readable representation of the destination target (e.g., URL host). Read-only.
      - `target_url` string, url, nullable: A URL link to the destination target. Read-only.

## Other responses

- `400`: Malformed JSON or invalid request parameters.
- `401`: Missing or invalid authentication credentials.
- `403`: The credentials are valid but not allowed to perform the request.
- `404`: Requested resource not found.
- `422`: Request body fails validation.
- `500`: Unexpected server error.

## Changes

- **2026-10-02** `245bc66dbe5a`: 3 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `403`
  - added the non-success response with the status `422`
- **2026-09-28** `c7b12e3724c0`: 1 breaking, 15 info
  - the `models/items/destination` response's property type changed from no type to `object` for status `200`
  - added the optional property `models/items/destination/delivery_metadata` to the response with the `200` status
  - added the optional property `models/items/destination/filter` to the response with the `200` status
  - added the optional property `models/items/destination/metadata` to the response with the `200` status
  - …12 more
- **2026-09-23** `00e66862a43b`: 1 info
  - added the optional property `models/items/latency_ms` to the response with the `200` status
- **2026-04-30** `4e68e64777ea`: 1 breaking, 1 info
  - added `#/components/schemas/DestinationKafka` to the `models/items/destination` response property `oneOf` list for the response status `200`
  - added `kafka` discriminator mapping keys to the `models/items/destination` response property for the response status `200`
- **2026-04-29** `bcb9e555f8f3`: 4 warning, 1 info
  - deleted the `query` request parameter `time[gt]`
  - deleted the `query` request parameter `time[gte]`
  - deleted the `query` request parameter `time[lt]`
  - deleted the `query` request parameter `time[lte]`
  - …1 more

[Operation history](https://skmtc.dev/hookdeck/apis/outpost-api/changes/tenants/:tenant_id/destinations/:destination_id/attempts/get.md)

---

[API](https://skmtc.dev/hookdeck/apis/outpost-api.md) - [All operations](https://skmtc.dev/hookdeck/apis/outpost-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hookdeck/apis/outpost-api/revisions/10262afe0dba?raw)
