> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rogeriq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit a form

Public, unauthenticated submission endpoint. Accepts multipart/form-data or application/json. Turnstile is required only on the hosted form page (rogeriq.com/forms/:id). Embeds (iframe, beacon, HTML POST) rely on honeypot, rate limiting, and FingerprintIQ for spam defense.

` POST /f/{formId} `

Submit a form

Public, unauthenticated submission endpoint. Accepts multipart/form-data or application/json. Turnstile is required only on the hosted form page (rogeriq.com/forms/:id). Embeds (iframe, beacon, HTML POST) rely on honeypot, rate limiting, and FingerprintIQ for spam defense.

## Servers

- ` https://api.rogeriq.com/api/v1 `

## Authentication

The operation accepts these alternatives. Schemes within one alternative are required together.

### Alternative 1

- ` apiKey `: ` apiKey `

  - Credential: ` X-API-Key ` in ` header `

  - API key with `riq_` prefix

## Parameters

### ` formId ` (path, required)

- ` value `: type ` string `

## Request body (required)

Content type: ` application/json `

- ` value `: type ` object ` — Field values keyed by field id (see GET /api/forms/{formId}/public for the schema).

## Responses

### ` 200 ` — Submission accepted

### ` 303 ` — Redirect to success URL (HTML form POST)

### ` 400 ` — Validation failed or file rejected

### ` 403 ` — Origin not allowed

### ` 404 ` — Form not found

### ` 410 ` — Form archived

### ` 429 ` — Rate limit exceeded

## Request examples

### cURL

```curl
curl -X POST 'https://api.rogeriq.com/api/v1/f/string' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{}'
```

### JavaScript

```javascript
const response = await fetch('https://api.rogeriq.com/api/v1/f/string', {
  method: 'POST',
  headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
      "Content-Type": "application/json"
  },
  body: JSON.stringify({})
});

const data = await response.json();
console.log(data);
```

### Python

```python
import requests

headers = {
    'Authorization': 'Bearer YOUR_API_TOKEN'
}

response = requests.post('https://api.rogeriq.com/api/v1/f/string', headers=headers, json={})
print(response.json())
```