Logo
Search
Docs

Delete tool

DELETE https://app.sulus.ai/api/tools/{id}

Delete a tool (live first for published; drafts are local-only)

Authentication

Send a bearer token created on your dashboard's Developer page:

Authorization: Bearer <YOUR_API_KEY>

Path parameters

id string Required

The tool's public id.

Validation: the tool's external_tool_id (UUID, or draft_… slug for drafts)
Stored in tools.external_tool_id

Errors

StatusMeaningBody
404 Tool not found, or outside your account scope {"success":false,"message":"Tool not found"}
403 Global tool mutation attempted by a non-super-admin {"success":false,"message":"Global tools are read-only and cannot be edited or deleted."}
403 Workspace permission denied
401 Missing or invalid bearer token
403 Feature tools not enabled for the account

Notes

  • The local row is removed even if the live delete fails, so a tool can never get stuck.
curl --request DELETE \
  --url https://app.sulus.ai/api/tools/{id} \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/tools/{id}"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}

response = requests.delete(url, headers=headers)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://app.sulus.ai/api/tools/{id}"
	req, _ := http.NewRequest("DELETE", url, nil)
	req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
Response 200
{
    "success": true,
    "message": "Tool \"Check Order Status\" deleted."
}