# OpenWeb Ninja Real-Time Web Search

> OpenWeb Ninja Real-Time Web Search is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Returns real-time Google organic search results, AI Overviews, and result counts with full support for Google Search parameters and advanced operators.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-web-search/search?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-openweb-ninja-real-time-web-search-45a42ff1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_FCrPnuVJsHwMgRxDOgJL-

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 agents-openwebninja-com-openweb-ninja-real-time-web-search-45a42ff1
```

Example prompt: Search Google for 'best project management tools for remote teams' and give me the top 10 organic results plus the AI Overview if one is available — target US English results on desktop.

## When to prefer this

Choose this endpoint when you need real-time, structured Google search results with fine-grained control over geo-targeting (country, language, city-level location), device simulation, time filters, and advanced search operators. It is preferable over generic search APIs when you require Google-specific parameters (gl, hl, tbs, uule), AI Overviews data, or Google SERP fidelity rather than an aggregated multi-engine result. Ideal for SEO research, competitive intelligence, content discovery, and agents that need to ground answers in live web data.

## Known failure modes

- Missing required 'q' parameter returns a validation error
- Invalid country code for 'gl' or language code for 'hl' may return unexpected results or an error
- Combining 'uule' and 'location' parameters simultaneously is not supported and will cause an error
- Requesting more than 100 results exceeds the maximum and will be rejected
- Query returning no Google results yields an empty organic_results array
- Rate limit or quota exhaustion returns a 402 or 429 error
- AI Overviews not returned when fetch_ai_overviews is false or Google does not generate one for the query

## How this service works

Get real-time organic search results from across the web, AI Overviews, total count, and more.  
  Support the Google Search parameters (gl, hl, tbs, etc) and city level geo targeting.  
  Supports all Google Advanced Search operators such (e.g. inurl:, site:, intitle:, etc).

## Output

A structured JSON object containing an array of organic search results (each with title, URL, snippet, position, rank, and optional date/thumbnail), an optional AI Overviews block with text fragments and citation links, request parameters echo, a status field, and a request ID. Up to 100 results can be returned across paginated requests.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "q"
 ],
 "properties": {
  "q": {
   "type": "string",
   "example": "how to build a website",
   "description": "Search query"
  },
  "gl": {
   "type": "string",
   "default": "us",
   "description": "The country / region for which to make the query. Allowed values: 2-letter country code, see ISO 3166-1 alpha-2."
  },
  "hl": {
   "type": "string",
   "default": "en",
   "description": "The language to use for the search (Google's hl parameter). Allowed values: 2-letter country code, see ISO 639-1 alpha-2."
  },
  "lr": {
   "type": "string",
   "description": "Only return search results in a specific language.  \n  It uses lang_{two-letter language code} to specify languages and | as a delimiter (e.g. lang_fr|lang_de will only search French and German pages)."
  },
  "num": {
   "type": "integer",
   "default": 10,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum number of results to return. Please note that a request credit will be consumed from the quota for each results page (10 results)."
  },
  "tbs": {
   "type": "string",
   "description": "This parameter defines advanced search parameters that aren't available using regular query parameters (to be searched)."
  },
  "nfpr": {
   "type": "string",
   "description": "Exclude results of auto-corrected query when the original query is misspelled with nfpr=1 and include them with nfpr=0 (default)."
  },
  "uule": {
   "type": "string",
   "description": "Google's own encoded location string (e.g. w+CAIQICIgU2VhdHRsZSxXYXNoaW5ndG9uLFVuaXRlZCBTdGF0ZXM=), passed to Google as is. Use it instead of location when you already generate uule values. Cannot be combined with location."
  },
  "start": {
   "type": "integer",
   "default": 0,
   "description": "Number of results to skip (for pagination)."
  },
  "device": {
   "enum": [
    "desktop",
    "mobile",
    "tablet"
   ],
   "type": "string",
   "default": "desktop",
   "description": "The device to simulate for the search. Mobile and tablet return Google's mobile SERP layout, whose rankings and features can differ from desktop. Allowed values: desktop (default), mobile, tablet."
  },
  "location": {
   "type": "string",
   "description": "Where you want the search to originate from.  \n  It is recommended to specify location at the city level in order to simulate a real user’s search (e.g. London, England, United Kingdom)."
  },
  "extra_speed": {
   "type": "boolean",
   "description": "Speed up t
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "object",
   "required": [
    "organic_results",
    "has_ai_overviews"
   ],
   "properties": {
    "ai_overviews": {
     "type": "object",
     "nullable": true,
     "properties": {
      "text_parts": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "type"
        ],
        "properties": {
         "list": {
          "type": "array",
          "items": {
           "type": "object",
           "properties": {
            "text": {
             "type": "string",
             "description": "Item body text."
            },
            "title": {
             "type": "string",
             "nullable": true,
             "description": "Bold label preceding the item text, when present."
            }
           }
          },
          "nullable": true,
          "description": "Items of a list fragment."
         },
         "text": {
          "type": "string",
          "nullable": true,
          "description": "Text content of paragraph/heading fragments."
         },
         "type": {
          "type": "string",
          "description": "Fragment kind. Values: paragraph, heading, list."
         },
         "ordered": {
          "type": "boolean",
          "nullable": true,
          "description": "Whether a list fragment is ordered (numbered)."
         }
        }
       },
       "description": "Sequenced fragments composing the AI Overview body (paragraphs, headings, lists, images)."
      },
      "reference_links": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "title",
         "link"
        ],
        "properties": {
         "date": {
          "type": "string",
          "nullable": true,
          "description": "Publication date of the cited page, when present."
         },
         "link": {
          "type": "string",
          "description": "URL of the cited page."
         },
         "title": {
          "type": "string",
          "description": "Title of the cited page."
         },
         "source": {
          "type": "string",
          "nullable": true,
          "description": "Publisher / source label."
         },
         "snippet": {
          "type": "string",
          "nullable": true,
          "description": "Short excerpt of the cited page."
         }
        }
       },
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-openweb-ninja-real-time-web-search-45a42ff1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
