# Tools API

Register the HTTP tools an agent can call during a conversation, and link them to agents.

- [Create tool](https://www.nabrah.ai/en/docs/api-reference/tools/create-tool.md) `POST /api/ext/tool`: Create a new function-calling tool in the current project.
- [List tools](https://www.nabrah.ai/en/docs/api-reference/tools/list-tools.md) `GET /api/ext/tool`: List every tool defined in the current project.
- [Get tool](https://www.nabrah.ai/en/docs/api-reference/tools/get-tool.md) `GET /api/ext/tool/{tool_id}`: Retrieve the full record for a single tool by its id, including its url, method, timeout, and the complete list of parameters with their tool_id back-reference.
- [Update tool](https://www.nabrah.ai/en/docs/api-reference/tools/update-tool.md) `PUT /api/ext/tool/{tool_id}`: Update an existing tool in the current project.
- [Delete tool](https://www.nabrah.ai/en/docs/api-reference/tools/delete-tool.md) `DELETE /api/ext/tool/{tool_id}`: Permanently delete a tool from the current project.
- [Link a tool to an agent](https://www.nabrah.ai/en/docs/api-reference/tools/link-a-tool-to-an-agent.md) `POST /api/ext/tool/link`: Link a tool to an agent so the agent can call that tool during conversations.
- [Unlink a tool from an agent](https://www.nabrah.ai/en/docs/api-reference/tools/unlink-a-tool-from-an-agent.md) `DELETE /api/ext/tool/unlink/{link_id}`: Remove the link between a tool and an agent, so the agent can no longer call that tool.
- [List tools for an agent](https://www.nabrah.ai/en/docs/api-reference/tools/list-tools-for-an-agent.md) `GET /api/ext/tool/agent/{agent_id}`: List every tool attached to the given agent.
- [List agents for a tool](https://www.nabrah.ai/en/docs/api-reference/tools/list-agents-for-a-tool.md) `GET /api/ext/tool/{tool_id}/agents`: List every agent that the given tool is linked to.
