---
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
- `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
    - `url` string, uri, required
    - `response` string, required
    - `responseStatusCode` integer, required
    - `responseDurationMs` integer, required — Response duration in milliseconds.
    - `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
    - `triggerType` 0 | 1, required — The reason an attempt was made: - Scheduled = 0 - Manual = 1
    - `msgId` string, required — The Message's ID.
    - `endpointId` string, required — The Endpoint's ID.
    - `id` string, required — The MessageAttempt's ID.
    - `timestamp` string, date-time, required
    - `msg` MessageOut
      - `eventId` string, nullable — Optional unique identifier for the message
      - `eventType` string, required — The event type's name
      - `payload` object, required
      - `channels` string[], nullable — List of free-form identifiers that endpoints can filter by
      - `id` string, required — The Message's ID.
      - `timestamp` string, date-time, required
      - `tags` string[], nullable
      - `deliverAt` string, date-time, nullable
  - `iterator` string, nullable, required
  - `prevIterator` string, nullable
  - `done` boolean, required

## Other responses

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

---

[API](https://skmtc.net/svix/apis/svix-api.md) · [All operations](https://skmtc.net/svix/apis/svix-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/svix/svix-api/versions/16dbcc056c48/schema)
