Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.powabase.ai/llms.txt

Use this file to discover all available pages before exploring further.

Tools extend agent capabilities beyond conversation. The platform provides builtin tools (database_query, database_write, http_request, code_execute, storage_read, storage_write, web_search, web_scrape) and lets you create custom tools that call your own endpoints. Custom tools are defined with a name, description, JSON Schema for inputs, and an endpoint URL that the platform calls when the agent uses the tool.

Common Patterns

List available tools with GET /api/tools to see both builtin and custom tools. Create custom tools with a clear description and input schema — agents use the description to decide when to call the tool. Assign tools to agents via the agent tools API (POST /api/agents/{id}/tools).

GET /api/tools

List all tools (builtin: database_query, database_write, http_request, code_execute, storage_read, storage_write, web_search, web_scrape + custom).
response = requests.get(f"{BASE_URL}/api/tools", headers=headers)

POST /api/tools

Create a custom tool (HTTP endpoint with JSON schema).
{
  "name": "weather_lookup",
  "description": "Get current weather for a city",
  "endpoint_url": "https://api.weather.com/v1/current",
  "method": "GET",
  "input_schema": {
    "type": "object",
    "properties": {
      "city": { "type": "string" }
    },
    "required": ["city"]
  }
}
response = requests.post(f"{BASE_URL}/api/tools", headers=headers, json={
    "name": "weather_lookup",
    "description": "Get current weather",
    "endpoint_url": "https://api.weather.com/v1/current",
    "method": "GET",
    "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
})

GET /api/tools/

Get a tool definition by ID.
id
string
required
Tool ID
response = requests.get(f"{BASE_URL}/api/tools/{tool_id}", headers=headers)

PUT /api/tools/

Update a custom tool.
id
string
required
Tool ID
response = requests.put(f"{BASE_URL}/api/tools/{tool_id}", headers=headers, json={"description": "Updated"})

DELETE /api/tools/

Delete a custom tool.
id
string
required
Tool ID
response = requests.delete(f"{BASE_URL}/api/tools/{tool_id}", headers=headers)

Error Responses

StatusCodeDescription
400invalid_schemaThe tool’s input_schema is not valid JSON Schema
404tool_not_foundNo tool exists with the given ID