# Brave News Search via AIsa

> Brave News Search via AIsa is a paid API for AI agents from AIsa MPP Data APIs at api.aisa.one, paid per call via MPP, $0.005/call, status unknown (last checked 2026-10-18).

Search for recent news articles using Brave's news search index, returning ranked results with titles, URLs, descriptions, and publication metadata

## Facts

- Endpoint: POST https://api.aisa.one/apis/v1/brave/news/search?utm_source=zero.xyz
- Price: $0.005/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Provider: AIsa MPP Data APIs
- Website: https://aisa.one
- Tags: web-search, financial-data, prediction-markets, weather, travel, data, search
- Canonical page: https://www.zero.xyz/c/aisa-mpp-data-apis-brave-news-search-via-aisa-6585f6f1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_BO_1dBaWSGORF43erCvIo

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability aisa-mpp-data-apis-brave-news-search-via-aisa-6585f6f1 -d '<json body>'
```

Example prompt: Search Brave News for the latest articles about the Federal Reserve interest rate decision — give me 10 results from the US.

## When to prefer this

Choose this endpoint when you need fresh, recent news articles indexed by Brave Search — especially when you want an alternative to Google-backed news APIs, need country-specific news filtering, or want to apply custom Brave Goggles re-ranking. Prefer this over general web search endpoints when the user explicitly wants news content rather than broad web results.

## Known failure modes

- Empty query string returns validation error (minLength:1)
- Query exceeding 400 characters or 50 words is rejected
- Offset above 9 is not supported and will return an error
- Fewer results than requested may be returned for niche queries
- Unsupported country code returns an error
- Rate limiting or payment failure returns a non-200 status

## How this service works

<!-- aisa-pricing:start -->
Published reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.
<!-- aisa-pricing:end -->

## Output

Returns a JSON object containing the original query metadata (original, altered, cleaned versions, spell-check info) and an array of news results. Each news result includes title, URL, description, publication age, source name, thumbnail image, and relevance metadata. Up to 50 results per call, paginated via count and offset parameters.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "NewsSearchParameters",
 "required": [
  "q"
 ],
 "properties": {
  "q": {
   "type": "string",
   "title": "The user's search query term.",
   "maxLength": 400,
   "minLength": 1,
   "description": "The user’s search query term. Query can not be empty. Maximum of 400 characters and 50 words in the query."
  },
  "count": {
   "type": "integer",
   "title": "Count",
   "default": 20,
   "maximum": 50,
   "minimum": 1,
   "description": "The number of search results returned in response. The maximum is 50. The actual number delivered may be less than requested. Combine this parameter with offset to paginate search results."
  },
  "offset": {
   "type": "integer",
   "title": "Offset",
   "default": 0,
   "maximum": 9,
   "minimum": 0,
   "description": "The zero based offset that indicates number of search results per page (count) to skip before returning the result. The maximum is 9. The actual number delivered may be less than requested based on the query. In order to paginate results use this parameter together with count. For example, if your user interface displays 20 search results per page, set count to 20 and offset to 0 to show the first page of results. To get subsequent pages, increment offset by 1 (e.g. 0, 1, 2). The results may overlap across multiple pages."
  },
  "country": {
   "allOf": [
    {
     "enum": [
      "AR",
      "AU",
      "AT",
      "BE",
      "BR",
      "CA",
      "CL",
      "DK",
      "FI",
      "FR",
      "DE",
      "GR",
      "HK",
      "IN",
      "ID",
      "IT",
      "JP",
      "KR",
      "MY",
      "MX",
      "NL",
      "NZ",
      "NO",
      "CN",
      "PL",
      "PT",
      "PH",
      "RU",
      "SA",
      "ZA",
      "ES",
      "SE",
      "CH",
      "TW",
      "TR",
      "GB",
      "US",
      "ALL"
     ],
     "type": "string",
     "title": "SearchCountry"
    },
    {
     "default": "US"
    }
   ],
   "description": "The search query country, where the results come from. The country string is limited to 2 character country codes of supported countries or <code>ALL</code> for worldwide."
  },
  "goggles": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    {
     "type": "null"
    }
   ],
   "title": "Goggles",
   "description": "Goggles act as a custom re-ranking on top of Brave’s search index. The parameter supports both a url where the Goggle is hosted or the d
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "NewsSearchApiResponse",
 "required": [
  "query"
 ],
 "properties": {
  "type": {
   "enum": [
    "news"
   ],
   "type": "string",
   "const": "news",
   "title": "Type",
   "default": "news"
  },
  "query": {
   "type": "object",
   "title": "Query",
   "required": [
    "original"
   ],
   "properties": {
    "altered": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "null"
      }
     ],
     "title": "Altered",
     "description": "The altered query by the spellchecker. This is the query that is used to search if any."
    },
    "cleaned": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "null"
      }
     ],
     "title": "Cleaned",
     "description": "The cleaned normalized query by the spellchecker. This is the query that is used to search if any."
    },
    "original": {
     "type": "string",
     "title": "Original",
     "description": "The original query that was requested."
    },
    "spellcheck_off": {
     "anyOf": [
      {
       "type": "boolean"
      },
      {
       "type": "null"
      }
     ],
     "title": "Spellcheck Off",
     "description": "Whether the spellchecker is enabled or disabled."
    },
    "search_operators": {
     "anyOf": [
      {
       "type": "object",
       "title": "SearchOperators",
       "properties": {
        "sites": {
         "anyOf": [
          {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          {
           "type": "null"
          }
         ],
         "title": "Sites",
         "description": "List of site domains extracted from site: operators."
        },
        "applied": {
         "type": "boolean",
         "title": "Applied",
         "default": false,
         "description": "Whether search operators were applied to the query."
        },
        "cleaned_query": {
         "anyOf": [
          {
           "type": "string"
          },
          {
           "type": "null"
          }
         ],
         "title": "Cleaned Query",
         "description": "The query after search operators have been processed."
        }
       }
      },
      {
       "type": "null"
      }
     ],
     "description": "Search operators applied to the query."
    },
    "show_strict_warning": {
     "anyOf": [
      {
       "type": "boolean"
      },
      {
       "type": "null"
      }
     ],
     "title": "Show Strict Warning"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/aisa-mpp-data-apis-brave-news-search-via-aisa-6585f6f1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.aisa.one](https://www.zero.xyz/host/api.aisa.one/llms.txt)
