Contract
{
"type": "object",
"required": [
"queries"
],
"properties": {
"mode": {
"enum": [
"web",
"news"
],
"type": "string",
"default": "web"
},
"engine": {
"type": "string",
"default": "auto",
"description": "search backend: auto (recommended) or yahoo/yandex (web); bing (news)"
},
"region": {
"type": "string",
"default": "us-en",
"description": "locale, e.g. us-en, uk-en, de-de"
},
"queries": {
"type": "string",
"description": "up to 5 search queries separated by '|'"
},
"timelimit": {
"enum": [
"d",
"w",
"m",
"y"
],
"type": "string",
"description": "restrict to past day/week/month/year"
},
"safesearch": {
"enum": [
"on",
"moderate",
"off"
],
"type": "string",
"default": "moderate"
},
"num_results": {
"type": "string",
"default": "10",
"description": "max results per query, cap 25"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of batch entries in `items`, one per query sent (observed 2 for a two-query call, 1 for a single-query call)."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Observed as the literal string 'serp_batch' on every batch entry."
},
"query": {
"type": "string",
"description": "The query this entry's results answer, echoed from the input."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Link to the found page. Every host observed is the found site itself (en.wikipedia.org, openai.com, finance.yahoo.com, ...), never this platform's own infrastructure."
},
"date": {
"type": "string",
"description": "ISO-8601 publication timestamp, e.g. '2026-09-30T15:20:17+00:00'. Present on news-mode results only; web-mode results carry no such field at all."
},
"rank": {
"type": "number",
"description": "Position in the result list, starting at 1."
},
"type": {
"type": "string",
"description": "Observed as 'search_result' for web-mode results and 'news_result' for news-mode results -- the value labels the mode the batch ran in."
},
"title": {
"type": "string",
"description": "The result's headline or page title."
},
"engine": {
"type": "string",
"description": "Search backend that produced the result; observed as 'auto' on every result in both fixtures, though the input documents other backend names."
},
"source": {
"type": "string",
"description": "Publishing outlet's name, e.g. 'Yahoo Finance', 'Benzinga', 'Investor's Business Daily'. Present on news-mode results only."
},
"snippet": {
"type": "string",
"description": "Short extract of the page. Observed as an empty string for at least one result whose page had nothing to preview."
}
},
"additionalProperties": true
},
"description": "The ranked results for this query."
},
"resultCount": {
"type": "number",
"description": "Number of results returned for this query -- follows the requested `num_results` (10 observed with the default, 5 observed with `num_results: 5`)."
}
},
"additionalProperties": true
},
"description": "One entry per query in the batch, in the order sent."
}
},
"description": "The batch search response, as returned at routing.responseResultPath ($.output).",
"additionalProperties": true
}Pricing
Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.
Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.
| Charge | Rate |
|---|---|
Per call Flat, regardless of what comes back | $0.15015 |
- Cost basis
- Not recorded
This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.
- Updated
- Sep 30, 2026
