---
title: "Which products your agent can use for a task, ranked from our drives (the MCP tool find_tools_for_task): for each, the closest task in its capability map and what happened when our agent tried it, the agent level, whether our agent got in on its own, where it stopped, the work done, the drive date, origin (with disclosure when the owner paid) and the page. Strong matches first, then the ones our agent did, then level and work done. Or by capability instead of task (GET /api/capabilities lists them), by its id or name; the answer names it and lists every product whose latest drive has a task of it, with what our agent got there (task.result), the product's own tasks behind it (tasks) and the evidence (the page section that shows it), done first, then level. Send task or capability. 120 requests per 10 minutes per IP"
method: GET
path: "/api/find-tools"
tags: ["Directory"]
---

# Which products your agent can use for a task, ranked from our drives (the MCP tool find_tools_for_task): for each, the closest task in its capability map and what happened when our agent tried it, the agent level, whether our agent got in on its own, where it stopped, the work done, the drive date, origin (with disclosure when the owner paid) and the page. Strong matches first, then the ones our agent did, then level and work done. Or by capability instead of task (GET /api/capabilities lists them), by its id or name; the answer names it and lists every product whose latest drive has a task of it, with what our agent got there (task.result), the product's own tasks behind it (tasks) and the evidence (the page section that shows it), done first, then level. Send task or capability. 120 requests per 10 minutes per IP

`GET /api/find-tools`

## Request

- Base URL: `https://agentdrives.com`
- URL: `https://agentdrives.com/api/find-tools`
- Auth: none required

## Query parameters

- `task` string
- `capability` string
- `category` string
- `self_signup` boolean
- `min_level` integer: Agent level, the only rank: 0 Read-only (Agents can read about it, but there is nothing to use); 1 Needs a person (Agents can't get in on their own); 2 Gets in (An agent gets in on its own but does less than half the core work); 3 Does the work (An agent gets in on its own and does half the core work or more); 4 Runs on its own (An agent does the core work and can stop paying on its own); 5 Autonomous (All of that, and it pays on its own for the work)
- `limit` integer

## Response `200`

The ranked products (with capability: the capability, how many products have it, and the products)

- object
  - `task` string
  - `capability` CapabilityRef: A capability of the shared vocabulary (GET /api/capabilities)
    - `id` string
    - `name` string
    - `domain` string
    - `definition` string
  - `of` integer: With capability: the listed products that have it
  - `results` TaskResult[]
    - `slug` string
    - `name` string
    - `category` string
    - `level` integer: Agent level, the only rank: 0 Read-only (Agents can read about it, but there is nothing to use); 1 Needs a person (Agents can't get in on their own); 2 Gets in (An agent gets in on its own but does less than half the core work); 3 Does the work (An agent gets in on its own and does half the core work or more); 4 Runs on its own (An agent does the core work and can stop paying on its own); 5 Autonomous (All of that, and it pays on its own for the work)
    - `level_name` string
    - `gets_in_alone` boolean: Our agent signed up and got a key without a person
    - `match` 'strong' | 'partial' | 'capability': capability: found by the capability asked for
    - `tasks` string[]: With capability: the product's own tasks mapped to it
    - `evidence` string: With capability: the product page's section that shows what our agent did
    - `task` object, nullable
      - `matched` string: The closest task in the product's capability map, or a thing our agent did there
      - `result` 'done' | 'partial' | 'plan_gated' | 'failed' | 'blocked' | 'not_tried' | 'unknown'
      - `via` string: The route: api, mcp, cli, browser
    - `can_do` string[]
    - `stop` object, nullable
      - `at` string
      - `why` string, nullable
    - `work_done` integer, nullable: Share of the core tasks done, 0-100
    - `tested_at` string
    - `url` string
    - `origin` 'editorial' | 'owner'
    - `disclosure` string

## Other responses

- `400`: Error as problem details (RFC 9457) with a machine-readable `error` and a `fix` that says what to do next
- `429`: Over the limit: a problem+json with error and fix, and Retry-After (seconds)

---

[API](https://skmtc.dev/agentdrives/apis/agentdrives-api.md) · [All operations](https://skmtc.dev/agentdrives/apis/agentdrives-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentdrives/apis/agentdrives-api/revisions/94dcaabff4b2?raw)
