POST /f/{formId}
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.

Authentication

API Key (header: X-API-Key)

Path Parameters

formId string required path

Request Body required

application/json

Responses

200 Submission accepted

No response body

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
curl -X POST 'https://api.rogeriq.com/api/v1/f/string' \  -H 'Authorization: Bearer YOUR_API_TOKEN' \  -H 'Content-Type: application/json' \  -d '{}'
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);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.rogeriq.com/api/v1/f/string', headers=headers, json={})print(response.json())
Ask a question... ⌘I