---
title: "List Attempts By Msg"
method: GET
path: "/api/v1/app/{app_id}/attempt/msg/{msg_id}"
tags: ["Message Attempt"]
---

# List Attempts By Msg

`GET /api/v1/app/{app_id}/attempt/msg/{msg_id}`

List attempts by message ID.

Note that by default this endpoint is limited to retrieving 90 days' worth of data
relative to now or, if an iterator is provided, 90 days before/after the time indicated
by the iterator ID. If you require data beyond those time ranges, you will need to explicitly
set the `before` or `after` parameter as appropriate.

## Path parameters

- `app_id` string, required — The Application's ID or UID.
- `msg_id` string, required — The Message's ID or UID.

## Query parameters

- `limit` integer — Limit the number of returned items
- `iterator` string, nullable — The iterator returned from a prior invocation
- `status` 0 | 1 | 2 | 3 | 4 — The sending status of the message: - Success = 0 - Pending = 1 - Fail = 2 - Sending = 3 - Canceled = 4
- `status_code_class` 0 | 100 | 200 | 300 | 400 | 500 — The different classes of HTTP status codes: - CodeNone = 0 - Code1xx = 100 - Code2xx = 200 - Code3xx = 300 - Code4xx = 400 - Code5xx = 500
- `channel` string, nullable — Filter response based on the channel
- `tag` string, nullable — Filter response based on the tag
- `endpoint_id` string, nullable — Filter the attempts based on the attempted endpoint
- `before` string, date-time, nullable — Only include items created before a certain date
- `after` string, date-time, nullable — Only include items created after a certain date
- `with_content` boolean — When `true` attempt content is included in the response. Defaults to `false` in v2+ of the Svix SDKs, `true` in v1 or when manually making a request without specifying this parameter.
- `expanded_statuses` boolean — When `true`, return the Canceled (4) status in attempts. If `false`, canceled attempts are returned as Success (0) for backwards compatibility.
- `event_types` string[], nullable — Filter response based on the event type

## Response `200`

- ListResponseMessageAttemptOut
  - `data` MessageAttemptOut[], required
    - `endpointId` string, required — The Endpoint's ID.
    - `id` string, required — The MessageAttempt's ID.
    - `msg` MessageOut
      - `channels` string[], nullable — List of free-form identifiers that endpoints can filter by
      - `deliverAt` string, date-time, nullable
      - `eventId` string, nullable — Optional unique identifier for the message
      - `eventType` string, required — The event type's name
      - `id` string, required — The Message's ID.
      - `payload` object, required
      - `tags` string[], nullable
      - `timestamp` string, date-time, required
    - `msgId` string, required — The Message's ID.
    - `response` string, required
    - `responseDurationMs` integer, required — Response duration in milliseconds.
    - `responseStatusCode` integer, required
    - `status` 0 | 1 | 2 | 3 | 4, required — The sending status of the message: - Success = 0 - Pending = 1 - Fail = 2 - Sending = 3 - Canceled = 4
    - `statusText` 'success' | 'pending' | 'fail' | 'sending' | 'canceled', required
    - `timestamp` string, date-time, required
    - `triggerType` 0 | 1, required — The reason an attempt was made: - Scheduled = 0 - Manual = 1
    - `url` string, uri, required
  - `done` boolean, required
  - `iterator` string, nullable, required
  - `prevIterator` string, nullable

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Validation Error
- `429` — Too Many Requests

---

[API](https://skmtc.dev/svix/apis/svix-api.md) · [All operations](https://skmtc.dev/svix/apis/svix-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/svix/svix-api/revisions/50dde67d2d2d/schema)
