---
title: "Receive a public Submission"
method: POST
path: "/s/{formId}"
tags: ["submissions"]
---

# Receive a public Submission

`POST /s/{formId}`

## Request

- Base URL: `https://postbag.dev`
- URL: `https://postbag.dev/s/{formId}`
- Auth: none required

Accepts JSON, URL-encoded data, or multipart form data. Multipart file fields become fl_ references in Submission data. Anonymous sandbox Forms do not accept files.

## Path parameters

- `formId` string, required

## Request body

- object

## Response `200`

Submission accepted

- object
  - `ok` boolean, required
  - `submission_id` string, required
  - `status` 'received' | 'quarantined' | 'spam', required
  - `idempotent` boolean
  - `deliveries` string[]
  - `attachments` object[]
    - `id` string, required

## Other responses

- `303`: Browser form redirect after acceptance
- `400`: Malformed request
- `402`: Retained attachment storage limit reached, including pending work
- `413`: Body, attachment size, or attachment count limit exceeded
- `422`: Validation failed
- `503`: Attachment storage unavailable

---

[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)
