Share a connection
/connection/{id}/share
Grants one member, team, or the whole org `view` or `use` access to this connection. Sharing never changes `owner_user_id` — that only moves through `POST /connection/{id}/transfer` (docs/access-model.md §2). `use` is what lets the grantee bind this connection into their own toolbox entries and run tools through it. `edit` is not a valid level here: renaming, deleting or transferring a connection stays with the owner alone, never with a share (and never with `connection:manage` any more either, removed 2026-09-04). A private connection (no existing grants) may only be shared by its own owner — no organization permission reaches another member's private connection, sharing included; the owner opting people in is the one deliberate way in. Requires `edit` access or ownership, and `connection:share`; for a connection granted to a team, that team's admin also qualifies.
Path Parameters
Connection id (conn_…).
Request Body
User id (usr_…) or team id (team_…). Omitted or null for an org-wide grant.
userteamorg
viewuse
curl -X POST 'https://api.elaichi.ai/connection/<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/connection/<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/connection/<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())