---
title: "Get a submission with its deliveries"
method: GET
path: "/v1/submissions/{submissionId}"
tags: ["submissions"]
---

# Get a submission with its deliveries

`GET /v1/submissions/{submissionId}`

## Request

- Base URL: `https://postbag.dev`
- URL: `https://postbag.dev/v1/submissions/{submissionId}`
- Auth: HTTP bearer

## Path parameters

- `submissionId` string, required

## Response `200`

ok

- SubmissionDetail
  - `id` string, required
  - `form_id` string, required
  - `status` 'received' | 'quarantined' | 'spam', required
  - `quarantine_reason` string, nullable, required: Machine-readable reason when status is quarantined: schema_violation, rate_limited, origin_rejected, turnstile_failed, or over_quota. Null for received or spam submissions.
  - `test` boolean, required
  - `data` object, required
  - `form_schema_version` integer, nullable, required
  - `spam` object, required
    - `score` number, required
    - `reasons` string[], required
  - `meta` object, required
  - `received_at` string, required
  - `attachments` SubmissionAttachment[]
    - `id` string, required
    - `form_id` string, required
    - `submission_id` string, required
    - `field_name` string, required
    - `filename` string, required
    - `content_type` string, required
    - `size_bytes` integer, required
    - `sha256` string, required
    - `download_url` string, required
    - `created_at` string, required
  - `deliveries` Delivery[]
    - `id` string, required
    - `submission_id` string, required
    - `route_id` string, required
    - `destination_id` string, required
    - `status` 'pending' | 'sending' | 'sent' | 'failed' | 'dead' | 'skipped', required
    - `skip_reason` string, nullable, required
    - `attempts` integer, required
    - `next_attempt_at` string, nullable, required
    - `schema_version` integer, nullable, required
    - `payload` object, required
    - `last_response` DeliveryResult
      - `ok` boolean
      - `status_code` integer, nullable
      - `latency_ms` number
      - `response_excerpt` string
      - `error` string, nullable
    - `last_error` string, nullable, required
    - `created_at` string, required
    - `sent_at` string, nullable, required
  - `drift` object[]

## Other responses

- `400`: Error
- `401`: Error
- `403`: Error
- `404`: Not found
- `409`: Error
- `422`: Error

---

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