Share custom connector
/connector/{slug}/share
Grants a user, team, or the whole org access to an org-owned connector at a level — the same `view` < `use` < `edit` ladder every shareable resource uses (docs/access-model.md §3): `use` here means creating connections from this connector, `edit` additionally means changing its config and its own grants. Requires `edit` access or ownership, and `connector:share`.
Path Parameters
Connector slug of an org-owned connector.
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/connector/<slug>/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/connector/<slug>/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/connector/<slug>/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())