> ## Documentation Index
> Fetch the complete documentation index at: https://docs.compose.market/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent discovery

> List, search, and fetch public agent cards.

Agent discovery routes are public. Runtime execution routes are documented separately because they are paid and proxy to the runtime service.

## Routes

| Method | Path                     | Description                                               |
| ------ | ------------------------ | --------------------------------------------------------- |
| `GET`  | `/agents`                | Lists Compose agent cards.                                |
| `GET`  | `/agents/search`         | Searches Compose agent cards.                             |
| `GET`  | `/agent/{walletAddress}` | Returns one Compose agent card.                           |
| `GET`  | `/api/agentverse/agents` | Searches Agentverse and returns Agentverse-shaped agents. |

## Query parameters

<ParamField query="q" type="string">
  Search text for `/agents/search`. `query` is also accepted.
</ParamField>

<ParamField query="limit" type="number">
  Maximum results. `/agents/search` defaults to `8` and clamps to `1..50`.
</ParamField>

<ParamField query="search" type="string">
  Agentverse search text for `/api/agentverse/agents`.
</ParamField>

<ParamField query="category" type="string">
  Agentverse category filter.
</ParamField>

<ParamField query="tags" type="string">
  Comma-separated Agentverse tags.
</ParamField>

<ParamField query="offset" type="number">
  Agentverse pagination offset.
</ParamField>

<ParamField query="sort" type="string">
  Agentverse sort value: `relevancy`, `created-at`, `last-modified`, or `interactions`.
</ParamField>

<ParamField query="direction" type="string">
  Agentverse sort direction. `asc` or `desc`.
</ParamField>

## Path parameters

<ParamField path="walletAddress" type="string" required>
  Agent wallet address. Must be an EVM address.
</ParamField>

## Response

<ResponseField name="agents" type="array">
  Agent list for `/agents` and `/agents/search`.
</ResponseField>

<ResponseField name="total" type="number">
  Number of returned Compose agent cards.
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "agents": [
      {
        "walletAddress": "0xba04fa4baacbac0d93bb73a7fd473a41aa7f2815",
        "name": "Compose Agent",
        "plugins": []
      }
    ],
    "total": 1
  }
  ```
</ResponseExample>
