{
  "openapi": "3.1.0",
  "info": {
    "title": "API Shop Documentation",
    "description": "Integrated API platform documentation. This document covers all services provided by API Shop. For details on common response codes (like 401, 403, 500), please refer to our unified error code documentation.",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "http://api.justserpapi.com",
      "description": "Generated server url"
    }
  ],
  "paths": {
    "/api/v1/web/rendered-html": {
      "get": {
        "tags": [
          "Web Crawling"
        ],
        "summary": "Crawl Webpage (Rendered HTML)",
        "description": "Get webpage crawl data, including returns full raw Rendered HTML content, fast and cost-efficient, and optimized for static page crawling, for scraping, metadata extraction, and page structure analysis.",
        "operationId": "renderedHtml",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "The full URL of the webpage to crawl (e.g., 'https://www.example.com').",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 20010,
        "x-highlights": []
      }
    },
    "/api/v1/web/markdown": {
      "get": {
        "tags": [
          "Web Crawling"
        ],
        "summary": "Crawl Webpage (Markdown)",
        "description": "Get webpage crawl data, including removing boilerplate, for readable extraction, documentation workflows, and LLM input.",
        "operationId": "markdown",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "The full URL of the webpage to crawl and convert to Markdown (e.g., 'https://www.example.com').",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 20020,
        "x-highlights": []
      }
    },
    "/api/v1/web/html": {
      "get": {
        "tags": [
          "Web Crawling"
        ],
        "summary": "Crawl Webpage (HTML)",
        "description": "Get webpage crawl data, including returns full raw HTML content, fast and cost-efficient, and optimized for static page crawling, for scraping, metadata extraction, and page structure analysis.",
        "operationId": "html",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "The full URL of the webpage to crawl (e.g., 'https://www.example.com').",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 20000,
        "x-highlights": []
      }
    },
    "/api/v1/google/videos/search": {
      "get": {
        "tags": [
          "Google Video"
        ],
        "summary": "Search",
        "description": "Get Google video Search data, including titles, sources, and dates, for video SEO and content monitoring.",
        "operationId": "videosSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Videos (e.g., 'coding tutorial', 'movie trailers').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          },
          {
            "name": "result_time",
            "in": "query",
            "description": "Filter results by publication time (e.g., 'qdr:d' for past 24 hours, 'qdr:w' for past week).",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 7000,
        "x-highlights": []
      }
    },
    "/api/v1/google/trends/trending-now": {
      "get": {
        "tags": [
          "Google Trends"
        ],
        "summary": "Trending Now",
        "description": "Get Google trends Trending Now data, including latest trending topics, region and time-window filters, and volume indicators, for breaking-trend monitoring and editorial planning.",
        "operationId": "TrendsTrendingNow",
        "parameters": [
          {
            "name": "geo",
            "in": "query",
            "description": "The geographic location code to retrieve real-time trends for (e.g., 'US' for United States). Default is 'US'.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hours",
            "in": "query",
            "description": "Time window for trending topics.\n\nAvailable Values:\n- `PAST_4_HOURS`: Past 4 hours. Legacy value `4` is also accepted.\n- `PAST_24_HOURS`: Past 24 hours. Legacy value `24` is also accepted.\n- `PAST_48_HOURS`: Past 48 hours. Legacy value `48` is also accepted.\n- `PAST_7_DAYS`: Past 7 days. Legacy value `168` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Trends trending-now time window.",
              "enum": [
                "PAST_4_HOURS",
                "PAST_24_HOURS",
                "PAST_48_HOURS",
                "PAST_7_DAYS"
              ]
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en').",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 10020,
        "x-highlights": []
      }
    },
    "/api/v1/google/trends/search": {
      "get": {
        "tags": [
          "Google Trends"
        ],
        "summary": "Search",
        "description": "Get Google trends Search data, including interest over time, geo breakdowns, and related queries, for demand analysis and seasonal trend monitoring.",
        "operationId": "TrendsSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search term or topic ID to analyze in Google Trends (e.g., 'iPhone', '/m/027lnzs' for Bitcoin). You can provide up to 5 terms separated by commas for comparisons.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "geo",
            "in": "query",
            "description": "The geographic location code to filter trends (e.g., 'US', 'GB'). Omit for worldwide trends. See <a href=\"/reference/google-trends-locations\">Google Trends Locations</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "description": "Refines results for region charts.\n\nAvailable Values:\n- `COUNTRY`: Country-level results.\n- `REGION`: Region-level results.\n- `DMA`: Designated market area results.\n- `CITY`: City-level results.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Trends region chart refinement.",
              "enum": [
                "COUNTRY",
                "REGION",
                "DMA",
                "CITY"
              ]
            }
          },
          {
            "name": "data_type",
            "in": "query",
            "description": "The type of trend data to retrieve.\n\nAvailable Values:\n- `INTEREST_OVER_TIME`: Interest over time. Legacy value `TIMESERIES` is also accepted.\n- `REGION_BREAKDOWN`: Breakdown by region. Legacy value `GEO_MAP` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Trends data type.",
              "enum": [
                "INTEREST_OVER_TIME",
                "REGION_BREAKDOWN"
              ]
            }
          },
          {
            "name": "tz",
            "in": "query",
            "description": "Time zone offset in minutes (e.g., '420' for PDT). Range: -1439 to 1439.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cat",
            "in": "query",
            "description": "The search category code (e.g., '0' for all categories).",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": 0
          },
          {
            "name": "gprop",
            "in": "query",
            "description": "The Google property to filter trends.\n\nAvailable Values:\n- `IMAGES`: Google Images. Legacy value `images` is also accepted.\n- `NEWS`: Google News. Legacy value `news` is also accepted.\n- `SHOPPING`: Google Shopping. Legacy value `froogle` is also accepted.\n- `YOUTUBE`: YouTube. Legacy value `youtube` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Trends property filter.",
              "enum": [
                "IMAGES",
                "NEWS",
                "SHOPPING",
                "YOUTUBE"
              ]
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "Date range filter for the search. Supports predefined values (now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all) and custom ranges: yyyy-mm-dd yyyy-mm-dd (e.g. 2021-10-15 2022-05-25) or hourly yyyy-mm-ddThh yyyy-mm-ddThh within 1 week (e.g. 2022-05-19T10 2022-05-24T22, based on tz).",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 10000,
        "x-highlights": []
      }
    },
    "/api/v1/google/trends/autocomplete": {
      "get": {
        "tags": [
          "Google Trends"
        ],
        "summary": "Autocomplete",
        "description": "Get Google trends Autocomplete data, including topic IDs, for trend discovery and topic expansion.",
        "operationId": "TrendsAutocomplete",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query to get trending autocomplete suggestions for (e.g., 'artificial').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 10010,
        "x-highlights": []
      }
    },
    "/api/v1/google/shorts/search": {
      "get": {
        "tags": [
          "Google Shorts"
        ],
        "summary": "Search",
        "description": "Get Google shorts Search data, including video metadata and rankings, for short-form content tracking and trend analysis.",
        "operationId": "shortsSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Shorts (e.g., 'cooking tips', 'travel hacks').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start",
            "in": "query",
            "description": "The result offset to skip a specific number of entries (e.g., set to 12 to skip the first 12 results).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 8000,
        "x-highlights": []
      }
    },
    "/api/v1/google/shopping/search": {
      "get": {
        "tags": [
          "Google Shopping"
        ],
        "summary": "Search",
        "description": "Get Google shopping Search data, including product listings, prices, and merchants, for pricing research and catalog monitoring.",
        "operationId": "shoppingSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The shopping search query (e.g., 'iPhone 15', 'running shoes').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shoprs",
            "in": "query",
            "description": "A unique ID used to apply specific shopping filters. Usually obtained from previous response.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 11000,
        "x-highlights": []
      }
    },
    "/api/v1/google/search": {
      "get": {
        "tags": [
          "Google"
        ],
        "summary": "Search",
        "description": "Get Google search SERP data, including organic results, ads, and knowledge panels, for keyword tracking and SERP analysis across markets.",
        "operationId": "search",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Search (e.g., 'coffee shops', 'how to bake a cake').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "cr",
            "in": "query",
            "description": "Limits results to search results from specific countries. Format: 'countryXX'. See <a href=\"/reference/google-cr-countries\">Google CR Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "description": "The textual location name (e.g., 'New York, NY') to localize the search results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ludocid",
            "in": "query",
            "description": "Google local business CID (place identifier). Used to target a specific Google Business Profile / local listing. Advanced parameter — if you don’t know it, you can omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lsig",
            "in": "query",
            "description": "Signature parameter (lsig) sometimes required for certain Knowledge Graph / local map view features. This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kgmid",
            "in": "query",
            "description": "Knowledge Graph entity/listing ID (KGMID) used to retrieve details for a specific entity. This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "si",
            "in": "query",
            "description": "Cached search context parameter (si) used to reproduce specific Google search result views/context (e.g. some Knowledge Graph tabs). This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ibp",
            "in": "query",
            "description": "Parameter (ibp) used to control certain Google UI expansions or rendering modes (commonly in local/business result views). This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uds",
            "in": "query",
            "description": "Advanced filter token (uds) used for specific Google search sub-filters. This is an advanced technical parameter, usually provided by Google in filter options/results — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Toggle similar-results and omitted-results filtering.\n\nAvailable Values:\n- `DISABLED`: Disable similar and omitted results filtering. Legacy value `0` is also accepted.\n- `ENABLED`: Enable similar and omitted results filtering. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google result filter toggle.",
              "enum": [
                "DISABLED",
                "ENABLED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 1000,
        "x-highlights": []
      }
    },
    "/api/v1/google/search/mobile": {
      "get": {
        "tags": [
          "Google"
        ],
        "summary": "Mobile Search",
        "description": "Get Google mobile Search SERP data, including mobile-specific layouts and result features, for mobile SEO analysis and ranking checks.",
        "operationId": "searchMobile",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Search (e.g., 'coffee shops', 'how to bake a cake').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "cr",
            "in": "query",
            "description": "Limits results to search results from specific countries. Format: 'countryXX'. See <a href=\"/reference/google-cr-countries\">Google CR Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "description": "The textual location name (e.g., 'New York, NY') to localize the search results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ludocid",
            "in": "query",
            "description": "Google local business CID (place identifier). Used to target a specific Google Business Profile / local listing. Advanced parameter — if you don’t know it, you can omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lsig",
            "in": "query",
            "description": "Signature parameter (lsig) sometimes required for certain Knowledge Graph / local map view features. This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kgmid",
            "in": "query",
            "description": "Knowledge Graph entity/listing ID (KGMID) used to retrieve details for a specific entity. This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "si",
            "in": "query",
            "description": "Cached search context parameter (si) used to reproduce specific Google search result views/context (e.g. some Knowledge Graph tabs). This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ibp",
            "in": "query",
            "description": "Parameter (ibp) used to control certain Google UI expansions or rendering modes (commonly in local/business result views). This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uds",
            "in": "query",
            "description": "Advanced filter token (uds) used for specific Google search sub-filters. This is an advanced technical parameter, usually provided by Google in filter options/results — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Toggle similar-results and omitted-results filtering.\n\nAvailable Values:\n- `DISABLED`: Disable similar and omitted results filtering. Legacy value `0` is also accepted.\n- `ENABLED`: Enable similar and omitted results filtering. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google result filter toggle.",
              "enum": [
                "DISABLED",
                "ENABLED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 1020,
        "x-highlights": []
      }
    },
    "/api/v1/google/search/light": {
      "get": {
        "tags": [
          "Google"
        ],
        "summary": "Light Search",
        "description": "Get Google light Search SERP data, including essential result data, for high-volume monitoring and fast rank checks.",
        "operationId": "searchLight",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Search (e.g., 'coffee shops', 'how to bake a cake').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "cr",
            "in": "query",
            "description": "Limits results to search results from specific countries. Format: 'countryXX'. See <a href=\"/reference/google-cr-countries\">Google CR Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "description": "The textual location name (e.g., 'New York, NY') to localize the search results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ludocid",
            "in": "query",
            "description": "Google local business CID (place identifier). Used to target a specific Google Business Profile / local listing. Advanced parameter — if you don’t know it, you can omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lsig",
            "in": "query",
            "description": "Signature parameter (lsig) sometimes required for certain Knowledge Graph / local map view features. This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kgmid",
            "in": "query",
            "description": "Knowledge Graph entity/listing ID (KGMID) used to retrieve details for a specific entity. This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "si",
            "in": "query",
            "description": "Cached search context parameter (si) used to reproduce specific Google search result views/context (e.g. some Knowledge Graph tabs). This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ibp",
            "in": "query",
            "description": "Parameter (ibp) used to control certain Google UI expansions or rendering modes (commonly in local/business result views). This is an advanced technical parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uds",
            "in": "query",
            "description": "Advanced filter token (uds) used for specific Google search sub-filters. This is an advanced technical parameter, usually provided by Google in filter options/results — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Toggle similar-results and omitted-results filtering.\n\nAvailable Values:\n- `DISABLED`: Disable similar and omitted results filtering. Legacy value `0` is also accepted.\n- `ENABLED`: Enable similar and omitted results filtering. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google result filter toggle.",
              "enum": [
                "DISABLED",
                "ENABLED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 1010,
        "x-highlights": []
      }
    },
    "/api/v1/google/scholar/search": {
      "get": {
        "tags": [
          "Google Scholar"
        ],
        "summary": "Search",
        "description": "Search Google Scholar papers, patents, legal documents, citations, and article versions for literature review and academic monitoring. Provide query, cites, or cluster; cluster cannot be combined with query or cites.",
        "operationId": "ScholarSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The academic search query (e.g., 'machine learning', 'CRISPR gene editing'). Supports advanced operators like 'author:'. Required unless cites or cluster is provided, and cannot be combined with cluster.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google Scholar search page.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "cites",
            "in": "query",
            "description": "Return articles that cite the article with the specified ID. Can be used alone or with query, but cannot be combined with cluster.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "as_ylo",
            "in": "query",
            "description": "Minimum publication year filter (e.g., '2020').",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "as_yhi",
            "in": "query",
            "description": "Maximum publication year filter (e.g., '2024').",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scisbd",
            "in": "query",
            "description": "Controls whether to return only abstract results or all results.\n\nAvailable Values:\n- `ALL_RESULTS`: Return all results. Legacy value `0` is also accepted.\n- `ABSTRACT_RESULTS_ONLY`: Return abstract results only. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Scholar abstract-result filter.",
              "enum": [
                "ALL_RESULTS",
                "ABSTRACT_RESULTS_ONLY"
              ]
            }
          },
          {
            "name": "cluster",
            "in": "query",
            "description": "The unique ID of an article cluster to retrieve all versions of a specific work. Cannot be combined with query or cites.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "results",
            "in": "query",
            "description": "The number of search results to return per page.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 10
          },
          {
            "name": "as_sdt",
            "in": "query",
            "description": "Advanced filter for specific document types or legal jurisdictions. E.g., '7' to include patents.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Toggle 'Similar Results' and 'Omitted Results' filters. Set to '1' (default) to enable, '0' to disable.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "as_vis",
            "in": "query",
            "description": "Controls whether citations are included in the results.\n\nAvailable Values:\n- `INCLUDE_CITATIONS`: Include citations in the results. Legacy value `0` is also accepted.\n- `EXCLUDE_CITATIONS`: Exclude citations from the results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Scholar citation visibility filter.",
              "enum": [
                "INCLUDE_CITATIONS",
                "EXCLUDE_CITATIONS"
              ]
            }
          },
          {
            "name": "as_rr",
            "in": "query",
            "description": "Controls whether to show only review articles or return all results.\n\nAvailable Values:\n- `ALL_RESULTS`: Return all results. Legacy value `0` is also accepted.\n- `REVIEW_ARTICLES_ONLY`: Return review articles only. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Scholar review-article filter.",
              "enum": [
                "ALL_RESULTS",
                "REVIEW_ARTICLES_ONLY"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 14000,
        "x-highlights": []
      }
    },
    "/api/v1/google/scholar/cite/search": {
      "get": {
        "tags": [
          "Google Scholar"
        ],
        "summary": "Citations",
        "description": "Get Google scholar Citations data, including export links, for bibliography automation and citation workflows.",
        "operationId": "ScholarCiteSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The unique ID of a Google Scholar search result to retrieve citation formats for. Found in the 'id' field of previous Scholar Search responses.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 14030,
        "x-highlights": []
      }
    },
    "/api/v1/google/scholar/author": {
      "get": {
        "tags": [
          "Google Scholar"
        ],
        "summary": "Author",
        "description": "Get Google scholar Author data, including publications, citation metrics, and research interests, for researcher analysis and academic profiling.",
        "operationId": "ScholarAuthor",
        "parameters": [
          {
            "name": "author_id",
            "in": "query",
            "description": "The unique Google Scholar ID of the researcher/author (e.g., 'LSs6DR8AAAAJ').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "results",
            "in": "query",
            "description": "The number of results to return per page.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 20
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "view_op",
            "in": "query",
            "description": "Specific view operation for the author profile.\n\nAvailable Values:\n- `LIST_COLLEAGUES`: List co-authors. Legacy value `list_colleagues` is also accepted.\n- `VIEW_CITATION`: View citation details. Legacy value `view_citation` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Scholar author profile view operation.",
              "enum": [
                "LIST_COLLEAGUES",
                "VIEW_CITATION"
              ]
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria for the author's publications.\n\nAvailable Values:\n- `TITLE`: Sort by title. Legacy value `title` is also accepted.\n- `PUBLICATION_DATE`: Sort by publication date. Legacy value `pubdate` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Scholar author publication sort order.",
              "enum": [
                "TITLE",
                "PUBLICATION_DATE"
              ]
            }
          },
          {
            "name": "citation_id",
            "in": "query",
            "description": "The citation ID to view details for (required when 'view_op' is 'view_citation').",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 14020,
        "x-highlights": []
      }
    },
    "/api/v1/google/patents/search": {
      "get": {
        "tags": [
          "Google Patent"
        ],
        "summary": "Search",
        "description": "Get Google patent Search data, including filters, for patent discovery and portfolio monitoring.",
        "operationId": "patentSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for patents (e.g., 'autonomous vehicles', 'blockchain security').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "num",
            "in": "query",
            "description": "The number of results to return per page (range: 1-100).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 10
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting order for patent results.\n\nAvailable Values:\n- `NEWEST`: Newest first. Legacy value `new` is also accepted.\n- `OLDEST`: Oldest first. Legacy value `old` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Patents sort order.",
              "enum": [
                "NEWEST",
                "OLDEST"
              ]
            }
          },
          {
            "name": "clustered",
            "in": "query",
            "description": "If set to true, results will be grouped by classification.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "dups",
            "in": "query",
            "description": "Deduplication method.\n\nAvailable Values:\n- `LANGUAGE`: Deduplicate by publication language. Legacy value `language` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Patents deduplication method.",
              "enum": [
                "LANGUAGE"
              ]
            }
          },
          {
            "name": "patents",
            "in": "query",
            "description": "Whether to include Google Patents results.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": true
          },
          {
            "name": "scholar",
            "in": "query",
            "description": "Whether to include Google Scholar results.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "before",
            "in": "query",
            "description": "Latest date to include. Format: 'type:YYYYMMDD' (e.g., 'publication:20230101').",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Earliest date to include. Format: 'type:YYYYMMDD' (e.g., 'filing:20200101').",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "inventor",
            "in": "query",
            "description": "Filter by patent inventor(s). Multiple values can be comma-separated.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignee",
            "in": "query",
            "description": "Filter by patent assignee(s). Multiple values can be comma-separated.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by patent status.\n\nAvailable Values:\n- `GRANT`: Granted patents.\n- `APPLICATION`: Patent applications.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Patents status filter.",
              "enum": [
                "GRANT",
                "APPLICATION"
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by patent type.\n\nAvailable Values:\n- `PATENT`: Patent.\n- `DESIGN`: Design patent.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Patents type filter.",
              "enum": [
                "PATENT",
                "DESIGN"
              ]
            }
          },
          {
            "name": "litigation",
            "in": "query",
            "description": "Filter by litigation status.\n\nAvailable Values:\n- `YES`: Patents with litigation.\n- `NO`: Patents without litigation.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Patents litigation filter.",
              "enum": [
                "YES",
                "NO"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 18000,
        "x-highlights": []
      }
    },
    "/api/v1/google/patents/details": {
      "get": {
        "tags": [
          "Google Patent"
        ],
        "summary": "Details",
        "description": "Get Google patent Details data, including abstracts, claims, and legal status, for patent review and IP due diligence.",
        "operationId": "patentDetails",
        "parameters": [
          {
            "name": "patent_id",
            "in": "query",
            "description": "The unique Google Patent ID (e.g., 'US1234567B1').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 18010,
        "x-highlights": []
      }
    },
    "/api/v1/google/news/search": {
      "get": {
        "tags": [
          "Google News"
        ],
        "summary": "Search",
        "description": "Get Google news Search data, including headlines and source metadata, for media monitoring and news aggregation.",
        "operationId": "newsSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google News (e.g., 'artificial intelligence', 'climate change').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "topic_token",
            "in": "query",
            "description": "The Google News topic token to retrieve results for a specific category (e.g., 'World', 'Technology'). Obtained from previous responses.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publication_token",
            "in": "query",
            "description": "The Google News publication token to fetch results from a specific source (e.g., 'CNN', 'BBC'). Obtained from previous responses.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "section_token",
            "in": "query",
            "description": "The Google News section token to access a specific subsection within a topic or publication.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "so",
            "in": "query",
            "description": "Sorting order for news results. Only works with 'story_token'.\n\nAvailable Values:\n- `RELEVANCE`: Relevance. Legacy value `0` is also accepted.\n- `DATE`: Date. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google News sorting order.",
              "enum": [
                "RELEVANCE",
                "DATE"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 6000,
        "x-highlights": []
      }
    },
    "/api/v1/google/maps/search": {
      "get": {
        "tags": [
          "Google Maps"
        ],
        "summary": "Search",
        "description": "Get Google maps Search data, including business listings, ratings and contact data, and coordinate and location targeting, for local market research and lead discovery.",
        "operationId": "mapsSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Maps (e.g., 'restaurants', 'hospitals in New York').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ll",
            "in": "query",
            "description": "GPS coordinates for the search origin. Format: '@<latitude>,<longitude>,<zoom>'. Required for precise localization and pagination.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "data",
            "in": "query",
            "description": "Advanced Google Maps data parameter used for certain map/place-specific result filters and views. It can be copied from a Google Maps URL after applying filters, or constructed for specific place searches. This parameter is commonly used when type = \"place\". If you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "place_id",
            "in": "query",
            "description": "The unique Google Place ID to directly retrieve information for a specific location.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results pagination offset. Start at 0 and increment by 20 for each subsequent page.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 4000,
        "x-highlights": []
      }
    },
    "/api/v1/google/maps/reviews": {
      "get": {
        "tags": [
          "Google Maps"
        ],
        "summary": "Reviews",
        "description": "Get Google maps Reviews data, including ratings and reviewer metadata, for reputation analysis and review monitoring.",
        "operationId": "mapsReviews",
        "parameters": [
          {
            "name": "data_id",
            "in": "query",
            "description": "The unique Google Maps location ID (feature ID). You can get this from our Google Maps Search API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sorting order for reviews.\n\nAvailable Values:\n- `RELEVANCE`: Relevance. Legacy value `qualityScore` is also accepted.\n- `NEWEST`: Newest first. Legacy value `newestFirst` is also accepted.\n- `HIGHEST_RATING`: Highest rating first. Legacy value `ratingHigh` is also accepted.\n- `LOWEST_RATING`: Lowest rating first. Legacy value `ratingLow` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Maps review sort order.",
              "enum": [
                "RELEVANCE",
                "NEWEST",
                "HIGHEST_RATING",
                "LOWEST_RATING"
              ]
            },
            "example": "RELEVANCE"
          },
          {
            "name": "topic_id",
            "in": "query",
            "description": "Filter reviews by a specific topic ID. Topic IDs are obtained from previous Maps Reviews API responses.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "next_page_token",
            "in": "query",
            "description": "Token for retrieving the next page of reviews.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "results",
            "in": "query",
            "description": "The maximum number of reviews to return per page (range: 1-20).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 4030,
        "x-highlights": []
      }
    },
    "/api/v1/google/maps/posts": {
      "get": {
        "tags": [
          "Google Maps"
        ],
        "summary": "Posts",
        "description": "Get Google maps Posts data, including business post content, post dates and images, and profile-specific feeds, for local business monitoring and promotion tracking.",
        "operationId": "mapsPosts",
        "parameters": [
          {
            "name": "data_id",
            "in": "query",
            "description": "The unique Google Maps location ID (feature ID). You can get this from our Google Maps Search API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "next_page_token",
            "in": "query",
            "description": "Token used to retrieve the next page of business posts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 4010,
        "x-highlights": []
      }
    },
    "/api/v1/google/maps/places": {
      "get": {
        "tags": [
          "Google Maps"
        ],
        "summary": "Place Details",
        "description": "Get Google maps Place Details data, including contact details and business information, for enrich business directories, look up place details, and sync local app data.",
        "operationId": "mapsPlaces",
        "parameters": [
          {
            "name": "place_id",
            "in": "query",
            "description": "The unique Google Place ID. Obtainable via the Google Maps Search API. Use this or 'data_id'.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "data_id",
            "in": "query",
            "description": "The unique Google Maps location data ID. Use this or 'place_id'.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 4040,
        "x-highlights": []
      }
    },
    "/api/v1/google/maps/photos": {
      "get": {
        "tags": [
          "Google Maps"
        ],
        "summary": "Photos",
        "description": "Get Google maps Photos data, including related metadata, for visual location research and listing QA.",
        "operationId": "mapsPhotos",
        "parameters": [
          {
            "name": "data_id",
            "in": "query",
            "description": "The unique Google Maps location ID (feature ID). You can get this from our Google Maps Search API.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "category_id",
            "in": "query",
            "description": "The unique ID for a photo category (e.g., 'Interior', 'Exterior'). Found in previous Maps Photos API responses.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "next_page_token",
            "in": "query",
            "description": "Token for retrieving the next page of photo results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 4020,
        "x-highlights": []
      }
    },
    "/api/v1/google/local/search": {
      "get": {
        "tags": [
          "Google Local"
        ],
        "summary": "Search",
        "description": "Get Google local Search data, including business listings, ratings, and contact details, for local lead generation and competitor research.",
        "operationId": "localSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for local businesses (e.g., 'pizza', 'dentist near me').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "location",
            "in": "query",
            "description": "The textual location name (e.g., 'New York, NY') to localize the search results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "ludocid",
            "in": "query",
            "description": "The unique Google Business Profile listing ID (CID) to get details for a specific business.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 17000,
        "x-highlights": []
      }
    },
    "/api/v1/google/lens": {
      "get": {
        "tags": [
          "Google Lens"
        ],
        "summary": "Search",
        "description": "Get Google lens Search data, including visual matches, product matches, and related links, for visual search analysis and product matching workflows.",
        "operationId": "lens",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "The URL of the image you want to analyze with Google Lens. Must be a publicly accessible image URL.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "product",
            "in": "query",
            "description": "If set to true, the API will specifically look for product matches and shopping results.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "visual_matches",
            "in": "query",
            "description": "If set to true, the API will return visually similar images and matches.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "exact_matches",
            "in": "query",
            "description": "If set to true, the API will search for exact duplicates of the provided image.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 15000,
        "x-highlights": []
      }
    },
    "/api/v1/google/jobs/search": {
      "get": {
        "tags": [
          "Google Jobs"
        ],
        "summary": "Search",
        "description": "Get Google jobs Search data, including titles, companies, and locations, for aggregating job board results, analyzing hiring trends, and monitoring recruitment activity.",
        "operationId": "jobsSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The job search query (e.g., 'software engineer', 'data scientist London').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "next_page_token",
            "in": "query",
            "description": "Token for retrieving the next page of job results. Found in 'next_page_token' of a previous response.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chips",
            "in": "query",
            "description": "Additional search filters (chips) such as job type, date posted, etc. Use values returned in previous responses.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lrad",
            "in": "query",
            "description": "Search radius in miles around the specified location.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ltype",
            "in": "query",
            "description": "Filter by job location type. Set to '1' for work-from-home (remote) jobs.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uds",
            "in": "query",
            "description": "Advanced Google-provided filter string for job results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) to localize job results to a specific geographic area.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 16000,
        "x-highlights": []
      }
    },
    "/api/v1/google/immersive/product": {
      "get": {
        "tags": [
          "Google Immersive Product"
        ],
        "summary": "Details",
        "description": "Get Google immersive Product data, including features, specifications, and seller information, for product research and merchandising analysis.",
        "operationId": "immersiveProduct",
        "parameters": [
          {
            "name": "page_token",
            "in": "query",
            "description": "The unique token used to retrieve detailed product information in Google's immersive view. This token is typically found in Google Shopping or Search results.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stores",
            "in": "query",
            "description": "If set to true, the API will retrieve a list of more sellers for the product. Use this together with the 'sori' parameter.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "sori",
            "in": "query",
            "description": "Pagination offset for seller results. Set this to the number of sellers already retrieved to get the next set.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 12000,
        "x-highlights": []
      }
    },
    "/api/v1/google/images/search": {
      "get": {
        "tags": [
          "Google Images"
        ],
        "summary": "Search",
        "description": "Get Google images Search data, including image URLs and metadata, for filtered image discovery for research and monitoring workflows.",
        "operationId": "imagesSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for images (e.g., 'mountain landscape', 'luxury cars').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "The results page number. Use 0 for the first page, 1 for the second, and so on.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Google domain to use for the search (e.g., 'google.com', 'google.co.uk'). See <a href=\"/reference/google-domains\">Google Domains</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "google.com"
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "cr",
            "in": "query",
            "description": "Limits results to search results from specific countries. Format: 'countryXX'. See <a href=\"/reference/google-cr-countries\">Google CR Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "lr",
            "in": "query",
            "description": "Restrict results to one or more languages using the 'lang_{language_code}' format (e.g., 'lang_en'). See <a href=\"/reference/google-lr-language\">Google LR Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "period_unit",
            "in": "query",
            "description": "Time unit for recent image results.\n\nAvailable Values:\n- `SECOND`: Second. Legacy value `s` is also accepted.\n- `MINUTE`: Minute. Legacy value `n` is also accepted.\n- `HOUR`: Hour. Legacy value `h` is also accepted.\n- `DAY`: Day. Legacy value `d` is also accepted.\n- `WEEK`: Week. Legacy value `w` is also accepted.\n- `MONTH`: Month. Legacy value `m` is also accepted.\n- `YEAR`: Year. Legacy value `y` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Images recent-result time unit.",
              "enum": [
                "SECOND",
                "MINUTE",
                "HOUR",
                "DAY",
                "WEEK",
                "MONTH",
                "YEAR"
              ]
            }
          },
          {
            "name": "period_value",
            "in": "query",
            "description": "Time duration value used with 'period_unit' (e.g., 15 for 15 days). Default: 1.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for restricting images to a time range. Format: 'YYYYMMDD' (e.g., '20241201').",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for restricting images to a time range. Format: 'YYYYMMDD' (e.g., '20241231').",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chips",
            "in": "query",
            "description": "Additional suggested search terms (chips) to filter images. Values are obtained from previous responses.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tbs",
            "in": "query",
            "description": "Advanced search filter parameter (tbs) used to apply Google result filters (e.g. time range). This is an advanced parameter — if you’re not familiar with it, you can leave it empty.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imgar",
            "in": "query",
            "description": "Filter by image aspect ratio.\n\nAvailable Values:\n- `SQUARE`: Square images. Legacy value `s` is also accepted.\n- `TALL`: Tall images. Legacy value `t` is also accepted.\n- `WIDE`: Wide images. Legacy value `w` is also accepted.\n- `PANORAMIC`: Panoramic images. Legacy value `xw` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Images aspect-ratio filter.",
              "enum": [
                "SQUARE",
                "TALL",
                "WIDE",
                "PANORAMIC"
              ]
            }
          },
          {
            "name": "imgsz",
            "in": "query",
            "description": "Filter by image size.\n\nAvailable Values:\n- `LARGE`: Large images. Legacy value `l` is also accepted.\n- `MEDIUM`: Medium images. Legacy value `m` is also accepted.\n- `ICON`: Icon-sized images. Legacy value `i` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Images size filter.",
              "enum": [
                "LARGE",
                "MEDIUM",
                "ICON"
              ]
            }
          },
          {
            "name": "image_color",
            "in": "query",
            "description": "Filter images by a dominant color (e.g., 'red', 'blue', 'bw' for black and white, 'trans' for transparent).",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "image_type",
            "in": "query",
            "description": "Filter by image type. Supported values: 'face', 'photo', 'clipart', 'lineart', 'animated'.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "licenses",
            "in": "query",
            "description": "Filter by usage rights and licenses.\n\nAvailable Values:\n- `FREE_TO_USE`: Free to use. Legacy value `f` is also accepted.\n- `COMMERCIAL_USE`: Commercial use. Legacy value `fc` is also accepted.\n- `CREATIVE_COMMONS`: Creative Commons. Legacy value `cl` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Images license filter.",
              "enum": [
                "FREE_TO_USE",
                "COMMERCIAL_USE",
                "CREATIVE_COMMONS"
              ]
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          },
          {
            "name": "nfpr",
            "in": "query",
            "description": "Controls Google's auto-correction.\n\nAvailable Values:\n- `INCLUDE_CORRECTED_RESULTS`: Include corrected results. Legacy value `0` is also accepted.\n- `EXCLUDE_CORRECTED_RESULTS`: Exclude corrected results. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google auto-correction setting.",
              "enum": [
                "INCLUDE_CORRECTED_RESULTS",
                "EXCLUDE_CORRECTED_RESULTS"
              ]
            },
            "example": "INCLUDE_CORRECTED_RESULTS"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Toggle similar-results and omitted-results filtering.\n\nAvailable Values:\n- `DISABLED`: Disable similar and omitted results filtering. Legacy value `0` is also accepted.\n- `ENABLED`: Enable similar and omitted results filtering. Legacy value `1` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google result filter toggle.",
              "enum": [
                "DISABLED",
                "ENABLED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 5000,
        "x-highlights": []
      }
    },
    "/api/v1/google/hotels/search": {
      "get": {
        "tags": [
          "Google Hotels"
        ],
        "summary": "Search",
        "description": "Get Google hotels Search data, including prices, ratings, and availability details, for travel comparison and hospitality market analysis.",
        "operationId": "hotelsSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The destination or specific hotel name you are searching for (e.g., 'Paris', 'Hilton New York').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "check_in_date",
            "in": "query",
            "description": "The hotel check-in date in 'YYYY-MM-DD' format (e.g., '2026-05-20').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "check_out_date",
            "in": "query",
            "description": "The hotel check-out date in 'YYYY-MM-DD' format (e.g., '2026-05-25').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "next_page_token",
            "in": "query",
            "description": "The token used to retrieve the next page of hotel results. This token is found in the 'next_page_token' field of a previous response.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "adults",
            "in": "query",
            "description": "The number of adults staying in the room.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 2
          },
          {
            "name": "children",
            "in": "query",
            "description": "The number of children staying in the room.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "children_ages",
            "in": "query",
            "description": "The ages of the children, separated by commas (e.g., '5,10'). The number of ages must match the 'children' parameter.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "currency",
            "in": "query",
            "description": "The three-letter ISO currency code for displaying prices (e.g., 'USD', 'EUR'). See <a href=\"/reference/hotels/google-hotels-currency\">Google Hotels Currency</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "USD"
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "The criteria to sort hotel results.\n\nAvailable Values:\n- `LOWEST_PRICE`: Lowest price. Legacy value `3` is also accepted.\n- `HIGHEST_RATING`: Highest rating. Legacy value `8` is also accepted.\n- `MOST_REVIEWS`: Most reviews. Legacy value `13` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Hotels sort order.",
              "enum": [
                "LOWEST_PRICE",
                "HIGHEST_RATING",
                "MOST_REVIEWS"
              ]
            }
          },
          {
            "name": "min_price",
            "in": "query",
            "description": "Minimum price filter for the hotel stay.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "max_price",
            "in": "query",
            "description": "Maximum price filter for the hotel stay.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "property_types",
            "in": "query",
            "description": "Filter by hotel property types. See the <a href=\"/reference/hotels/google-hotels-property-types\">Google Property Types</a> for the full list of supported hotel property types. For vacation rentals, refer to the <a href=\"/reference/hotels/google-hotels-vacation-rentals-property-types\">Google Hotels Vacation Rentals Property Types</a>.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amenities",
            "in": "query",
            "description": "Filter by specific amenities (e.g., '35' for free Wi-Fi). <a href=\"/reference/hotels/google-hotels-amenities\">Google Hotels Amenities</a> (hotel amenities). <a href=\"/reference/hotels/google-hotels-vacation-rentals-amenities\">Google Hotels Vacation Rentals Amenities</a> (vacation rental amenities)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rating",
            "in": "query",
            "description": "Filter by minimum guest rating.\n\nAvailable Values:\n- `AT_LEAST_3_5`: 3.5+ guest rating. Legacy value `7` is also accepted.\n- `AT_LEAST_4_0`: 4.0+ guest rating. Legacy value `8` is also accepted.\n- `AT_LEAST_4_5`: 4.5+ guest rating. Legacy value `9` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google Hotels minimum guest rating filter.",
              "enum": [
                "AT_LEAST_3_5",
                "AT_LEAST_4_0",
                "AT_LEAST_4_5"
              ]
            }
          },
          {
            "name": "brands",
            "in": "query",
            "description": "Filter by specific hotel brand IDs. IDs can be comma-separated.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hotel_class",
            "in": "query",
            "description": "Filter by hotel star ratings. Supported values: '2', '3', '4', '5'. Can be comma-separated.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "free_cancellation",
            "in": "query",
            "description": "Filter for hotels that offer free cancellation. Set to '1' or 'true' to enable.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "special_offers",
            "in": "query",
            "description": "Filter for hotels currently offering special deals or discounts. Set to '1' or 'true' to enable.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eco_certified",
            "in": "query",
            "description": "Filter for hotels that are eco-certified. Set to '1' or 'true' to enable.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vacation_rentals",
            "in": "query",
            "description": "Set to true to search for vacation rentals instead of standard hotels.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "bedrooms",
            "in": "query",
            "description": "Minimum number of bedrooms required (applies to vacation rentals).",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bathrooms",
            "in": "query",
            "description": "Minimum number of bathrooms required (applies to vacation rentals).",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "property_token",
            "in": "query",
            "description": "The unique token for a specific hotel property to fetch detailed information.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 19000,
        "x-highlights": []
      }
    },
    "/api/v1/google/finance/search": {
      "get": {
        "tags": [
          "Google Finance"
        ],
        "summary": "Search",
        "description": "Get Google finance Search data, including market summaries, company details, and related finance results, for finance monitoring and market research.",
        "operationId": "financeSearch",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The stock symbol, company name, or index you want to search for on Google Finance (e.g., 'AAPL', 'Tesla', 'S&P 500').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 9000,
        "x-highlights": []
      }
    },
    "/api/v1/google/autocomplete": {
      "get": {
        "tags": [
          "Google"
        ],
        "summary": "Autocomplete Suggestions",
        "description": "Get Google autocomplete Suggestions data, including real-time suggestion data, country and language targeting, and structured suggestion lists, for keyword expansion and search intent research.",
        "operationId": "autocomplete",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query to get autocomplete suggestions for. As you type, Google provides real-time predictions based on popular searches.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "description": "Set the language for the results using its two-letter code (e.g., 'en' for English, 'fr' for French). See <a href=\"/reference/google-language\">Google Language</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 13000,
        "x-highlights": []
      }
    },
    "/api/v1/google/ai-overview": {
      "get": {
        "tags": [
          "Google AI"
        ],
        "summary": "Overview",
        "description": "Get Google aI Overview data, including generated summaries and cited sources, for generative search visibility tracking.",
        "operationId": "aiOverview",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "The unique URL generated by Google to access the AI Overview. This URL is typically extracted from the 'ai_overview_url' field in a <a href=\"/reference/google/search\">Google Search API</a> response. Note: This URL is transient and usually expires within 2 minutes.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 3000,
        "x-highlights": []
      }
    },
    "/api/v1/google/ai-mode": {
      "get": {
        "tags": [
          "Google AI"
        ],
        "summary": "Mode",
        "description": "Get Google aI Mode data, including generated answers, follow-up prompts, and cited links, for AI search experience monitoring.",
        "operationId": "aiMode",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "The search query for Google Search (e.g., 'coffee shops', 'how to bake a cake').",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "html",
            "in": "query",
            "description": "Set to true to return the raw HTML of the Google search results page alongside the structured data.",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "example": false
          },
          {
            "name": "country",
            "in": "query",
            "description": "Set the target country code (e.g., 'us', 'uk') to localize results. See <a href=\"/reference/google-countries\">Google Countries</a>.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "uule",
            "in": "query",
            "description": "Encoded location string (UULE) used to precisely localize Google search results. This is an advanced/technical parameter — if you’re not familiar with it, you can leave it empty and omit it.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "description": "The textual location name (e.g., 'New York, NY') to localize the search results.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "safe",
            "in": "query",
            "description": "SafeSearch filter setting.\n\nAvailable Values:\n- `ACTIVE`: Filter adult content. Legacy value `active` is also accepted.\n- `OFF`: Disable SafeSearch filtering. Legacy value `off` is also accepted.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Google SafeSearch filter setting.",
              "enum": [
                "ACTIVE",
                "OFF"
              ]
            },
            "example": "OFF"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ResultJsonNode"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed: API Key is invalid or missing"
          },
          "403": {
            "description": "Access denied: Insufficient credits or quota exceeded"
          },
          "500": {
            "description": "Internal server error or upstream service exception"
          }
        },
        "x-order": 2000,
        "x-highlights": []
      }
    }
  },
  "components": {
    "schemas": {
      "JsonNode": {
        "type": "object",
        "properties": {
          "empty": {
            "type": "boolean"
          },
          "array": {
            "type": "boolean"
          },
          "null": {
            "type": "boolean"
          },
          "object": {
            "type": "boolean"
          },
          "float": {
            "type": "boolean"
          },
          "number": {
            "type": "boolean"
          },
          "string": {
            "type": "boolean"
          },
          "valueNode": {
            "type": "boolean"
          },
          "long": {
            "type": "boolean"
          },
          "binary": {
            "type": "boolean"
          },
          "nodeType": {
            "type": "string",
            "enum": [
              "ARRAY",
              "BINARY",
              "BOOLEAN",
              "MISSING",
              "NULL",
              "NUMBER",
              "OBJECT",
              "POJO",
              "STRING"
            ]
          },
          "pojo": {
            "type": "boolean"
          },
          "missingNode": {
            "type": "boolean"
          },
          "integralNumber": {
            "type": "boolean"
          },
          "floatingPointNumber": {
            "type": "boolean"
          },
          "short": {
            "type": "boolean"
          },
          "int": {
            "type": "boolean"
          },
          "double": {
            "type": "boolean"
          },
          "bigDecimal": {
            "type": "boolean"
          },
          "bigInteger": {
            "type": "boolean"
          },
          "textual": {
            "type": "boolean",
            "deprecated": true
          },
          "boolean": {
            "type": "boolean"
          },
          "container": {
            "type": "boolean"
          },
          "embeddedValue": {
            "type": "boolean"
          }
        }
      },
      "ResultJsonNode": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "requestId": {
            "type": "string"
          },
          "timestamp": {
            "type": "integer",
            "format": "int64"
          }
        }
      }
    }
  }
}
