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

# titan_list_templates

> Browse the curated Titan templates an agent is allowed to run, with their input schemas, output schemas, and default limits.

Use `titan_list_templates` to discover what [`titan_run_template`](/docs/mcp/tools/titan-run-template) can execute. It reads a fixed allowlist, so an agent can never see or reach templates that are hidden, admin-only, inactive, or experimental.

This tool starts no run, consumes no credits, and returns immediately.

**Required scope:** none beyond connecting with an `mcp:*` key.

## Parameters

All parameters are filters. Omit them all to see the full allowlist.

<ParamField body="category" type="string">
  `generic` for general-purpose templates, `platform` for site-specific ones.
</ParamField>

<ParamField body="action_type" type="string">
  `search`, `scrape`, `crawl`, or `api_call`.
</ParamField>

<ParamField body="provider" type="string">
  A search platform identifier, or `generic` for platform-independent templates. Omit this filter to see every provider available to your account.
</ParamField>

<ParamField body="query" type="string">
  Free-text match against template slug, name, and description.
</ParamField>

<ParamField body="include_platform_templates" type="boolean" default="true">
  Set `false` to see only generic templates.
</ParamField>

<ParamField body="limit" type="integer" default="20">
  Maximum templates to return.
</ParamField>

## Example

```json theme={null}
{ "action_type": "search", "provider": "brave" }
```

## Response

```json theme={null}
{
  "templates": [
    {
      "slug": "titan-brave-search-v1",
      "name": "Brave Search",
      "description": "JavaScript-backed SERP scraper. Returns normalized organic results.",
      "category": "platform",
      "action_type": "search",
      "provider": "brave",
      "input_schema": {
        "type": "object",
        "properties": {
          "max_results": { "type": "integer", "minimum": 1, "maximum": 100, "default": 10 },
          "include_ads": { "type": "boolean", "default": false }
        }
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "url": { "type": "string" },
          "title": { "type": "string" },
          "snippet": { "type": "string" },
          "rank": { "type": "integer" }
        }
      },
      "limits": { "max_results": 10, "timeout_seconds": 30 }
    }
  ],
  "request_id": "req_6c2f9a3e8b1d5074"
}
```

### Template fields

| Field           | Meaning                                              |
| --------------- | ---------------------------------------------------- |
| `slug`          | Identifier to pass to `titan_run_template`           |
| `name`          | Human-readable name                                  |
| `description`   | What the template extracts                           |
| `category`      | `generic` or `platform`                              |
| `action_type`   | The action it performs                               |
| `provider`      | Target provider, or `generic`                        |
| `input_schema`  | JSON Schema for the `payload` the template accepts   |
| `output_schema` | JSON Schema for each record it produces              |
| `limits`        | Default limits applied when you do not override them |

<Tip>
  `input_schema` tells your agent exactly what belongs in `payload`, and `output_schema` tells it what records to expect back. An agent that reads both before calling `titan_run_template` rarely gets a validation error.
</Tip>

## The allowlist

Eight templates are runnable through MCP: one search template per supported platform, plus three generic templates.

| Slug                             | Category | Action | What it does                                           |
| -------------------------------- | -------- | ------ | ------------------------------------------------------ |
| `titan-<platform>-search-v1`     | platform | search | Normalized organic results from one search platform    |
| `generic-web-page-extraction-v1` | generic  | scrape | Title, content, links, and images from any public page |
| `titan-site-map-v1`              | generic  | crawl  | Same-origin URL inventory without content              |
| `titan-web-crawl-v1`             | generic  | crawl  | Same-origin crawl with content extraction              |

Search templates follow the `titan-<platform>-search-v1` pattern and share an identical input and output contract, so an agent can switch platforms without changing how it reads results. Call this tool with `action_type: "search"` to get the exact slugs available to your account.

<Note>
  The search, fetch, and crawl tools already run these templates for you with friendlier parameters. Reach for `titan_run_template` only when you need to pass template-specific `payload` fields the dedicated tools do not expose.
</Note>

## Slug versioning

The `-v1` suffix is a contract version, not a release number. A template's input or output schema will not change incompatibly under the same slug—an incompatible change ships as a new slug. Pin the slug your agent depends on and it keeps working.

## Next steps

* [titan\_run\_template](/docs/mcp/tools/titan-run-template) — execute a template by slug
* [Use templates and preview runs](/docs/use-the-platform/use-templates-and-preview-runs) — the full platform template catalog
