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

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. Writes as the person the link runs as, with updated_by stamped public_link:<link id>. Only the form's declared, visible fields that were sent are written (a read-only field never is); every other column keeps its value. required and the rules are judged on the row as it will read. 409 row_version_conflict with details.current_version, 409 idempotency_key_reused, 409 form_row_moved, 400 form_invalid, 400 turnstile_failed, 413 form_too_large.

Path Parameters

tokenstring
required·

The unguessable link token

keystring
required·

Widget key

rowIdstring
required·

Row id

Query Parameters

tzstring

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

Request Body

expected_versioninteger

The version the visitor opened.

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
resultstring
Possible values:
updatedunchanged
row_idstring
versioninteger
curl -X PATCH 'https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/row/<rowId>' \
  -H 'Content-Type: application/json' \
  -d '{"values":{},"expected_version":0,"submission_id":"your_submission_id","turnstile_token":"your_turnstile_token"}'
const body = {
  "values": {},
  "expected_version": 0,
  "submission_id": "your_submission_id",
  "turnstile_token": "your_turnstile_token"
};

const response = await fetch('https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/row/<rowId>', {
  method: 'PATCH',
  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/<rowId>"
headers = {
    "Content-Type": "application/json",
}
payload = {
    "values": {},
    "expected_version": 0,
    "submission_id": "your_submission_id",
    "turnstile_token": "your_turnstile_token"
}

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