> For the complete Lynkow documentation index in agent-friendly format, see [llms.txt](/llms.txt).

# Submit a form

**Publié le** : 2026-07-04
**Catégorie** : Forms & Reviews

## `POST /forms/:slug/submissions`

**Submit a form**

Submit a form by slug. Requires spam protection: include the
honeypot field (empty) and a client-set ISO 8601 `timestamp`, OR a
reCAPTCHA token, depending on the site's `GET /spam-settings`
configuration. On success returns `{ data: { success, message, redirectUrl? } }`: a success flag, the form's configured confirmation
message, and an optional post-submit redirect URL. Status code: 201.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `slug` | path | string | Yes | URL-friendly identifier, unique per site and locale |


### Request Body

Content-Type: `application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | Yes | Required. Resource data object |
| `honeypot` | string | No | Spam-trap field that must remain empty; a filled value causes silent rejection |
| `recaptchaToken` | string | No | CAPTCHA challenge token for spam verification |
| `session_id` | string | No | Analytics session UUID |
| `visitor_id` | string | No | 8-64 characters |


### Responses

| Status | Description |
| --- | --- |
| `201` | Successful response |
| `404` | Not found |
| `422` | Validation error |


> **Notes:** Spam protection: see top-level `x-spam-protection`. Rate-limit
> bucket: public-submit (~30 rpm per IP). Spam handling: a filled
> honeypot returns 200 with a fake-success body (silently accepted); a
> too-fast or missing/invalid submission timestamp returns 429; an
> expired timestamp returns 400; a missing or failed reCAPTCHA (when
> configured) returns 400. On validation failure: 422.

### Examples

```curl
curl -X POST "https://api.lynkow.com/storefront/{siteId}/forms/contact/submissions" \
  -H "Content-Type: application/json" \
  -d '{ "data": { "email": "anna.cooper@example.com", "message": "Hi" }, "honeypot": "", "timestamp": "2026-05-12T14:32:18.000Z" }'
```

```javascript
await fetch(`https://api.lynkow.com/storefront/${siteId}/forms/contact/submissions`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    data: { email: 'anna.cooper@example.com', message: 'Hi' },
    honeypot: '',
    timestamp: new Date().toISOString(),
  }),
})
```

### Response Example

```json
"{\n  \"data\": {\n    \"success\": true,\n    \"message\": \"Thanks, we got your message and will reply within 24 hours.\",\n    \"redirectUrl\": \"https://acme.io/thank-you\"\n  }\n}\n"
```

---