Extend a public link
/dashboard/{id}/public-link/{linkId}/extend
Path Parameters
Resource id
Resource id
Request Body
Response Body
Only the link's current publisher (the person whose Update now made its current copy) may change how it updates; everyone else with can_refresh takes it over with refresh first.
can_refresh, the link not expired, and form_count above 0.
May the caller switch live_tables on: the same rule as can_change_refresh. Switching off needs only can_manage.
Also needs forms on and edit_form_count above 0.
May the caller refresh the data now without a review: the link is live and the caller is its current publisher. Everyone else uses refresh with a consent, which takes the link over.
Forms on the link's pages whose edit_rows is not off.
At most 5 workflows that write a collection the dashboard reads, among those the caller may see.
Form widgets on the link's pages of the published dashboard; 0 means there is nothing to switch on.
Visitors may fill in the dashboard's forms.
With forms on and the link live: why entries are refused right now, one sentence; null when they are taken.
Viewers may filter, sort, page and export the link's tables live; every query runs as the publisher (snapshot_by).
When the next capture of this link is due, or null when none is waiting. Reflects only the requests the link has received: a workflow run that finishes inside the workflow's own 15-minute gap arms a timer first and has not asked yet, so the link can show nothing pending for up to 15 minutes after such a run.
automationinterval
manualautomationinterval
Set exactly when refresh is interval.
161224null
Why next_refresh_at is waiting: a workflow run asked inside the 15-minute minimum gap since the last capture (min_gap), the last capture failed and is retried (retry_after_failure), or the link's own schedule (interval).
min_gapretry_after_failureintervalnull
Visitors may see and change the rows of the link's editable forms.
When the copy that is being served was captured.
activepausedsuspendedexpiredrevoked
publisher_invalidpublisher_leftsettings_offdashboard_changednull
curl -X POST 'https://api.elaichi.ai/dashboard/<id>/public-link/<linkId>/extend' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"expires_in_days":0}'const body = {
"expires_in_days": 0
};
const response = await fetch('https://api.elaichi.ai/dashboard/<id>/public-link/<linkId>/extend', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
'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/dashboard/<id>/public-link/<linkId>/extend"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
payload = {
"expires_in_days": 0
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())