[← Back to tools]
BR
brave.web-search

Search the web with Brave: pay per use, no API key

Use Brave Search from Claude, Claude Code, Cursor, ChatGPT, and other agents through one Cralo balance.

Search Brave's independent web index and return normalized web, news, video, and infobox results.

Price and execution

Price
$0.005
Pricing model
Fixed price per successful call
Execution class
fast

Limits

No additional limits are published for this tool.

Parameters

Fields brave.web-search accepts as JSON input.

  • countintegerOptional

    Maximum number of web results to return.

  • querystringRequired

    Natural-language web search query.

  • countrystringOptional

    Two-letter country code used to localize search results.

  • languagestringOptional

    Language code for search results, such as `en` or `fr`.

  • freshness"pd" | "pw" | "pm" | "py" | anyOptional

    Limit results by page age. Use `pd`, `pw`, `pm`, or `py`, or a custom range like `2024-01-01to2024-03-31`.

  • safesearch"off" | "moderate" | "strict"Optional

    Adult content filter. `moderate` is Brave's default when omitted.

  • extra_snippetsbooleanOptional

    When true, include up to five additional excerpts per web result.

Raw input JSON Schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of web results to return."
    },
    "query": {
      "type": "string",
      "maxLength": 400,
      "minLength": 1,
      "description": "Natural-language web search query."
    },
    "country": {
      "type": "string",
      "default": "US",
      "pattern": "^[A-Za-z]{2}
quot;, "description": "Two-letter country code used to localize search results." }, "language": { "type": "string", "default": "en", "maxLength": 12, "minLength": 2, "description": "Language code for search results, such as `en` or `fr`." }, "freshness": { "type": "string", "anyOf": [ { "enum": [ "pd", "pw", "pm", "py" ] }, { "pattern": "^\\d{4}-\\d{2}-\\d{2}to\\d{4}-\\d{2}-\\d{2}
quot; } ], "description": "Limit results by page age. Use `pd`, `pw`, `pm`, or `py`, or a custom range like `2024-01-01to2024-03-31`." }, "safesearch": { "enum": [ "off", "moderate", "strict" ], "type": "string", "default": "moderate", "description": "Adult content filter. `moderate` is Brave's default when omitted." }, "extra_snippets": { "type": "boolean", "default": false, "description": "When true, include up to five additional excerpts per web result." } }, "additionalProperties": false }

Returns

Fields a successful brave.web-search call returns.

  • newsarray of objectRequired
    • agestring | nullRequired
    • urlstring (uri)Required
    • titlestringRequired
    • descriptionstring | nullRequired
  • querystringRequired
  • videosarray of objectRequired
    • agestring | nullRequired
    • urlstring (uri)Required
    • titlestringRequired
    • durationstring | nullRequired
    • descriptionstring | nullRequired
  • infoboxarray of objectRequired
    • urlstring | nullRequired
    • titlestring | nullRequired
    • descriptionstring | nullRequired
  • resultsarray of objectRequired
    • agestring | nullRequired
    • urlstring (uri)Required
    • titlestringRequired
    • descriptionstring | nullRequired
    • extra_snippetsarray of stringOptional
  • retrieved_atstring (date-time)Required
Raw output JSON Schema
{
  "type": "object",
  "required": [
    "query",
    "results",
    "news",
    "videos",
    "infobox",
    "retrieved_at"
  ],
  "properties": {
    "news": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "url",
          "description",
          "age"
        ],
        "properties": {
          "age": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "maxItems": 20
    },
    "query": {
      "type": "string"
    },
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "url",
          "description",
          "age",
          "duration"
        ],
        "properties": {
          "age": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "duration": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "maxItems": 20
    },
    "infobox": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "description",
          "url"
        ],
        "properties": {
          "url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "maxItems": 5
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "url",
          "description",
          "age"
        ],
        "properties": {
          "age": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "extra_snippets": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 2000
            },
            "maxItems": 5
          }
        },
        "additionalProperties": false
      },
      "maxItems": 20
    },
    "retrieved_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "additionalProperties": false
}

Run this tool

Copy this instruction to your agent to set up Cralo and call this tool with the example input.

Set up Cralo by following https://cralo.ai/SKILL.md, then call the brave.web-search tool with this input: {"query":"Cralo","count":1,"country":"US","language":"en"}

Safety notes

Side Effect
read_only
Public Sources Only
Yes

How this compares to using Brave Search directly

You do not need a separate Brave Search account or subscription for this call. Cralo uses one prepaid balance across all tools and shows the per-call price before you run the command.

Related tools

[Browse all tools]