Share a template
/template/{id}/share
Grants one user, team, or the whole org access at a level. `use` is what lets the grantee stamp a toolbox from it (`POST /toolbox { template_id }`); `edit` additionally lets them change its entries and its own grants. Re-granting the same grantee replaces the level rather than stacking. Requires `edit` access or ownership, and `template:share`.
Path Parameters
Template id (tpl_…).
Request Body
User id (usr_…) or team id (team_…). Omit or send null for grantee_type: "org".
user and team grants target one grantee_id; org applies to every member of the organization and takes no id.
userteamorg
Same ladder for every shareable resource, low to high. view — see it exists, read its metadata/config; cannot exercise it. use — view + exercise it, resource-specific: run tools through a connection; execute a toolbox's tools through its bound connections (this DELEGATES — the caller runs through each entry's pinning editor's own authority, not necessarily their own); stamp a new toolbox by copying a template's entries; create connections from a connector. edit — use + change its settings, entries and its own grants.
viewuseedit
Response Body
User id (usr_…) or team id (team_…). Null for a grantee_type: "org" grant.
user and team grants target one grantee_id; org applies to every member of the organization and takes no id.
userteamorg
ACL entry id — the :aclId a DELETE .../share/{aclId} call takes.
Same ladder for every shareable resource, low to high. view — see it exists, read its metadata/config; cannot exercise it. use — view + exercise it, resource-specific: run tools through a connection; execute a toolbox's tools through its bound connections (this DELEGATES — the caller runs through each entry's pinning editor's own authority, not necessarily their own); stamp a new toolbox by copying a template's entries; create connections from a connector. edit — use + change its settings, entries and its own grants.
viewuseedit
The shared resource's id (a connector's slug, for that type).
connectiontoolboxtemplateconnector
curl -X POST 'https://api.elaichi.ai/template/<id>/share' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"grantee_type":"user","level":"view"}'const body = {
"grantee_type": "user",
"level": "view"
};
const response = await fetch('https://api.elaichi.ai/template/<id>/share', {
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/template/<id>/share"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
payload = {
"grantee_type": "user",
"level": "view"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())