List connection ACL shares
/connection/{id}/share
Cursor-paginated, and the only place the grant list is served — a connection may be shared with every member of the organization, so nothing else embeds it. Each entry carries a resolved `grantee` (name, email, and for teams a member count), so rendering a page needs no per-row lookups. Filter with `grantee_type`, search member names/emails and team names with `q`. Requires being able to share the connection (owner, `edit` access, or a team admin on a team-granted one) — no `connection:manage` fallback any more (removed 2026-09-04): a bare permission, with no real grant of the caller's own, no longer opens this even for a connection already shared with someone else.
Path Parameters
Connection id (conn_…).
Query Parameters
Match member name or email, or team name. LIKE wildcards are matched literally. Max 200 characters.
Restrict to one kind of grantee.
userteamorg
Response Body
Resolved display data, so a page of grants needs no follow-up lookups.
3 properties
Team grants only: how many people the grant reaches.
Null for org-wide grants.
userteamorg
ACL id (acl_…) — what DELETE …/share/{aclId} takes.
viewuse
curl -X GET 'https://api.elaichi.ai/connection/<id>/share' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/connection/<id>/share', {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
'Content-Type': 'application/json',
},
});
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",
}
response = requests.get(url, headers=headers)
print(response.json())