# ToolVet API Search

> ToolVet API Search is a paid API for AI agents from toolvet.app, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-12).

Search a vetted directory of paid x402 APIs and MCP servers for AI agents by natural language query, with filters for price, trust score, network, and category.

## Facts

- Endpoint: GET https://toolvet.app/api/v1/search?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/toolvet-api-search-fb4cf822
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_EMmED_vzT0cYXMeh4fMsC

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 toolvet-api-search-fb4cf822
```

Example prompt: Search ToolVet for vetted x402 APIs that do company enrichment by domain, show me only live services with a trust score above 80, priced under $0.01 per call, and return the top 5 results.

## When to prefer this

Use this endpoint when an AI agent needs to programmatically discover and evaluate paid APIs or MCP servers — particularly when filtering by price ceiling, network, trust score, or live status matters. Prefer it over manual API directories when the agent must select tools autonomously at runtime based on capability description, cost, and reliability signals.

## Known failure modes

- Missing required 'q' query parameter returns a 400 validation error
- Invalid 'kind' enum value (not 'x402' or 'mcp') returns a 400 error
- 'limit' outside 1-50 range may return a validation error or be clamped
- Unknown 'category' slug returns zero results rather than an error
- No matching services returns results array of length 0
- Payment failure (insufficient USDC balance) returns 402 before query executes

## How this service works

The vetted directory of paid APIs and MCP servers for AI agents.

## Output

A JSON object containing the search query echoed back, a total count of matching services, a ranked array of results (each with name, URL, kind, per-call price in USD and on-chain asset details, trust score, 30-day usage and payer counts, health/uptime/latency metrics, category, provider, and a how-to-call block with example input), plus a sponsored array.

## 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": [
      "q"
     ],
     "properties": {
      "q": {
       "type": "string",
       "description": "What the service should do, e.g. 'company enrichment by domain'"
      },
      "kind": {
       "enum": [
        "x402",
        "mcp"
       ],
       "type": "string",
       "description": "Only x402 pay-per-call APIs or only MCP servers"
      },
      "limit": {
       "type": "string",
       "description": "1-50, default 10"
      },
      "network": {
       "type": "string",
       "description": "Only services that accept payment on this CAIP-2 network, e.g. eip155:8453"
      },
      "category": {
       "type": "string",
       "description": "Category slug, see GET /api/v1/categories"
      },
      "live_only": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string",
       "description": "Only services that passed their latest live check"
      },
      "max_price": {
       "type": "string",
       "description": "Maximum price per call in USD, e.g. '0.01'"
      },
      "min_score": {
       "type": "string",
       "description": "Minimum trust score 0-100"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "query": "company enrichment by domain",
  "total": 37,
  "results": [
   {
    "id": "weather-forecast",
    "url": "https://api.weather.example/v1/forecast",
    "kind": "x402",
    "name": "Forecast",
    "price": {
     "usd": 0.001,
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "atomic": "1000",
     "network": "eip155:8453"
    },
    "trust": {
     "score": 91,
     "verified_owner": true
    },
    "usage": {
     "calls_30d": 18233,
     "payers_30d": 412
    },
    "health": {
     "live": true,
     "uptime_30d": 99.6,
     "latency_p50_ms": 210
    },
    "category": "geo-weather",
    "provider": "Example Weather",
    "how_to_call": {
     "url": "https://api.weather.example/v1/forecast",
     "method": "GET",
     "example_input": {
      "city": "Berlin"
     }
    }
   }
  ],
  "sponsored": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/toolvet-api-search-fb4cf822/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from toolvet.app](https://www.zero.xyz/host/toolvet.app/llms.txt)
