# OpenWeb Ninja Real-Time Full-Depth Web Search

> OpenWeb Ninja Real-Time Full-Depth 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, full-depth Google SERP results including organic listings, ads, AI overviews, knowledge graph, places, top stories, inline videos, answer boxes, and discussions with city-level geo targeting.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-web-search/v2/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-full-depth-web-search-cd605ebc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_BK7PDuQN8cVHNu-iSvYlY

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-full-depth-web-search-cd605ebc
```

Example prompt: Search the web in real-time for 'best electric vehicles 2025' targeting US users in English, give me up to 10 organic results plus any AI overview, answer box, or top stories Google surfaces.

## When to prefer this

Choose this endpoint when you need rich, full-depth Google SERP data in real-time — especially when you need multiple result types simultaneously (organic + AI overview + places + answer box) in a single call. Prefer it over lighter SERP endpoints when AI overviews, knowledge graphs, or local places packs are required. Use it when city-level geo targeting matters. Note that it costs 2 credits per call, so prefer a lighter endpoint if only basic organic results are needed.

## Known failure modes

- Missing required 'q' parameter returns a 400 validation error
- Query yields no results for very obscure or nonsensical terms
- uule and location cannot be combined — supplying both causes a parameter conflict error
- Rate limiting or credit exhaustion returns a 402 or 429 error (each call costs 2 credits)
- Google may not surface optional components (ads, AI overview, answer box, places) for every query — those fields return null
- Misspelled queries may be auto-corrected by Google unless nfpr=1 is set

## How this service works

Get real-time full-depth web search results via the heavy serp path, including organic results, ads, AI overviews, knowledge graph, places, top stories, inline videos, answer box, and discussions. Supports Google Search parameters (gl, hl, tbs, etc.) and city-level geo targeting. Note: Each request to this endpoint consumes 2 request credits.

## Output

A structured JSON object containing: organic results (title, URL, snippet), optional ads, optional AI overview with text fragments and reference links, optional answer box with type and plain-text answer, optional knowledge graph, optional places/local pack, optional top stories, optional inline videos, optional discussions, plus request metadata and parameters echoed back.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "q"
 ],
 "properties": {
  "q": {
   "type": "string",
   "example": "albert einstein",
   "description": "Search query. Supports all Google Advanced Search operators (site:, inurl:, intitle:, etc)."
  },
  "gl": {
   "type": "string",
   "default": "us",
   "description": "The country / region for which to make the query. 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). 2-letter language code, see ISO 639-1 alpha-2."
  },
  "lr": {
   "type": "string",
   "description": "Restrict search results to a specific language. Uses lang_{two-letter language code} with | as delimiter (e.g. lang_fr|lang_de searches French and German pages only)."
  },
  "nhr": {
   "enum": [
    "0",
    "1"
   ],
   "type": "string",
   "default": "0",
   "description": "Exclude 'People also ask' style related questions from the results with nhr=1. Include them with nhr=0 (default)."
  },
  "num": {
   "type": "integer",
   "default": 10,
   "maximum": 10,
   "minimum": 1,
   "description": "Maximum number of organic results to return per request (1-10)."
  },
  "tbs": {
   "type": "string",
   "description": "Advanced Google search parameters that aren't available using regular query parameters (e.g. qdr:d for the last day, qdr:w for the last week)."
  },
  "nfpr": {
   "enum": [
    "0",
    "1"
   ],
   "type": "string",
   "default": "0",
   "description": "Exclude results of the 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 (default 0)."
  },
  "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 the search 
… (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": {
    "ads": {
     "type": "array",
     "items": {
      "type": "object"
     },
     "nullable": true,
     "description": "Sponsored / ad results, when Google surfaces them for this query."
    },
    "places": {
     "type": "array",
     "items": {
      "type": "object"
     },
     "nullable": true,
     "description": "Local pack / places results, when Google surfaces them for this query."
    },
    "answer_box": {
     "type": "object",
     "nullable": true,
     "properties": {
      "type": {
       "type": "string",
       "description": "Answer box variant. Examples: instant_answer, calculator, definition."
      },
      "answer": {
       "type": "string",
       "nullable": true,
       "description": "Plain-text answer Google displays."
      }
     },
     "description": "Google answer box (instant answer / calculator / definition), when Google surfaces one."
    },
    "top_stories": {
     "type": "array",
     "items": {
      "type": "object"
     },
     "nullable": true,
     "description": "Top Stories results, when Google surfaces them for this query."
    },
    "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,
     
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-openweb-ninja-real-time-full-depth-web-search-cd605ebc/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)
