{
  "service": "brave_search",
  "displayName": "Brave Search",
  "categories": [
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "BSAI...",
      "description": "Brave Search API key sent with the X-Subscription-Token header. Create or view API keys in the Brave Search API dashboard: https://api.search.brave.com/app/keys.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://search.brave.com/",
  "actions": [
    {
      "id": "brave_search.image_search",
      "service": "brave_search",
      "name": "image_search",
      "description": "Search Brave's image index for images related to a query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The user's search query term. Maximum of 400 characters."
          },
          "search_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred search result language code."
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 3,
            "description": "The two-letter country code for result localization, or ALL for worldwide results."
          },
          "safesearch": {
            "type": "string",
            "enum": [
              "off",
              "strict"
            ],
            "description": "Filters adult content from image results."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "The maximum number of image results to return."
          },
          "spellcheck": {
            "type": "boolean",
            "description": "Whether Brave Search should spellcheck the query before searching."
          }
        },
        "additionalProperties": false,
        "required": [
          "q"
        ],
        "description": "Input parameters for a Brave Search image request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The Brave Search response type."
          },
          "query": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Query metadata returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One image result item returned by Brave Search."
            },
            "description": "The list of image results returned by Brave Search."
          },
          "extra": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Additional metadata returned with the image results."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "description": "A normalized Brave Search image response."
      }
    },
    {
      "id": "brave_search.news_search",
      "service": "brave_search",
      "name": "news_search",
      "description": "Search Brave's news index for recent articles related to a query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The user's search query term. Maximum of 400 characters."
          },
          "search_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred search result language code."
          },
          "ui_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred user interface language for response formatting."
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 3,
            "description": "The two-letter country code for result localization, or ALL for worldwide results."
          },
          "safesearch": {
            "type": "string",
            "enum": [
              "off",
              "moderate",
              "strict"
            ],
            "description": "Filters adult content from news results."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "The maximum number of results to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9,
            "description": "The zero-based results page offset used for pagination."
          },
          "spellcheck": {
            "type": "boolean",
            "description": "Whether Brave Search should spellcheck the query before searching."
          },
          "freshness": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pd",
                  "pw",
                  "pm",
                  "py"
                ],
                "description": "A predefined freshness window such as past day or past year."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A custom date range in the format YYYY-MM-DDtoYYYY-MM-DD."
              }
            ],
            "description": "Filters news results by page age."
          },
          "extra_snippets": {
            "type": "boolean",
            "description": "Whether Brave Search should return extra alternate snippets."
          },
          "goggles": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "One goggle URL or inline definition."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "One goggle URL or inline definition."
                },
                "description": "Multiple goggles to apply to the search request.",
                "minItems": 1
              }
            ],
            "description": "One or more Brave Search goggles used to rerank results."
          },
          "operators": {
            "type": "boolean",
            "description": "Whether Brave Search should apply search operators."
          },
          "include_fetch_metadata": {
            "type": "boolean",
            "description": "Whether Brave Search should include fetch metadata in results when available."
          }
        },
        "additionalProperties": false,
        "required": [
          "q"
        ],
        "description": "Input parameters for a Brave Search news request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The Brave Search response type."
          },
          "query": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Query metadata returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One news result item returned by Brave Search."
            },
            "description": "The list of news results returned by Brave Search."
          }
        },
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "description": "A normalized Brave Search news response."
      }
    },
    {
      "id": "brave_search.video_search",
      "service": "brave_search",
      "name": "video_search",
      "description": "Search Brave's video index for videos related to a query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The user's search query term. Maximum of 400 characters."
          },
          "search_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred search result language code."
          },
          "ui_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred user interface language for response formatting."
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 3,
            "description": "The two-letter country code for result localization, or ALL for worldwide results."
          },
          "safesearch": {
            "type": "string",
            "enum": [
              "off",
              "moderate",
              "strict"
            ],
            "description": "Filters adult content from video results."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "The maximum number of results to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9,
            "description": "The zero-based results page offset used for pagination."
          },
          "spellcheck": {
            "type": "boolean",
            "description": "Whether Brave Search should spellcheck the query before searching."
          },
          "freshness": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pd",
                  "pw",
                  "pm",
                  "py"
                ],
                "description": "A predefined freshness window such as past day or past year."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A custom date range in the format YYYY-MM-DDtoYYYY-MM-DD."
              }
            ],
            "description": "Filters video results by page age."
          },
          "operators": {
            "type": "boolean",
            "description": "Whether Brave Search should apply search operators."
          },
          "include_fetch_metadata": {
            "type": "boolean",
            "description": "Whether Brave Search should include fetch metadata in results when available."
          }
        },
        "additionalProperties": false,
        "required": [
          "q"
        ],
        "description": "Input parameters for a Brave Search video request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The Brave Search response type."
          },
          "query": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Query metadata returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One video result item returned by Brave Search."
            },
            "description": "The list of video results returned by Brave Search."
          },
          "extra": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Additional metadata returned with the video results."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "description": "A normalized Brave Search video response."
      }
    },
    {
      "id": "brave_search.web_search",
      "service": "brave_search",
      "name": "web_search",
      "description": "Search the Brave Search web index and return the selected result families.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The user's search query term. Maximum of 400 characters."
          },
          "search_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred search result language code."
          },
          "ui_lang": {
            "type": "string",
            "minLength": 2,
            "description": "The preferred user interface language for response formatting."
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 3,
            "description": "The two-letter country code for result localization, or ALL for worldwide results."
          },
          "safesearch": {
            "type": "string",
            "enum": [
              "off",
              "moderate",
              "strict"
            ],
            "description": "Filters adult content from web results."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "The maximum number of web results to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9,
            "description": "The zero-based results page offset used for pagination."
          },
          "spellcheck": {
            "type": "boolean",
            "description": "Whether Brave Search should spellcheck the query before searching."
          },
          "freshness": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pd",
                  "pw",
                  "pm",
                  "py"
                ],
                "description": "A predefined freshness window such as past day or past year."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A custom date range in the format YYYY-MM-DDtoYYYY-MM-DD."
              }
            ],
            "description": "Filters web results by page age."
          },
          "result_filter": {
            "type": "string",
            "minLength": 1,
            "description": "A comma-delimited list of result types to include, such as web,news,videos,locations,discussions,faq,infobox,mixed,summarizer or rich."
          },
          "extra_snippets": {
            "type": "boolean",
            "description": "Whether Brave Search should return extra alternate snippets."
          },
          "goggles": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "One goggle URL or inline definition."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "One goggle URL or inline definition."
                },
                "description": "Multiple goggles to apply to the search request.",
                "minItems": 1
              }
            ],
            "description": "One or more Brave Search goggles used to rerank results."
          },
          "text_decorations": {
            "type": "boolean",
            "description": "Whether display strings should include decoration markers such as highlights."
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "The measurement units used for localized results."
          },
          "operators": {
            "type": "boolean",
            "description": "Whether Brave Search should apply search operators."
          },
          "include_fetch_metadata": {
            "type": "boolean",
            "description": "Whether Brave Search should include fetch metadata in results when available."
          }
        },
        "additionalProperties": false,
        "required": [
          "q"
        ],
        "description": "Input parameters for a Brave Search web search request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The Brave Search response type."
          },
          "query": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Query metadata returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "web": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Web result payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "news": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "News result payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "videos": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Video result payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "locations": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Location result payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "discussions": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Discussion clusters returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "faq": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Frequently asked questions returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "infobox": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Infobox payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "mixed": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Mixed ranking payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "summarizer": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Summary metadata returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          },
          "rich": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Rich result callback payload returned by Brave Search."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "type"
        ],
        "description": "A normalized Brave Search web search response."
      }
    }
  ]
}
