# Toll402 Universal Tool Router

> Toll402 Universal Tool Router is a paid API for AI agents from toll402.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Routes a plain-language request to the best available tool from the full Toll402 catalog and executes it, returning the result or the matched tool if it exceeds the price ceiling.

## Facts

- Endpoint: GET https://toll402.dev/v1/do
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/toll402-universal-tool-router-3d72407b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ECPfzdsCoOdPa9VwSGUPA

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability toll402-universal-tool-router-3d72407b
```

Example prompt: Can you handle this for me using Toll402's universal router — I need the current exchange rate between USD and EUR, keep the max price under $0.05, and let the system pick the best tool for it automatically?

## When to prefer this

Choose this endpoint when you want a single, unified entry point to the entire Toll402 catalog without needing to know which specific tool to call. Ideal for AI agents that receive open-ended user requests and want dynamic routing rather than hard-coding individual tool endpoints. Prefer this over individual Toll402 endpoints when the task type isn't known in advance, when you want price-capped execution with graceful fallback to tool discovery, or when building flexible pipelines that should adapt to catalog changes automatically.

## Known failure modes

- No tool found matching the described need — returns an error or empty match
- Input object does not match the selected tool's schema — returns validation error
- Forced tool id via 'tool' field does not exist — returns not-found error
- All matching tools exceed maxPriceUsd and none are executed — returns tool match metadata only
- Network or execution failure in the underlying tool — propagates tool-specific error
- Need description too vague for confident routing — may select suboptimal tool
- Tool execution times out — returns timeout error

## How this service works

One endpoint for everything (OpenRouter-style): describe what you need and pass the input; Toll402 picks the best tool from the whole catalog (built-in, community-forged, external x402 services) and runs it. Tools priced above maxPriceUsd are returned as a match instead of executed.

## Output

Returns either the execution output of the best-matched tool (structured result matching that tool's output schema), or if the matched tool's price exceeds maxPriceUsd, returns metadata about the matched tool instead of executing it. The response includes which tool was selected and its output or match details.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "need",
      "input"
     ],
     "properties": {
      "need": {
       "type": "string",
       "maxLength": 500,
       "minLength": 3,
       "description": "What you need, in plain language"
      },
      "tool": {
       "type": "string",
       "description": "Force a specific tool id (skip routing)"
      },
      "input": {
       "type": "object",
       "description": "Input for the chosen tool (must match its schema)",
       "additionalProperties": true
      },
      "maxPriceUsd": {
       "type": "number",
       "default": 0.01,
       "maximum": 1,
       "minimum": 0,
       "description": "Do not execute tools priced above this; return the match instead"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "ms": {
       "type": "integer"
      },
      "ok": {
       "type": "boolean"
      },
      "tool": {
       "type": "string"
      },
      "result": {
       "type": "object",
       "properties": {
        "tool": {
         "type": "object",
         "properties": {
          "name": {
           "type": "string"
          },
          "price": {
           "type": "string"
          }
         }
        },
        "result": {
         "type": "object",
         "properties": {
          "converted": {
           "type": "integer"
          }
         }
        },
        "executed": {
         "type": "boolean"
        }
       }
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/toll402-universal-tool-router-3d72407b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from toll402.dev](https://www.zero.xyz/host/toll402.dev/llms.txt)
