Preview per-person values
/caller-binding-path/preview
Renders an entry's per-person values for one person WITHOUT saving: the live preview of unsaved edits. Same renderer and fail-closed rules as a real call, one row per key that holds a `{{caller.…}}` placeholder (a key without one is left out). A value a save would refuse reads `invalid` with the save's message; one a call would refuse reads `missing` or `unsafe_value`, with each path and the label a 409 `caller_binding_unresolved` would use. `user_id` other than yours needs `member:manage` (403 `permission_required`, checked before the lookup) and must be a member (404 `member_not_found`). Read-only: no audit row, no step-up. Any member may preview themselves.
Request Body
An entry's overrides.defaults.
An entry's frozen_params.
Whose values (usr_…). Omitted: yours.
Response Body
You hold member:manage, so user_id may name another member.
For reason: invalid: why a save would refuse it.
Every path the refusal names (alternatives flattened), with its person-facing label.
2 properties
missingunsafe_valueinvalid
frozendefaults
The rendered value (ok: true).
curl -X POST 'https://api.elaichi.ai/caller-binding-path/preview' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"user_id":"your_user_id","frozen_params":{},"defaults":{}}'const body = {
"user_id": "your_user_id",
"frozen_params": {},
"defaults": {}
};
const response = await fetch('https://api.elaichi.ai/caller-binding-path/preview', {
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/caller-binding-path/preview"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
payload = {
"user_id": "your_user_id",
"frozen_params": {},
"defaults": {}
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())