Skip to content
POST /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

defaultsRecord<string, any>

An entry's overrides.defaults.

frozen_paramsRecord<string, any>

An entry's frozen_params.

user_idstring

Whose values (usr_…). Omitted: yours.

Response Body

subjectobject
required
emailstring
is_selfboolean
namestring,null
user_idstring
can_preview_othersboolean

You hold member:manage, so user_id may name another member.

rowsobject[]
keystring
messagestring

For reason: invalid: why a save would refuse it.

missingobject[]

Every path the refusal names (alternatives flattened), with its person-facing label.

2 properties
labelstring
pathstring
okboolean
reasonstring
Possible values:
missingunsafe_valueinvalid
targetstring
Possible values:
frozendefaults
value

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())