List the OAuth-connected apps that reach this toolbox
/toolbox/{id}/connected-app
Cursor-paginated. Gated EXACTLY like `GET /toolbox/{id}/share` (same loader, same audience) — an app reaching a toolbox is exactly as sensitive as who the toolbox is shared with. `via` says how the app reaches it: `toolbox` when this toolbox is named explicitly on the grant, `all_tools` when the grant authorized "All my tools" for a user who can currently use this toolbox — computed live against the grantee's own access, never a stored fact that could go stale. `is_own` flags the caller's own authorization. Requires owner or `edit` access (own grant) — no `toolbox:manage` fallback.
Path Parameters
Stored toolbox id (tbx_…).
Response Body
Null when the OAuth client row is gone.
OAuth grant id (ogrt_…) — what DELETE /oauth/grant/{id} takes, scoped to the grant's own user.
True when this is the caller's own authorization.
The grant's MCP OAuth scopes (mcp:read, mcp:write, …).
3 properties
User id (usr_…).
Omitted along with email when the id no longer resolves to an org member.
toolbox: this toolbox is named explicitly on the grant. all_tools: an "All my tools" authorization by a user who can currently use this toolbox — computed live, not a stored fact.
toolboxall_tools
curl -X GET 'https://api.elaichi.ai/toolbox/<id>/connected-app' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/toolbox/<id>/connected-app', {
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/toolbox/<id>/connected-app"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())