Skip to content
POST /public/dashboard/{token}/widget/{key}/row

No session; the token is the credential. Served in the organization's region gateway. Every failure of the link itself (unknown, paused, expired, suspended or revoked token, setting off) is 404 not_found; a form that cannot serve right now, for any reason, is the one 409 public_form_unavailable. 400 validation_error, 429 rate_limited with Retry-After, 503 unavailable. Always an INSERT, even when the widget's mode is upsert. 201, or 200 when replayed; row_id is null unless the form is a row editor on this link. 400 form_invalid with issues (a protected or undeclared field reads as "<key> isn't part of this form"; a value of the wrong shape is refused), 400 turnstile_failed, 409 public_form_duplicate for a unique-key conflict, 409 form_row_exists for a single-row form that already has its row, 409 idempotency_key_reused, 413 form_too_large (256 KB).

Path Parameters

tokenstring
required·

The unguessable link token

keystring
required·

Widget key

Query Parameters

tzstring

The visitor's IANA time zone, for a read-only $today default. An unknown zone reads as UTC.

Request Body

submission_idstring

One per submission: a retry with the same id replays the first write.

turnstile_tokenstring

The Turnstile token (action public_form) the page solved; required when the deployment has a secret set, else 400 turnstile_failed.

valuesRecord<string, any>

Response Body

messagestring

The form's success message.

replayedboolean
result
row_idstring,null
curl -X POST 'https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/row' \
  -H 'Content-Type: application/json' \
  -d '{"values":{},"submission_id":"your_submission_id","turnstile_token":"your_turnstile_token"}'
const body = {
  "values": {},
  "submission_id": "your_submission_id",
  "turnstile_token": "your_turnstile_token"
};

const response = await fetch('https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/row', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(body),
});

const data = await response.json();
console.log(data);
import os
import requests

url = "https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/row"
headers = {
    "Content-Type": "application/json",
}
payload = {
    "values": {},
    "submission_id": "your_submission_id",
    "turnstile_token": "your_turnstile_token"
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())