Preview what a connection transfer would touch
/connection/{id}/transfer-preview
What `POST /connection/{id}/transfer` would break, answered BEFORE anything is written, so a client can put the consequence in front of somebody while the decision is still theirs. A bounded SUMMARY, not a list: exact server-computed counts plus at most five named toolboxes, breaking ones first — which is why it takes no `limit`/`cursor`. Gated on exactly what the transfer itself is gated on, so it can never advertise a door that 403s.
Path Parameters
Connection id (conn_…).
Response Body
Exact number of toolboxes with an entry pinned to this connection.
At most five, breaking ones first. A preview — read the counts, not this length.
The outgoing owner pinned at least one of this toolbox's entries on the connection.
toolbox
Exact number of the above that the CALLER pinned, and so the number at risk if they end up below use. Not narrowed by keeps_access_without_retaining — read the two together.
The caller already reaches this connection through a grant of their own (org-wide, or a team they are in), so handing it over costs them nothing even without retain_access and nothing they pinned breaks. Computed server-side because access: "owner" outranks and hides whatever grant is underneath it — a client cannot derive this.
curl -X GET 'https://api.elaichi.ai/connection/<id>/transfer-preview' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/connection/<id>/transfer-preview', {
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>/transfer-preview"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())