zoxaAI
Homepage
API ReferenceTools

List tools

GET /api/v1/tools — list tools available to your organization, optionally filtered by status and category.

GET /api/v1/tools

Return all tools belonging to your organization. Tools are referenced from agents (in agent.tools[]) by tool_uuid.

Query parameters

ParamTypeNotes
statuscsvOne or more of active, archived, draft. Comma-separated.
categorystringOne of function, endCall, transferCall, calculator, query, native, integration (full ToolCategory enum). Filtered exactly — pass the value that matches definition.type for typed tools.

Omit both to list active tools across all categories.

Response

200 OK with an array (no envelope — tool list is small):

[
  {
    "id": 12,
    "tool_uuid": "abc12345-6789-0123-4567-89abcdef0123",
    "name": "Lookup order status",
    "description": "Fetches order status from internal API.",
    "category": "function",
    "icon": "package",
    "icon_color": "#3B82F6",
    "status": "active",
    "definition": {
      "schema_version": 1,
      "type": "function",
      "config": {
        "method": "GET",
        "url": "https://api.acme.com/orders/{orderId}",
        "parameters": [
          { "name": "orderId", "type": "string", "description": "Order ID to look up", "required": true }
        ],
        "timeout_ms": 5000
      }
    },
    "created_at": "2026-05-12T10:00:00Z",
    "updated_at": "2026-06-01T15:30:00Z"
  }
]
FieldNotes
idInteger DB id.
tool_uuidUUID — reference this in agent.tools[].
definitionShape depends on definition.type — see Tool types.

Examples

curl "https://dashboard.zoxa.ai/api/v1/tools?status=active,draft&category=function" \
  -H "X-API-Key: zsk_..."
const params = new URLSearchParams({ status: "active", category: "function" });
const tools = await fetch(`https://dashboard.zoxa.ai/api/v1/tools?${params}`, {
  headers: { "X-API-Key": "zsk_..." },
}).then((r) => r.json());
import httpx
tools = httpx.get(
    "https://dashboard.zoxa.ai/api/v1/tools",
    headers={"X-API-Key": "zsk_..."},
    params={"status": "active", "category": "function"},
).json()

Errors

StatusdetailWhen
400"No organization selected for the user"Auth missing org.
400"Invalid status '...'. Must be one of: ..."Unknown status value.
400"Invalid category '...'. Must be one of: ..."Unknown category.

On this page