Save an edit of one row through a public form
/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
The unguessable link token
Widget key
Row id
Query Parameters
The visitor's IANA time zone, for a read-only $today default. An unknown zone reads as UTC.
Request Body
The version the visitor opened.
One per submission: a retry with the same id replays the first write.
The Turnstile token (action public_form) the page solved; required when the deployment has a secret set, else 400 turnstile_failed.
Response Body
The form's success message.
updatedunchanged
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())