Update a toolbox
Updates a toolbox. entries replaces the entire entry list when present: omitted entries are deleted, and the ones you send back define the toolbox in full. An incoming entry whose (connection_id, tool_name) pair matches an existing row keeps that row's original delegator rather than re-stamping whoever clicked Save; only genuinely new pairs are checked against the editor's own access and stamped with them. Entries keep their array order, and a row sent back with its own id keeps that id; every other row gets a fresh one. Omitting entries leaves them untouched. name and description are ordinary merge-patch fields, and so is skill: a write clears skill_may_be_stale and skill_origin_template_id, and an entries write sets skill_may_be_stale when a skill exists and the same request did not also write skill. Every skill edit is audited on toolbox.updated (metadata.skill is written, reaffirmed or cleared, plus metadata.skill_version_id, never the text) and kept in GET /toolbox/{id}/skill-version; a view or use grantee reads the skill and gets 403 writing it. Returns the same resolved shape GET /toolbox/{id} does. Rejects an automatic id with 400, since there is no row to update. Requires edit access or ownership (a grant of the caller's own); toolbox:manage alone is not enough.
Request
- Base URL: https://api.elaichi.ai
- URL: https://api.elaichi.ai/toolbox/{id}
- Auth: HTTP bearer
Path parameters
Stored toolbox id (tbx_…).
Headers
Target organization (org_…). Required for cookie/session auth on org-scoped routes; optional for API tokens, which carry their organization, and rejected when it names a different one.
Request body
Response
OK
Changes
No recorded changes to this operation across all 1 revision of this API.