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

# Search Sites

> Semantic search for agent-friendly sites

## Overview

Searches the agent-friendly site directory using semantic search. Returns sites matching the query based on their content, description, and extracted components. Only returns live, public sites.

No authentication required.

## Query Parameters

<ParamField query="q" type="string" required>
  Search query (e.g., `payment processing`, `email marketing`)
</ParamField>

<ParamField query="category" type="string">
  Filter by category
</ParamField>

<ParamField query="limit" type="integer" default="20">
  Maximum number of results (max 100)
</ParamField>

## Response

Returns an array of site summary objects. See [List Sites](/api-reference/endpoint/list_sites) for the full object shape.

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.danubeai.com/v1/agent-sites/search?q=payment+processing&limit=5"
  ```

  ```python Python SDK theme={null}
  from danube import DanubeClient

  with DanubeClient(api_key="dk_...") as client:
      sites = client.sites.search(query="payment processing", limit=5)
      for site in sites:
          print(f"{site.domain}: {site.page_description}")
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  [
    {
      "id": "site_abc123",
      "domain": "stripe.com",
      "url": "https://stripe.com",
      "status": "live",
      "page_title": "Stripe | Payment Processing Platform",
      "page_description": "Online payment processing for internet businesses",
      "favicon_url": "https://stripe.com/favicon.ico",
      "component_count": 6,
      "tool_count": 3,
      "category": "finance",
      "tags": ["payments", "api"],
      "created_at": "2026-01-10T08:00:00Z"
    }
  ]
  ```
</ResponseExample>

## MCP Tool

This endpoint is also available as the `search_sites` MCP tool:

```python theme={null}
result = await mcp.call_tool("search_sites", {
    "query": "payment processing",
    "limit": 5
})
```
