Tools API

List the tools Tron offers in chat, with each tool's name, description and input schema, and run them by name. These routes run the tools chat offers for every caller. A tool that asks the person first in chat, because it sends as them or deletes, asks first here too: the request waits until they answer in their LVNG window (up to 5 minutes), and is declined at once when there is nobody to ask (a service key, or an API key whose owner has no LVNG window open). Any other tool name is refused with 403 and code TOOL_NOT_AVAILABLE unless the caller is a platform administrator.

Base path: /api/tools

Discovery

GET/api/tools/categoriesAuthenticated

List the tools Tron offers in chat, the ones POST /api/tools/execute runs for every caller. The list is the same for every caller. The tools are grouped under ten groups (web_research, ai_orchestration, voice_ai, database, browser, filesystem, code, knowledge_graph, productivity, other); every group is present, and a group with no tool is an empty list. 503 when the chat agent is not running.

Request

cURL
curl -X GET https://api.lvng.ai/api/tools/categories \
  -H "Authorization: Bearer YOUR_API_KEY"

Response 200

{
  "success": true,
  "categories": {
    "web_research": [
      {
        "name": "web_search",
        "description": "Search the web for information using Firecrawl. Returns relevant search results with titles, URLs, and content snippets.",
        "input_schema": {
          "type": "object",
          "properties": {
            "query": { "type": "string", "description": "The search query to execute" },
            "limit": { "type": "number", "description": "Maximum number of results to return (default: 5)", "default": 5 },
            "include_content": { "type": "boolean", "description": "Whether to include full page content in results (default: false)", "default": false }
          },
          "required": ["query"]
        }
      }
    ],
    "ai_orchestration": [],
    "voice_ai": [],
    "database": [],
    "browser": [],
    "filesystem": [],
    "code": [],
    "knowledge_graph": [
      {
        "name": "search_knowledge",
        "description": "Search the documents uploaded to this organization's LVNG knowledge base and return the matching passages with their file names.",
        "input_schema": {
          "type": "object",
          "properties": {
            "query": { "type": "string", "description": "What to look for: a few keywords or a short question" },
            "limit": { "type": "integer", "description": "Maximum passages per source (default 5, max 10)", "default": 5 }
          },
          "required": ["query"]
        }
      }
    ],
    "productivity": [],
    "other": []
  }
}

Execution

POST/api/tools/executeAuthenticated

Run one tool by name for the caller and return the tool's own answer in result. 400 when tool is missing; 403 with code TOOL_NOT_AVAILABLE for a name that is not a tool Tron offers in chat (the same answer for a name that exists and one that does not), unless the caller is a platform administrator.

Body Parameters

toolstringrequired

The tool's name, exactly as chat names it (for example web_search, search_knowledge, list_calendar_events, send_email, post_message).

paramsobject

The tool's input, matching its input_schema.

Request

cURL
curl -X POST "https://api.lvng.ai/api/tools/execute" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tool": "web_search",
  "params": {
    "query": "multi-agent orchestration",
    "limit": 5
  }
}'

Response 200

{
  "success": true,
  "tool": "web_search",
  "result": {
    "success": true,
    "data": {
      "query": "multi-agent orchestration",
      "total_results": 1,
      "results": [
        {
          "title": "Multi-agent orchestration",
          "url": "https://example.com/multi-agent-orchestration",
          "content": "...",
          "excerpt": "How several agents share one task..."
        }
      ]
    }
  },
  "executedAt": "2026-04-01T12:00:00.000Z"
}
POST/api/tools/batchAuthenticated

Run each entry of tools in turn and return one result per entry, in the same order. Each entry is decided on its own, by the rule of POST /api/tools/execute: an entry the caller may not run gets success false and code TOOL_NOT_AVAILABLE in its place, and the others still run. 400 when tools is missing or empty.

Body Parameters

toolsarrayrequired

The tools to run, in order: each entry is { tool, params }.

Request

cURL
curl -X POST "https://api.lvng.ai/api/tools/batch" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tools": [
    {
      "tool": "web_search",
      "params": {
        "query": "multi-agent orchestration",
        "limit": 5
      }
    },
    {
      "tool": "search_knowledge",
      "params": {
        "query": "orchestration decisions"
      }
    }
  ]
}'

Response 200

{
  "success": true,
  "results": [
    {
      "tool": "web_search",
      "success": true,
      "result": {
        "success": true,
        "data": { "query": "multi-agent orchestration", "total_results": 0, "results": [] }
      },
      "executedAt": "2026-04-01T12:00:00.000Z"
    },
    {
      "tool": "search_knowledge",
      "success": true,
      "result": { "success": true, "query": "orchestration decisions", "count": 0, "results": [] },
      "executedAt": "2026-04-01T12:00:01.000Z"
    }
  ]
}