{
  "data": {
    "a": {
      "slug": "serphouse",
      "name": "SERPHouse",
      "vendor": "Patoliya Infotech LLP",
      "vendorUrl": "https://www.serphouse.com",
      "kind": "http-api",
      "category": "search",
      "summary": "SERPHouse is a SERP API from Patoliya Infotech LLP in India that returns parsed Google, Bing and Yahoo results as JSON, live or scheduled, with a Scraper API for page HTML or Markdown and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/serphouse",
      "markdownUrl": "https://www.anchorterminal.com/tools/serphouse.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/serphouse.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/serphouse.json",
      "dns": "serphouse.grade.anchorterminal.com",
      "repo": "https://github.com/SERPHouse/serphouse-mcp",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://mcp.serphouse.com/YOUR_API_KEY/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "serphouse-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "One API key per account, shown on the dashboard after a browser signup and email confirmation. Sent as `Authorization: Bearer` or as `api_token` in the query string. The hosted MCP server takes the key in its URL path. One account per user. No scopes or rotation found.",
      "pricing": "paid",
      "pricingNotes": "Basic $29.99 a month for 400,000 credits ($0.75 per 1,000 SERP requests) and Regular $49.99 for 800,000 ($0.62). Autocomplete $0.37 and $0.31, Top 100 Google $7.50 and $6.25 per 1,000. Custom plans by email. Free trial 4,000 credits for 7 days, no card. Credits don't roll over.",
      "priceSummary": "$0.75 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the docs, llms.txt or the MCP source (checked 2026-11-06). An empty balance returns 402 'Insufficient credits'.",
        "endpoints": []
      },
      "toolCount": 23,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.serphouse.com/docs",
      "llmsTxt": "https://www.serphouse.com/llms.txt",
      "capabilities": [
        "search.serp",
        "web.search",
        "search.news",
        "search.images",
        "web.fetch"
      ],
      "tags": [
        "hosted",
        "paid",
        "no-card",
        "free-tier",
        "mcp",
        "remote-mcp",
        "llms-txt",
        "python",
        "india"
      ],
      "lastRelease": "2026-07-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 42.4,
        "grade": "E",
        "agentReady": false,
        "rank": 1265,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 23,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 23,
          "payments": 40,
          "reliability": 40,
          "schema": 66,
          "security": 11,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "SERPHouse returns parsed Google, Bing and Yahoo results at published prices from $0.62 per 1,000 requests, with a 23-tool MCP server and a 4,000-credit trial without a card. The hosted MCP puts the key in its URL, there is no status page, changelog or security contact, and the terms keep search history indefinitely.",
        "bestFor": "Low-cost Google, Bing and Yahoo result parsing for SEO and rank tracking, with many Google verticals.",
        "strengths": [
          "Published prices per 1,000 requests, $0.75 on Basic and $0.62 on Regular, with failed requests not charged",
          "Google web, news, images, shopping, jobs, videos, forums, local and autocomplete, plus Bing and Yahoo, in one API",
          "Hosted and stdio MCP server with 23 tools, typed Zod inputs and routing advice between tools, MIT licensed",
          "llms.txt and Markdown copies of the docs pages, with a status code table and per-engine examples",
          "Free trial of 4,000 credits for 7 days with no card"
        ],
        "weaknesses": [
          "The hosted MCP server takes the API key only in its URL path, and the REST API also accepts `api_token` in the query string",
          "No status page, changelog, security.txt, disclosure policy or certification found",
          "Terms keep search history indefinitely and advise users in the European Economic Area not to use the service",
          "The pricing page states a 99.99% uptime SLA and the docs 99.95%, with no SLA terms or credits found",
          "The home page sends readers to a playground 'on the Oxylabs dashboard', with no relationship to Oxylabs found"
        ],
        "agentNotes": [
          "Send the key as `Authorization: Bearer`, not as `api_token` in the URL",
          "Treat a 200 with `\"status\": \"error\"` and 'Please try again' as a failure and retry later",
          "Pass `loc` or `loc_id` for Google and Bing tools other than `serphouse_search`; find IDs with `serphouse_location_search`",
          "Use `serphouse_search` for plain lookups and `serphouse_serp_google_advanced` only when ranks beyond the top 10 are needed, at ten times the price",
          "Keep under 60 requests a minute on self-serve plans"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 42.4
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 23,
          "payments": 40,
          "reliability": 40,
          "schema": 66,
          "security": 11,
          "transparency": 39
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx serphouse-mcp",
        "http": "curl -X POST https://api.serphouse.com/serp/live \\\n  -H 'accept: application/json' \\\n  -H 'authorization: Bearer API_TOKEN' \\\n  -H 'content-type: application/json' \\\n  -d '{\"data\": {\"domain\": \"google.com\", \"lang\": \"en\", \"q\": \"Coffee\", \"loc\": \"Texas,United States\", \"device\": \"desktop\", \"serp_type\": \"web\"}}'",
        "config": {
          "mcpServers": {
            "serphouse": {
              "url": "https://mcp.serphouse.com/YOUR_SERPHouse_API_KEY/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/search.serp",
        "tool": "https://letme.dev/serphouse"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "SERP request, Basic",
          "unit": "1k-requests",
          "usd": 0.75,
          "note": "$29.99 a month for 400,000 credits"
        },
        {
          "item": "SERP request, Regular",
          "unit": "1k-requests",
          "usd": 0.62,
          "note": "$49.99 a month for 800,000 credits"
        },
        {
          "item": "Autocomplete request, Basic",
          "unit": "1k-requests",
          "usd": 0.37,
          "note": "$0.31 on Regular"
        },
        {
          "item": "Top 100 Google SERP, Basic",
          "unit": "1k-requests",
          "usd": 7.5,
          "note": "$6.25 on Regular"
        },
        {
          "item": "Basic plan",
          "unit": "month",
          "usd": 29.99,
          "note": "400,000 credits, no rollover"
        },
        {
          "item": "Regular plan",
          "unit": "month",
          "usd": 49.99,
          "note": "800,000 credits, no rollover"
        }
      ],
      "provenance": {
        "legalEntity": "Patoliya Infotech LLP",
        "domain": "serphouse.com",
        "domainRegistered": "2019-08-20",
        "endpointOnVendorDomain": true,
        "terms": "https://www.serphouse.com/terms-of-service",
        "privacy": "https://www.serphouse.com/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms name Patoliya Infotech LLP, a limited liability partnership incorporated in India, under Indian law with courts in Surat. The contact page gives an address in Utran, Surat, Gujarat.",
          "No effective or updated date was found on the terms or the privacy policy.",
          "www.serphouse.com/robots.txt allows all agents except /data/.",
          "The trial terms forbid 'scraping at scale or performing automated bulk data extraction' with trial credits. No clause on automated access to the website was found.",
          "/.well-known/security.txt answers 404. No status page is linked, and status.serphouse.com did not answer.",
          "RDAP gives serphouse.com a registration date of 20 August 2019; the about page says SERPHouse started in September 2019."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/serphouse.json",
      "live": {
        "slug": "serphouse",
        "probe": {
          "target": "https://mcp.serphouse.com/YOUR_API_KEY/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:53.888566191Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 246,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 234,
          "p95ms24h": 348,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "SERPHouse/serphouse-mcp",
            "version": "1.1.0",
            "released": "2026-07-06",
            "seenAt": "2026-11-07T00:04:55.526969474Z"
          },
          {
            "registry": "npm",
            "name": "serphouse-mcp",
            "version": "1.1.0",
            "seenAt": "2026-11-07T00:04:54.741719814Z"
          }
        ],
        "githubStars": 10,
        "npmWeekly": 11,
        "securityTxt": {
          "url": "https://serphouse.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:39.38860304Z"
        },
        "llmsTxt": {
          "url": "https://www.serphouse.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:54.600324581Z"
        },
        "pages": [
          {
            "url": "https://www.serphouse.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:21.531839335Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "85f9c0a9e291"
          },
          {
            "url": "https://www.serphouse.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:24.703890347Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "171892dff54e"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.serphouse.com/YOUR_SERPHouse_API_KEY/mcp",
          "checkedAt": "2026-11-07T01:47:41.660458875Z",
          "status": "ok",
          "protocol": "2025-11-25",
          "tools": [
            {
              "name": "serphouse_domain_list",
              "title": "Serphouse Domain List",
              "description": "List supported search domains. Call this before Yahoo searches — yahoo.com is not valid; use regional domains like uk.yahoo.com from this list.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {},
                "type": "object"
              }
            },
            {
              "name": "serphouse_language_list",
              "title": "Serphouse Language List",
              "description": "Get supported language codes for google, bing, or yahoo.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "type": {
                    "description": "Search engine language catalog to fetch.",
                    "enum": [
                      "google",
                      "bing",
                      "yahoo"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_location_search",
              "title": "Serphouse Location Search",
              "description": "Search Serphouse location ids and location strings for Google or Bing targeting.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "q": {
                    "description": "Location search term, for example texas or london.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "type": {
                    "default": "google",
                    "enum": [
                      "google",
                      "bing"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_account_info",
              "title": "Serphouse Account Info",
              "description": "Get Serphouse account plan and credit usage.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {},
                "type": "object"
              }
            },
            {
              "name": "serphouse_search",
              "title": "Serphouse Search",
              "description": "Default web search for agents — fast lightweight Google organic results via POST /web-search-lite. Only q is required; gl defaults to US. Use serphouse_google_web only when you need device, gfilter, or num_result. Use serphouse_serp_google_advanced for SEO rankings beyond top 10.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Optional date filter: YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y. Omit for general searches — lite results may be empty when this is set.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gl": {
                    "description": "Two-letter ISO country code, e.g. US, IN, GB. Used when loc is omitted.",
                    "minLength": 1,
                    "pattern": "^[A-Za-z]{2}$",
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Location name, e.g. Austin,Texas,United States. Provide loc or gl, not both.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_web_lite",
              "title": "Serphouse Google Web Search (Lite)",
              "description": "Alias of serphouse_search — fast lightweight Google organic results via POST /web-search-lite. Prefer serphouse_search for general agent queries.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Optional date filter: YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y. Omit for general searches — lite results may be empty when this is set.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gl": {
                    "description": "Two-letter ISO country code, e.g. US, IN, GB. Used when loc is omitted.",
                    "minLength": 1,
                    "pattern": "^[A-Za-z]{2}$",
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Location name, e.g. Austin,Texas,United States. Provide loc or gl, not both.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_web",
              "title": "Serphouse Google Web Search (Full)",
              "description": "Full Google web search via POST /google-web with device, gfilter, and num_result. Requires loc or loc_id. For general queries use serphouse_search instead.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gfilter": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "num_result": {
                    "maximum": 10,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_image",
              "title": "Serphouse Google Image Search",
              "description": "Run a realtime Google image search via POST /google-image.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_news",
              "title": "Serphouse Google News Search",
              "description": "Run a realtime Google news search via POST /google-news.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_shop",
              "title": "Serphouse Google Shop Search",
              "description": "Run a realtime Google shopping search via POST /google-shop.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_bing_web",
              "title": "Serphouse Bing Web Search",
              "description": "Run a realtime Bing web search via POST /bing-web.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "lang": {
                    "default": "en-US",
                    "description": "Language code, for example en-US or fr-FR.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_bing_image",
              "title": "Serphouse Bing Image Search",
              "description": "Run a realtime Bing image search via POST /bing-image.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "lang": {
                    "default": "en-US",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_bing_news",
              "title": "Serphouse Bing News Search",
              "description": "Run a realtime Bing news search via POST /bing-news.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "lang": {
                    "default": "en-US",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_yahoo_web",
              "title": "Serphouse Yahoo Web Search",
              "description": "Run a realtime Yahoo web search via POST /yahoo-web.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "uk.yahoo.com",
                    "description": "Regional Yahoo domain from serphouse_domain_list, for example uk.yahoo.com or fr.yahoo.com. Do not use yahoo.com.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "lang_en",
                    "description": "Yahoo language code, for example lang_en or lang_fr.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_yahoo_image",
              "title": "Serphouse Yahoo Image Search",
              "description": "Run a realtime Yahoo image search via POST /yahoo-image.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "domain": {
                    "default": "uk.yahoo.com",
                    "description": "Regional Yahoo domain from serphouse_domain_list, for example uk.yahoo.com or fr.yahoo.com. Do not use yahoo.com.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "lang_en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_yahoo_news",
              "title": "Serphouse Yahoo News Search",
              "description": "Run a realtime Yahoo news search via POST /yahoo-news.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "uk.yahoo.com",
                    "description": "Regional Yahoo domain from serphouse_domain_list, for example uk.yahoo.com or fr.yahoo.com. Do not use yahoo.com.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "lang_en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_serp_google_advanced",
              "title": "Serphouse Google Advanced SERP",
              "description": "SEO ranking checks: fetch up to 100 Google results in one request. Use max_pages 1–10 (~10 results per page). For general web search use serphouse_search; use this when rank position beyond the top 10 is needed.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gfilter": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "max_pages": {
                    "default": 10,
                    "maximum": 10,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "serp_type": {
                    "default": "web",
                    "enum": [
                      "web",
                      "news",
                      "image",
                      "shop"
                    ],
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_jobs",
              "title": "Serphouse Google Jobs",
              "description": "Run a realtime Google Jobs search.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "q": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_autocomplete",
              "title": "Serphouse Google Autocomplete",
              "description": "Get realtime localized Google autocomplete suggestions.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "client": {
                    "default": "chrome",
                    "enum": [
                      "chrome",
                      "chrome-omni",
                      "home_page",
                      "safari",
                      "firefox",
                      "youtube"
                    ],
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Location name used to localize suggestions.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "q": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q",
                  "loc"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_videos",
              "title": "Serphouse Google Videos",
              "description": "Run a realtime Google Videos search with optional video filters.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "video_captions": {
                    "const": "captioned",
                    "type": "string"
                  },
                  "video_duration": {
                    "enum": [
                      "short",
                      "medium",
                      "long"
                    ],
                    "type": "string"
                  },
                  "video_quality": {
                    "const": "high",
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_short_videos",
              "title": "Serphouse Google Short Videos",
              "description": "Run a realtime Google Short Videos search.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "video_captions": {
                    "const": "captioned",
                    "type": "string"
                  },
                  "video_quality": {
                    "const": "high",
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_forums",
              "title": "Serphouse Google Forums",
              "description": "Run a realtime Google Forums search for discussions and community results.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_local",
              "title": "Serphouse Google Local",
              "description": "Run a realtime Google Local search for local business results.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            }
          ],
          "schemaTokens": 6824,
          "changedAt": "2026-11-07T01:47:41.660458875Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 6824,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 43
            },
            "findings": [
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_bing_image",
                "message": "2 parameters without a description: lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_bing_news",
                "message": "3 parameters without a description: device, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_bing_web",
                "message": "3 parameters without a description: date_range, device, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_autocomplete",
                "message": "3 parameters without a description: client, lang, q",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_forums",
                "message": "5 parameters without a description: device, domain, lang, page, verbatim",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_image",
                "message": "4 parameters without a description: date_range, domain, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_jobs",
                "message": "4 parameters without a description: date_range, domain, lang, q",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_local",
                "message": "4 parameters without a description: domain, lang, page, q",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_news",
                "message": "5 parameters without a description: date_range, device, domain, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_shop",
                "message": "3 parameters without a description: domain, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_short_videos",
                "message": "6 parameters without a description: device, domain, lang, page, video_captions, video_quality",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_videos",
                "message": "7 parameters without a description: device, domain, lang, page, video_captions, video_duration and 1 more",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_web",
                "message": "7 parameters without a description: device, domain, gfilter, lang, num_result, page and 1 more",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_web_lite",
                "message": "4 parameters without a description: domain, lang, page, verbatim",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_location_search",
                "message": "1 parameter without a description: type",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_search",
                "message": "4 parameters without a description: domain, lang, page, verbatim",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_serp_google_advanced",
                "message": "8 parameters without a description: device, domain, gfilter, lang, max_pages, page and 2 more",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_yahoo_image",
                "message": "2 parameters without a description: lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_yahoo_news",
                "message": "3 parameters without a description: device, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_yahoo_web",
                "message": "2 parameters without a description: device, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_account_info",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"info\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_bing_image",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_bing_news",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_bing_web",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_domain_list",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_autocomplete",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_forums",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_image",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_jobs",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_local",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_news",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_shop",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_short_videos",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_videos",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_web",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_web_lite",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_language_list",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_location_search",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_search",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_serp_google_advanced",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_yahoo_image",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_yahoo_news",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_yahoo_web",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "23 of 23 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-11-07T18:20:53.888566191Z"
      }
    },
    "answer": "SerpKite scores 67.6 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "serpkite",
      "name": "SerpKite",
      "vendor": "SerpKite (Anastasia Klimova, trading as SerpKite)",
      "vendorUrl": "https://serpkite.com",
      "kind": "http-api",
      "category": "search",
      "summary": "Google SERP API for AI agents from SerpKite, a sole trader in Ontario. It returns Google results, other verticals and public AI assistant answers as JSON or Markdown, fetches pages, and runs a remote MCP server with 23 tools.",
      "url": "https://www.anchorterminal.com/tools/serpkite",
      "markdownUrl": "https://www.anchorterminal.com/tools/serpkite.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/serpkite.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/serpkite.json",
      "dns": "serpkite.grade.anchorterminal.com",
      "repo": "https://github.com/SerpKite/serpkite-mcp",
      "license": "Proprietary service under SerpKite's terms of service. The SDKs (TypeScript, Python, Go, LangChain, Vercel AI SDK) and the MCP connection repository on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.serpkite.com/v1/search",
      "packages": [
        {
          "registry": "npm",
          "name": "serpkite"
        },
        {
          "registry": "pypi",
          "name": "serpkite"
        },
        {
          "registry": "go",
          "name": "github.com/serpkite/serpkite-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key (`skt_live_…`) as `Authorization: Bearer` on every REST call and on the remote MCP server; since 9 October 2026 the bare key without `Bearer` is accepted too. GET requests may also send it as the `?api_key=` query parameter. An account can hold many keys, each revocable and rotatable with an optional monthly credit limit, and keys are stored as SHA-256 hashes. No scopes. Since 9 October the MCP server also supports OAuth (authorisation code with PKCE, dynamic client registration, rotating refresh tokens); an approved connection runs as a named API key and its token works on /v1/mcp only (https://serpkite.com/docs/mcp, https://serpkite.com/docs/changelog).",
      "pricing": "freemium",
      "pricingNotes": "Prepaid credit packs that never expire. Starter $10 for 10,000 credits ($1.00 per 1,000), Growth $50 for 62,500 ($0.80), Pro $300 for 500,000 ($0.60), volume quotes from $0.18 per 1,000 at 25 million a month. One credit is one page of 10 results; `num=100` is 7 credits, autocomplete 0.5, batch and cache hits half price, `include_content` 1 per fetched page, AI assistant answers 2 to 4 credits. Free credits with no card (1,000 on email verification, 1,500 more after linking GitHub or Google) and 1,000 a month, with a free daily limit of 500 credits; since 28 October free credits are paused for an account sharing a device or network with another. Batch depth requests move to per-page billing on 23 November 2026. Failed, empty and blocked requests are refunded. Paddle is the merchant of record (https://serpkite.com/pricing, checked 2026-11-02).",
      "priceSummary": "$1 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the OpenAPI spec or the pricing page. Packs are bought through Paddle checkout (checked 2026-10-05).",
        "endpoints": []
      },
      "toolCount": 23,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 809,
        "pypiWeekly": 376,
        "asOf": "2026-10-05"
      },
      "docsUrl": "https://serpkite.com/docs",
      "llmsTxt": "https://serpkite.com/llms.txt",
      "openapi": "https://serpkite.com/openapi/serp-api.yaml",
      "registryName": "io.github.SerpKite/serpkite",
      "capabilities": [
        "web.search",
        "search.serp",
        "search.news",
        "search.images",
        "web.fetch",
        "web.extract",
        "web.crawl"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "free-tier",
        "closed-source",
        "mcp",
        "openapi",
        "llms-txt",
        "typescript",
        "python",
        "go",
        "status-page"
      ],
      "lastRelease": "2026-11-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.6,
        "grade": "B",
        "agentReady": false,
        "rank": 313,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 97,
          "maintenance": 80,
          "payments": 40,
          "reliability": 75,
          "schema": 90,
          "security": 37,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "2 October to 1 November 2026. The `ai_overview` parameter and field, the `/v1/ai-mode` endpoint and its MCP tool, and the `/v1/lens` endpoint were removed the day each removal was announced (2 and 3 October), three to four days after the v1.0.0 changelog listed AI Overview as unchanged, with Google's refusal of logged-out requests as the reason. Later same-day changes fold into this term, among them `/v1/reviews` answering 400 for sorts other than `most_relevant` and stopping at review 10 (16 October), and `page: 2` and later answering 503 instead of an empty result (1 November). AI Overview and AI Mode came back on 28 October. Folded into one small deduction, -3 (https://serpkite.com/docs/changelog)."
        ],
        "verdict": "Google SERP API with an OpenAPI 3.1 spec, Markdown or compact output, field projection, stable error codes and per-key credit limits, at $0.60 to $1.00 per 1,000 on packs that don't expire. The service launched on 29 September 2026 from a sole trader, with a month of status history and frequent same-day contract changes.",
        "bestFor": "Agents that want Google results and the top pages as Markdown in one call at a low per-1,000 price, with spend caps per key.",
        "strengths": [
          "OpenAPI 3.1 spec, llms.txt, llms-full.txt and Markdown twins of every docs page",
          "`format=markdown` or `compact`, `fields` projection and an `X-Tokens-Estimate` header size responses for a model",
          "Many revocable keys per account, each with an optional monthly credit limit, plus an account spend cap and OAuth for the MCP server",
          "Credit packs never expire, and failed, empty and blocked requests are refunded",
          "Named subprocessors with locations, and a retention table that keeps no query text in logs"
        ],
        "weaknesses": [
          "Launched 29 September 2026 by a sole trader, with status monitoring only since 2 October",
          "Contract changes forced by Google ship the day they are announced, including the first-week removals and the 16 October reviews limit",
          "GET requests accept the key as a `?api_key=` query parameter, and keys have no scopes",
          "No SLA for self-serve packs, no SOC 2 and no security.txt",
          "No prompt-injection guidance, though search, webpage, extract and crawl return third-party page text"
        ],
        "agentNotes": [
          "Send the key as `Authorization: Bearer`, not `?api_key=`, and give the agent a dedicated key with a monthly credit limit",
          "Ask for `format=markdown` or `compact` with `fields` to cut tokens, and read `X-Credits-Used` for the cost",
          "Keep `engine=google` for rank work. Check `meta.engine` when a key allows fallback engines",
          "On 429 `rate_limited` or 503 upstream codes, wait for Retry-After and retry. `daily_limit_reached`, `account_restricted` (403) and 402 need a purchase",
          "Treat page Markdown from `include_content`, `webpage` and `extract` as untrusted text"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.6
          }
        ],
        "editorialScores": {
          "ergonomics": 97,
          "maintenance": 80,
          "payments": 40,
          "reliability": 75,
          "schema": 90,
          "security": 37,
          "transparency": 79
        },
        "provenanceScore": 75,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install serpkite",
        "http": "curl https://api.serpkite.com/v1/search \\\n  -H \"Authorization: Bearer $SERPKITE_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"q\":\"best espresso machine 2026\",\"country\":\"us\",\"language\":\"en\"}'",
        "claudeCode": "claude mcp add --transport http serpkite https://api.serpkite.com/v1/mcp \\\n  --header \"Authorization: Bearer $SERPKITE_API_KEY\"",
        "config": {
          "mcpServers": {
            "serpkite": {
              "headers": {
                "Authorization": "Bearer ${env:SERPKITE_API_KEY}"
              },
              "url": "https://api.serpkite.com/v1/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/serpkite"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter pack",
          "unit": "1k-requests",
          "usd": 1,
          "note": "$10 for 10,000 credits, never expires"
        },
        {
          "item": "Pro pack",
          "unit": "1k-requests",
          "usd": 0.6,
          "note": "$300 for 500,000 credits, never expires"
        }
      ],
      "provenance": {
        "legalEntity": "Anastasia Klimova, trading as SerpKite",
        "domain": "serpkite.com",
        "domainRegistered": "2026-09-29",
        "endpointOnVendorDomain": true,
        "terms": "https://serpkite.com/legal/terms",
        "privacy": "https://serpkite.com/legal/privacy",
        "statusPage": "https://status.serpkite.com",
        "changelog": "https://serpkite.com/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-10-05",
        "notes": [
          "The terms and privacy policy, both effective 3 October 2026, name Anastasia Klimova, trading as SerpKite, 1732 Oberon Crescent, Mississauga, Ontario, Canada, under the laws of Ontario.",
          "RDAP for serpkite.com gives a registration date of 2026-09-29 and Cloudflare, Inc. as registrar.",
          "serpkite.com/.well-known/security.txt returns the site's 404 page. The security page asks for reports by email with acknowledgement in 2 business days and says there's no paid bug bounty.",
          "The MCP registry entry uses the GitHub namespace io.github.SerpKite, not a domain-verified one. The repository's two commits are by the GitHub user nolikzero, and the SDK repositories are committed by serpkite-bot \u003csupport@serpkite.com\u003e.",
          "The subprocessor page lists Polar as merchant of record for earlier orders, which suggests sales before the domain's registration date. We couldn't establish where."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/serpkite.json",
      "live": {
        "slug": "serpkite",
        "probe": {
          "target": "https://api.serpkite.com/v1/search",
          "method": "get",
          "lastAt": "2026-11-07T18:20:53.999602293Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 151,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 99.89,
          "p50ms24h": 121,
          "p95ms24h": 224,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 253
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 241
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ],
          "outages": [
            {
              "start": "2026-11-03T10:35:09.387488166Z",
              "end": "2026-11-03T11:14:41.456082867Z",
              "note": "HTTP 530 server error"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.serpkite.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:44.554890116Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.SerpKite/serpkite",
            "version": "1.2.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "serpkite",
            "version": "0.10.0",
            "seenAt": "2026-11-07T00:04:57.782847958Z"
          },
          {
            "registry": "pypi",
            "name": "serpkite",
            "version": "0.10.0",
            "released": "2026-11-05",
            "seenAt": "2026-11-07T00:05:00.89457909Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 357,
        "pypiWeekly": 256,
        "securityTxt": {
          "url": "https://serpkite.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:24.466205734Z"
        },
        "llmsTxt": {
          "url": "https://serpkite.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:54.27218306Z"
        },
        "domain": {
          "domain": "serpkite.com",
          "registered": "2026-09-29",
          "source": "https://rdap.verisign.com/com/v1/domain/serpkite.com",
          "checkedAt": "2026-11-01T14:17:34.283329903Z"
        },
        "pages": [
          {
            "url": "https://serpkite.com/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:38.565738874Z",
            "changedAt": "2026-11-07T14:19:38.565738874Z",
            "fingerprint": "d68c18d17704"
          },
          {
            "url": "https://serpkite.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:44.67004402Z",
            "changedAt": "2026-11-07T14:19:44.67004402Z",
            "fingerprint": "0c82ab61c297"
          },
          {
            "url": "https://serpkite.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:40.795779718Z",
            "changedAt": "2026-11-05T13:04:06.216389859Z",
            "fingerprint": "0eaf0bbbd031"
          },
          {
            "url": "https://serpkite.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:42.771170665Z",
            "changedAt": "2026-11-05T13:04:07.812029176Z",
            "fingerprint": "693478e804e1"
          }
        ],
        "mcpTools": {
          "url": "https://api.serpkite.com/v1/mcp",
          "checkedAt": "2026-11-07T01:47:48.000876733Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:47:48.000876733Z"
        },
        "github": {
          "repo": "serpkite/serpkite-mcp",
          "checkedAt": "2026-11-02T09:24:51.977048937Z",
          "stars": 0,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-28T22:42:28Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 5
        },
        "updatedAt": "2026-11-07T18:20:53.999602293Z"
      }
    },
    "edges": [
      {
        "by": 57,
        "category": "maintenance",
        "leads": "serpkite",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read for a closed service, with its repositories read as code. No changelog or dated API change was found. The newest release is MCP server 1.1.0 on 6 July 2026, 123 days before 6 November, and the last commit in its repository was on 22 July (10). No release or dated change in the 90 days from 8 August; the about page's 2026 entry (Forums, Place Details and Scraper APIs) is undated (0). No changelog; support by email. Issues weren't read, since the GitHub API refused us for its rate limit (5 of 25). Not in the official MCP registry, though the repository's server.json names io.github.SERPHouse/serphouse-mcp. Node.js SDK last changed 24 June 2026, PHP SDK 10 May 2024, and no Python SDK repository was found under the SERPHouse organisation (5 of 15). The MCP repository has an npm publish workflow and no tests (3 of 10). 10 + 0 + 5 + 5 + 3 = 23.",
          "b": "Closed service read with the API lines. The newest API changelog entries are dated 1 November 2026 (API 1.12.7) (30). 31 dated changelog entries from 9 October to 1 November, among them API 1.6.0 to 1.12.7 and SDKs 0.8.0 and 0.8.1 (20). Public changelog, support@serpkite.com and a Discord link. The SDK repositories are mirrors of a private monorepo and we couldn't see issues or replies (8). In the official MCP registry under the GitHub-verified namespace io.github.SerpKite, per the 5 October check, with current official SDKs in three languages (15). The SDK repositories run typecheck, tests and build in CI, but we couldn't see run results (7). 30+20+8+15+7 = 80."
        },
        "scores": {
          "a": 23,
          "b": 80
        }
      },
      {
        "by": 35,
        "category": "reliability",
        "leads": "serpkite",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines. No status page is linked from the site or docs, and status.serphouse.com did not answer on 6 November 2026 (0). No readable incident history (5). Rate limits published, 60 requests a minute and 60 concurrent on every self-serve plan (15). 429 is documented as 'slow down', and a 200 can carry `\"status\": \"error\"` with 'Please try again', with no Retry-After or backoff guidance. Failed requests aren't charged (5 of 15). The pricing page lists a 99.99% uptime SLA on Basic and Regular and the docs a 99.95% one, but no SLA terms or credits were found in the terms (5 of 10). Generally available (10). 0 + 5 + 15 + 5 + 5 + 10 = 40.",
          "b": "Hosted API, read with the hosted lines. Better Stack status page at status.serpkite.com with four monitors (api.serpkite.com/healthz, dashboard API, dashboard, website) and daily bars (20). Monitoring began on 2 October 2026, so the record covers 31 days of the 90 from 4 August. The page's own figures give 99.978 per cent uptime over 30 days for the API health monitor and 99.971 for the dashboard API, the 5 October check saw 29 to 41 minutes of downtime on each monitor on 2 October and 19 seconds on 3 October, and the feed has never carried an incident post. No outage reached an hour. A readable record shorter than 90 days with nothing major scores 15, as this run settled for short records. Rate limits published per key, 5 to 100 requests a second by pack (15). 429 `rate_limited` with Retry-After, backoff guidance for 429 and 503, and `Idempotency-Key` on batch creation (15). The terms say self-serve plans have no uptime guarantee and an enterprise SLA sits in a separate agreement we couldn't read (0). v1 API with no beta or preview label (10). 20+15+15+15+0+10 = 75."
        },
        "scores": {
          "a": 40,
          "b": 75
        }
      },
      {
        "by": 33,
        "category": "ergonomics",
        "leads": "serpkite",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "23 MCP tools with no toolsets or filtering (15 of 25). `num_result`, `max_pages`, paging, device, location, language, date and video filters (16 of 20). Status codes are tabulated, but a 200 can also mean an error and the body carries only 'Please try again' (10 of 20). Searches only read and failed requests aren't charged, but the MCP tools carry no readOnlyHint or other annotations (10 of 20). `serphouse_search` needs only `q` and defaults to the US; most other tools need `loc` or `loc_id`. Official Node.js, PHP and Python SDKs are documented (13 of 15). 15 + 16 + 10 + 10 + 13 = 64.",
          "b": "`format=markdown` or `compact`, `fields` projection, `num` and an `X-Tokens-Estimate` header size REST responses. The MCP server now has 23 tools with no toolsets or read-only subset we could find (22). `page`, `num` up to 100, country, language, location, time, domain include, exclude and boost, date bounds, `highlights` and `max_tokens` on extract (20). Stable error codes with a retry column, and errors are never billed (20). Searches are read-only, failed and empty calls are refunded, and batch creation takes `Idempotency-Key`. Since 9 October 2026 the changelog says every MCP tool carries `readOnlyHint`, `destructiveHint`, `idempotentHint` and `openWorldHint`, with all read-only except `crawl`, and on 2 November the MCP page says every tool is read-only except `crawl` and `research`, which start paid tasks, and none is destructive (20). Only `q` or `url` is required, and official SDKs exist for TypeScript, Python and Go with retries built in (15). 22+20+20+20+15 = 97."
        },
        "scores": {
          "a": 64,
          "b": 97
        }
      },
      {
        "by": 27,
        "category": "transparency",
        "leads": "serpkite",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms naming Patoliya Infotech LLP in India, and the MCP server is MIT (18 of 30). The terms give retention periods (JSON results up to 6 months, HTML up to 1 month, search history indefinitely) and say personal data sits on DigitalOcean in India, and they advise EEA users not to use the service. The privacy policy is generic and neither document carries a date (15 of 30). No deprecation policy, and the terms allow products to be discontinued without notice (0 of 20). DigitalOcean in India named for account data; no sub-processor list (6 of 20). 18 + 15 + 0 + 6 = 39.",
          "b": "Closed API under terms that name the operator, an Ontario address and governing law, with the SDKs and the MCP connection repository MIT (18). The privacy policy, DPA page, retention doc and security page agree that query text of successful requests isn't logged, usage metadata lasts 31 days and batch results 24 hours. On 26 October failed and empty requests began keeping their query for 24 hours, and the changelog says the privacy policy, terms and DPA were updated the same day (27). The terms promise 30 days' notice before removing an endpoint, with exceptions for changes forced by a third party. AI Overview, AI Mode and Lens were removed in the first week without notice under that exception, and the reviews limit of 16 October came the same way, while a batch price change for 23 November 2026 was announced ahead (14). Subprocessors named with purpose and location, including Contabo in Germany, Cloudflare, Paddle, Resend, PostHog EU and Better Stack, with 30 days' notice of changes (20)."
        },
        "scores": {
          "a": 50,
          "b": 77
        }
      },
      {
        "by": 26,
        "category": "security",
        "leads": "serpkite",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One key per account, one account per user, no scopes or rotation found (10). The REST API documents `api_token` in the query string and the hosted MCP server takes the key only in its URL path, less 10 (0 of 30). Searches only read, with no read-only or restricted key (8 of 20). Results are third-party snippets and AI Overview text, with no prompt-injection guidance (0). An account tool shows plan and credit usage; no per-call log was found (3 of 15). No security.txt (404), disclosure policy, bug bounty or certification found (0 of 20). 0 + 8 + 0 + 3 + 0 = 11.",
          "b": "Many keys per account, each revocable and rotatable with an optional monthly credit limit, stored as SHA-256 hashes, with no scopes. Since 9 October the MCP server also takes OAuth (authorisation code with PKCE, dynamic client registration, rotating refresh tokens, one `mcp` scope), each connection running as a named, revocable API key, while REST still needs a key (20). The docs allow the key as `?api_key=` on GET requests (minus 10). Search is read-only, and per-key limits and an account spend cap bound cost, but there's no read-only key, and the MCP server exposes crawl alongside search with no confirmation step we could see (10). Results include third-party snippets and full page Markdown, and we found no prompt-injection guidance (0). The dashboard request log keeps per-call metadata (endpoint, status, credits, key) for 31 days with CSV export, and each key records who created it (12). security.txt returns 404. The security page has a disclosure policy with acknowledgement in 2 business days, no paid bug bounty and SOC 2 marked as not yet started (5)."
        },
        "scores": {
          "a": 11,
          "b": 37
        }
      },
      {
        "by": 24,
        "category": "schema",
        "leads": "serpkite",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI or similar contract for the REST API. The MCP server's tools carry typed Zod schemas, published in the source and a static server card (18 of 25). llms.txt at the site and the docs, and every docs page as Markdown (10). MCP tool descriptions say which tool to use for what, such as `serphouse_google_web` when device or `num_result` is needed, while the docs pages lead with marketing lines such as 'Unlock captivating Google video content' (12 of 20). Enums for device, SERP type, engine and video duration, defaults and 37 described parameters (11 of 15). A status code table and request examples per engine, with a generic error body (12 of 15). No changelog or API versioning; only the MCP server has tags (3 of 15). 18 + 10 + 12 + 11 + 12 + 3 = 66.",
          "b": "Public OpenAPI 3.1 spec (version 1.12.7 on 2 November 2026, 41 paths and 47 operations) at serpkite.com/openapi/serp-api.yaml (25). llms.txt, llms-full.txt and a Markdown twin of every docs page (10). Endpoint descriptions state purpose and when to use them, and the guides cover which tool to pick. The MCP tool definitions aren't public and `tools/list` needs a key, so we read the MCP docs table and the matching descriptions in the MIT AI SDK package, which state purpose and some when-to-use lines but not when not to (12). Typed parameters with 64 enums in the spec, documented ranges and strict validation that rejects unknown parameters with a 400 naming the replacement. We couldn't confirm the MCP JSON Schemas (13). curl, TypeScript, Python and Go examples on each page, and an errors page with 14 codes and what to do about each (15). Versioned `/v1` paths and a dated API changelog (15)."
        },
        "scores": {
          "a": 66,
          "b": 90
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Patoliya Infotech LLP",
        "b": "SerpKite (Anastasia Klimova, trading as SerpKite)",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.serphouse.com/YOUR_API_KEY/mcp",
        "b": "https://api.serpkite.com/v1/search",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.62 per 1,000 requests",
        "b": "not published",
        "name": "Price for search serp"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under SerpKite's terms of service. The SDKs (TypeScript, Python, Go, LangChain, Vercel AI SDK) and the MCP connection repository on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "23",
        "b": "23",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.SerpKite/serpkite",
        "name": "MCP registry"
      },
      {
        "a": "2026-07-06",
        "b": "2026-11-01",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-10-03",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-10-03",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "809 npm/wk, 376 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "SerpKite scores 67.6 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, SERPHouse or SerpKite?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do SERPHouse and SerpKite need an API key?"
      },
      {
        "answer": "Yes. SERPHouse has a hosted endpoint at https://mcp.serphouse.com/YOUR_API_KEY/mcp and SerpKite at https://api.serpkite.com/v1/search.",
        "question": "Can an agent call SERPHouse and SerpKite without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where SerpKite loses 3 points for them"
        ],
        "goodFor": "Low-cost Google, Bing and Yahoo result parsing for SEO and rank tracking, with many Google verticals.",
        "slug": "serphouse",
        "watchFor": "The hosted MCP server takes the API key only in its URL path, and the REST API also accepts `api_token` in the query string"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 40",
          "Schema \u0026 documentation, 90 against 66",
          "Agent ergonomics, 97 against 64",
          "Security \u0026 auth, 37 against 11",
          "Maintenance \u0026 community, 80 against 23",
          "Transparency \u0026 trust, 77 against 50"
        ],
        "also": null,
        "goodFor": "Agents that want Google results and the top pages as Markdown in one call at a low per-1,000 price, with spend caps per key.",
        "slug": "serpkite",
        "watchFor": "Launched 29 September 2026 by a sole trader, with status monitoring only since 2 October"
      }
    ],
    "history": {
      "serphouse": null,
      "serpkite": [
        {
          "causes": [
            "product",
            "time"
          ],
          "date": "2026-11-02",
          "delta": 2.8,
          "from": 64.8,
          "fromGrade": "B",
          "to": 67.6,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "search.serp",
      "name": "Search serp"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serphouse.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpkite.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-serpkite.json",
        "title": "Arcmira vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-serphouse.json",
        "title": "Grounding with Bing Search vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-serpkite.json",
        "title": "Grounding with Bing Search vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.json",
        "title": "Brave Search API + MCP vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpkite.json",
        "title": "Brave Search API + MCP vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse.json",
        "title": "Cloudflare Web Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpkite.json",
        "title": "Cloudflare Web Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serphouse.json",
        "title": "DeepSeek Search and Fetch API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpkite.json",
        "title": "DeepSeek Search and Fetch API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-serphouse.json",
        "title": "Exa API + MCP vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-serpkite.json",
        "title": "Exa API + MCP vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpkite.json",
        "title": "Firecrawl MCP vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-serpkite.json",
        "title": "Grep AI vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.json",
        "title": "Kagi Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.json",
        "title": "Kagi Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-serphouse.json",
        "title": "Linkup vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-serpkite.json",
        "title": "Linkup vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-serphouse.json",
        "title": "Mojeek Web Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-serpkite.json",
        "title": "Mojeek Web Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serphouse.json",
        "title": "Parallel Search and Task APIs vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serpkite.json",
        "title": "Parallel Search and Task APIs vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse.json",
        "title": "Perplexity Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpkite.json",
        "title": "Perplexity Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-serphouse.json",
        "title": "SearchAPI.io vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-serpkite.json",
        "title": "SearchAPI.io vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serphouse.json",
        "title": "SerpApi vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serpkite.json",
        "title": "SerpApi vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serper-vs-serphouse.json",
        "title": "Serper vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/serper-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serper-vs-serpkite.json",
        "title": "Serper vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/serper-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-specstream.json",
        "title": "SERPHouse vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-tavily-mcp.json",
        "title": "SERPHouse vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-tinyfish-search.json",
        "title": "SERPHouse vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-valyu.json",
        "title": "SERPHouse vs Valyu",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-you-com-api.json",
        "title": "SERPHouse vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-specstream.json",
        "title": "SerpKite vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp.json",
        "title": "SerpKite vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-tinyfish-search.json",
        "title": "SerpKite vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-valyu.json",
        "title": "SerpKite vs Valyu",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-you-com-api.json",
        "title": "SerpKite vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-serphouse.json",
        "title": "Fetch (MCP reference server) vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-serpkite.json",
        "title": "Fetch (MCP reference server) vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serphouse.json",
        "title": "NewsCatcher vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serpkite.json",
        "title": "NewsCatcher vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serpkite"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 35,
        "edge": "serpkite",
        "key": "reliability",
        "name": "Reliability",
        "serphouse": 40,
        "serpkite": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "edge": "serpkite",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "serphouse": 66,
        "serpkite": 90,
        "weight": 13
      },
      {
        "by": 33,
        "edge": "serpkite",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "serphouse": 64,
        "serpkite": 97,
        "weight": 13
      },
      {
        "by": 26,
        "edge": "serpkite",
        "key": "security",
        "name": "Security \u0026 auth",
        "serphouse": 11,
        "serpkite": 37,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "serphouse": 40,
        "serpkite": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 57,
        "edge": "serpkite",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "serphouse": 23,
        "serpkite": 80,
        "weight": 7
      },
      {
        "by": 27,
        "edge": "serpkite",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "serphouse": 50,
        "serpkite": 77,
        "weight": 7
      }
    ],
    "summary": "SerpKite scores 67.6 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. Both do search serp.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "serphouse": "SERPHouse returns parsed Google, Bing and Yahoo results at published prices from $0.62 per 1,000 requests, with a 23-tool MCP server and a 4,000-credit trial without a card. The hosted MCP puts the key in its URL, there is no status page, changelog or security contact, and the terms keep search history indefinitely.",
      "serpkite": "Google SERP API with an OpenAPI 3.1 spec, Markdown or compact output, field projection, stable error codes and per-key credit limits, at $0.60 to $1.00 per 1,000 on packs that don't expire. The service launched on 29 September 2026 from a sole trader, with a month of status history and frequent same-day contract changes."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite",
    "json": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite.min.md"
  },
  "markdown": "SerpKite scores 67.6 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. Both do search serp.\n\n- SERPHouse: grade E, 42.4/100, rank #1265 of 1486. Markdown https://www.anchorterminal.com/tools/serphouse.md · JSON https://www.anchorterminal.com/api/v1/tools/serphouse.json\n- SerpKite: grade B, 67.6/100, rank #313 of 1486. Markdown https://www.anchorterminal.com/tools/serpkite.md · JSON https://www.anchorterminal.com/api/v1/tools/serpkite.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 308 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\n\n### SERPHouse (E)\n\nGood for: Low-cost Google, Bing and Yahoo result parsing for SEO and rank tracking, with many Google verticals.\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where SerpKite loses 3 points for them\n\nWatch for: The hosted MCP server takes the API key only in its URL path, and the REST API also accepts `api_token` in the query string\n\n### SerpKite (B)\n\nGood for: Agents that want Google results and the top pages as Markdown in one call at a low per-1,000 price, with spend caps per key.\n\nAhead on:\n- Reliability, 75 against 40\n- Schema \u0026 documentation, 90 against 66\n- Agent ergonomics, 97 against 64\n- Security \u0026 auth, 37 against 11\n- Maintenance \u0026 community, 80 against 23\n- Transparency \u0026 trust, 77 against 50\n\nWatch for: Launched 29 September 2026 by a sole trader, with status monitoring only since 2 October\n\n\n## Why the edge\n\n### Maintenance \u0026 community: SerpKite +57\n\n- SERPHouse (23): Read for a closed service, with its repositories read as code. No changelog or dated API change was found. The newest release is MCP server 1.1.0 on 6 July 2026, 123 days before 6 November, and the last commit in its repository was on 22 July (10). No release or dated change in the 90 days from 8 August; the about page's 2026 entry (Forums, Place Details and Scraper APIs) is undated (0). No changelog; support by email. Issues weren't read, since the GitHub API refused us for its rate limit (5 of 25). Not in the official MCP registry, though the repository's server.json names io.github.SERPHouse/serphouse-mcp. Node.js SDK last changed 24 June 2026, PHP SDK 10 May 2024, and no Python SDK repository was found under the SERPHouse organisation (5 of 15). The MCP repository has an npm publish workflow and no tests (3 of 10). 10 + 0 + 5 + 5 + 3 = 23.\n- SerpKite (80): Closed service read with the API lines. The newest API changelog entries are dated 1 November 2026 (API 1.12.7) (30). 31 dated changelog entries from 9 October to 1 November, among them API 1.6.0 to 1.12.7 and SDKs 0.8.0 and 0.8.1 (20). Public changelog, support@serpkite.com and a Discord link. The SDK repositories are mirrors of a private monorepo and we couldn't see issues or replies (8). In the official MCP registry under the GitHub-verified namespace io.github.SerpKite, per the 5 October check, with current official SDKs in three languages (15). The SDK repositories run typecheck, tests and build in CI, but we couldn't see run results (7). 30+20+8+15+7 = 80.\n\n### Reliability: SerpKite +35\n\n- SERPHouse (40): Read with the hosted lines. No status page is linked from the site or docs, and status.serphouse.com did not answer on 6 November 2026 (0). No readable incident history (5). Rate limits published, 60 requests a minute and 60 concurrent on every self-serve plan (15). 429 is documented as 'slow down', and a 200 can carry `\"status\": \"error\"` with 'Please try again', with no Retry-After or backoff guidance. Failed requests aren't charged (5 of 15). The pricing page lists a 99.99% uptime SLA on Basic and Regular and the docs a 99.95% one, but no SLA terms or credits were found in the terms (5 of 10). Generally available (10). 0 + 5 + 15 + 5 + 5 + 10 = 40.\n- SerpKite (75): Hosted API, read with the hosted lines. Better Stack status page at status.serpkite.com with four monitors (api.serpkite.com/healthz, dashboard API, dashboard, website) and daily bars (20). Monitoring began on 2 October 2026, so the record covers 31 days of the 90 from 4 August. The page's own figures give 99.978 per cent uptime over 30 days for the API health monitor and 99.971 for the dashboard API, the 5 October check saw 29 to 41 minutes of downtime on each monitor on 2 October and 19 seconds on 3 October, and the feed has never carried an incident post. No outage reached an hour. A readable record shorter than 90 days with nothing major scores 15, as this run settled for short records. Rate limits published per key, 5 to 100 requests a second by pack (15). 429 `rate_limited` with Retry-After, backoff guidance for 429 and 503, and `Idempotency-Key` on batch creation (15). The terms say self-serve plans have no uptime guarantee and an enterprise SLA sits in a separate agreement we couldn't read (0). v1 API with no beta or preview label (10). 20+15+15+15+0+10 = 75.\n\n### Agent ergonomics: SerpKite +33\n\n- SERPHouse (64): 23 MCP tools with no toolsets or filtering (15 of 25). `num_result`, `max_pages`, paging, device, location, language, date and video filters (16 of 20). Status codes are tabulated, but a 200 can also mean an error and the body carries only 'Please try again' (10 of 20). Searches only read and failed requests aren't charged, but the MCP tools carry no readOnlyHint or other annotations (10 of 20). `serphouse_search` needs only `q` and defaults to the US; most other tools need `loc` or `loc_id`. Official Node.js, PHP and Python SDKs are documented (13 of 15). 15 + 16 + 10 + 10 + 13 = 64.\n- SerpKite (97): `format=markdown` or `compact`, `fields` projection, `num` and an `X-Tokens-Estimate` header size REST responses. The MCP server now has 23 tools with no toolsets or read-only subset we could find (22). `page`, `num` up to 100, country, language, location, time, domain include, exclude and boost, date bounds, `highlights` and `max_tokens` on extract (20). Stable error codes with a retry column, and errors are never billed (20). Searches are read-only, failed and empty calls are refunded, and batch creation takes `Idempotency-Key`. Since 9 October 2026 the changelog says every MCP tool carries `readOnlyHint`, `destructiveHint`, `idempotentHint` and `openWorldHint`, with all read-only except `crawl`, and on 2 November the MCP page says every tool is read-only except `crawl` and `research`, which start paid tasks, and none is destructive (20). Only `q` or `url` is required, and official SDKs exist for TypeScript, Python and Go with retries built in (15). 22+20+20+20+15 = 97.\n\n### Transparency \u0026 trust: SerpKite +27\n\n- SERPHouse (50): Closed service under terms naming Patoliya Infotech LLP in India, and the MCP server is MIT (18 of 30). The terms give retention periods (JSON results up to 6 months, HTML up to 1 month, search history indefinitely) and say personal data sits on DigitalOcean in India, and they advise EEA users not to use the service. The privacy policy is generic and neither document carries a date (15 of 30). No deprecation policy, and the terms allow products to be discontinued without notice (0 of 20). DigitalOcean in India named for account data; no sub-processor list (6 of 20). 18 + 15 + 0 + 6 = 39.\n- SerpKite (77): Closed API under terms that name the operator, an Ontario address and governing law, with the SDKs and the MCP connection repository MIT (18). The privacy policy, DPA page, retention doc and security page agree that query text of successful requests isn't logged, usage metadata lasts 31 days and batch results 24 hours. On 26 October failed and empty requests began keeping their query for 24 hours, and the changelog says the privacy policy, terms and DPA were updated the same day (27). The terms promise 30 days' notice before removing an endpoint, with exceptions for changes forced by a third party. AI Overview, AI Mode and Lens were removed in the first week without notice under that exception, and the reviews limit of 16 October came the same way, while a batch price change for 23 November 2026 was announced ahead (14). Subprocessors named with purpose and location, including Contabo in Germany, Cloudflare, Paddle, Resend, PostHog EU and Better Stack, with 30 days' notice of changes (20).\n\n### Security \u0026 auth: SerpKite +26\n\n- SERPHouse (11): One key per account, one account per user, no scopes or rotation found (10). The REST API documents `api_token` in the query string and the hosted MCP server takes the key only in its URL path, less 10 (0 of 30). Searches only read, with no read-only or restricted key (8 of 20). Results are third-party snippets and AI Overview text, with no prompt-injection guidance (0). An account tool shows plan and credit usage; no per-call log was found (3 of 15). No security.txt (404), disclosure policy, bug bounty or certification found (0 of 20). 0 + 8 + 0 + 3 + 0 = 11.\n- SerpKite (37): Many keys per account, each revocable and rotatable with an optional monthly credit limit, stored as SHA-256 hashes, with no scopes. Since 9 October the MCP server also takes OAuth (authorisation code with PKCE, dynamic client registration, rotating refresh tokens, one `mcp` scope), each connection running as a named, revocable API key, while REST still needs a key (20). The docs allow the key as `?api_key=` on GET requests (minus 10). Search is read-only, and per-key limits and an account spend cap bound cost, but there's no read-only key, and the MCP server exposes crawl alongside search with no confirmation step we could see (10). Results include third-party snippets and full page Markdown, and we found no prompt-injection guidance (0). The dashboard request log keeps per-call metadata (endpoint, status, credits, key) for 31 days with CSV export, and each key records who created it (12). security.txt returns 404. The security page has a disclosure policy with acknowledgement in 2 business days, no paid bug bounty and SOC 2 marked as not yet started (5).\n\n### Schema \u0026 documentation: SerpKite +24\n\n- SERPHouse (66): No OpenAPI or similar contract for the REST API. The MCP server's tools carry typed Zod schemas, published in the source and a static server card (18 of 25). llms.txt at the site and the docs, and every docs page as Markdown (10). MCP tool descriptions say which tool to use for what, such as `serphouse_google_web` when device or `num_result` is needed, while the docs pages lead with marketing lines such as 'Unlock captivating Google video content' (12 of 20). Enums for device, SERP type, engine and video duration, defaults and 37 described parameters (11 of 15). A status code table and request examples per engine, with a generic error body (12 of 15). No changelog or API versioning; only the MCP server has tags (3 of 15). 18 + 10 + 12 + 11 + 12 + 3 = 66.\n- SerpKite (90): Public OpenAPI 3.1 spec (version 1.12.7 on 2 November 2026, 41 paths and 47 operations) at serpkite.com/openapi/serp-api.yaml (25). llms.txt, llms-full.txt and a Markdown twin of every docs page (10). Endpoint descriptions state purpose and when to use them, and the guides cover which tool to pick. The MCP tool definitions aren't public and `tools/list` needs a key, so we read the MCP docs table and the matching descriptions in the MIT AI SDK package, which state purpose and some when-to-use lines but not when not to (12). Typed parameters with 64 enums in the spec, documented ranges and strict validation that rejects unknown parameters with a 400 naming the replacement. We couldn't confirm the MCP JSON Schemas (13). curl, TypeScript, Python and Go examples on each page, and an errors page with 14 codes and what to do about each (15). Versioned `/v1` paths and a dated API changelog (15).\n\n## Score by category\n\n| Category | Weight | SERPHouse | SerpKite | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 75 | SerpKite +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 66 | 90 | SerpKite +24 |\n| Agent ergonomics | 13% (16.2 this run) | 64 | 97 | SerpKite +33 |\n| Security \u0026 auth | 14% (17.5 this run) | 11 | 37 | SerpKite +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 23 | 80 | SerpKite +57 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 50 | 77 | SerpKite +27 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **42.4 · E** | **67.6 · B** | |\n\n## Facts side by side\n\n| Fact | SERPHouse | SerpKite |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Patoliya Infotech LLP | SerpKite (Anastasia Klimova, trading as SerpKite) |\n| Hosted endpoint | `https://mcp.serphouse.com/YOUR_API_KEY/mcp` | `https://api.serpkite.com/v1/search` |\n| Transports | Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Paid | Freemium |\n| Price for search serp | $0.62 per 1,000 requests | not published |\n| x402 | no | no |\n| Licence | none | Proprietary service under SerpKite's terms of service. The SDKs (TypeScript, Python, Go, LangChain, Vercel AI SDK) and the MCP connection repository on GitHub are MIT |\n| Tools exposed | 23 | 23 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.SerpKite/serpkite` |\n| Last release | 2026-07-06 | 2026-11-01 |\n| Terms last updated | no date given | 2026-10-03 |\n| Privacy policy last updated | no date given | 2026-10-03 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 809 npm/wk, 376 PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### SERPHouse\n\nNo score change since it was listed.\n\n### SerpKite\n\n- +2.8 on 2 November 2026: product, time\n\n## Verdicts\n\n**SERPHouse.** SERPHouse returns parsed Google, Bing and Yahoo results at published prices from $0.62 per 1,000 requests, with a 23-tool MCP server and a 4,000-credit trial without a card. The hosted MCP puts the key in its URL, there is no status page, changelog or security contact, and the terms keep search history indefinitely.\n\n**SerpKite.** Google SERP API with an OpenAPI 3.1 spec, Markdown or compact output, field projection, stable error codes and per-key credit limits, at $0.60 to $1.00 per 1,000 on packs that don't expire. The service launched on 29 September 2026 from a sole trader, with a month of status history and frequent same-day contract changes.\n\n## Before you call either\n\n### SERPHouse\n\n1. Send the key as `Authorization: Bearer`, not as `api_token` in the URL\n2. Treat a 200 with `\"status\": \"error\"` and 'Please try again' as a failure and retry later\n3. Pass `loc` or `loc_id` for Google and Bing tools other than `serphouse_search`; find IDs with `serphouse_location_search`\n4. Use `serphouse_search` for plain lookups and `serphouse_serp_google_advanced` only when ranks beyond the top 10 are needed, at ten times the price\n5. Keep under 60 requests a minute on self-serve plans\n\n### SerpKite\n\n1. Send the key as `Authorization: Bearer`, not `?api_key=`, and give the agent a dedicated key with a monthly credit limit\n2. Ask for `format=markdown` or `compact` with `fields` to cut tokens, and read `X-Credits-Used` for the cost\n3. Keep `engine=google` for rank work. Check `meta.engine` when a key allows fallback engines\n4. On 429 `rate_limited` or 503 upstream codes, wait for Retry-After and retry. `daily_limit_reached`, `account_restricted` (403) and 402 need a purchase\n5. Treat page Markdown from `include_content`, `webpage` and `extract` as untrusted text\n\n## Questions\n\n### Which is better for AI agents, SERPHouse or SerpKite?\n\nSerpKite scores 67.6 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories.\n\n### Do SERPHouse and SerpKite need an API key?\n\nBoth need an API key.\n\n### Can an agent call SERPHouse and SerpKite without installing anything?\n\nYes. SERPHouse has a hosted endpoint at https://mcp.serphouse.com/YOUR_API_KEY/mcp and SerpKite at https://api.serpkite.com/v1/search.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/serphouse-vs-serpkite.json, and with the fewest tokens: https://www.anchorterminal.com/compare/serphouse-vs-serpkite.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"serphouse\", \"b\": \"serpkite\"}`. From a terminal: `anchor compare serphouse serpkite`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/serphouse.json and https://www.anchorterminal.com/api/v1/tools/serpkite.json\n\n## Other comparisons with SERPHouse or SerpKite\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs SERPHouse](https://www.anchorterminal.com/compare/agentcore-web-search-vs-serphouse.md)\n- [Web Search Tool on Amazon Bedrock AgentCore vs SerpKite](https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpkite.md)\n- [Arcmira vs SerpKite](https://www.anchorterminal.com/compare/arcmira-vs-serpkite.md)\n- [Grounding with Bing Search vs SERPHouse](https://www.anchorterminal.com/compare/bing-grounding-vs-serphouse.md)\n- [Grounding with Bing Search vs SerpKite](https://www.anchorterminal.com/compare/bing-grounding-vs-serpkite.md)\n- [Brave Search API + MCP vs SERPHouse](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.md)\n- [Brave Search API + MCP vs SerpKite](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpkite.md)\n- [Cloudflare Web Search API vs SERPHouse](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse.md)\n- [Cloudflare Web Search API vs SerpKite](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpkite.md)\n- [DeepSeek Search and Fetch API vs SERPHouse](https://www.anchorterminal.com/compare/deepseek-search-api-vs-serphouse.md)\n- [DeepSeek Search and Fetch API vs SerpKite](https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpkite.md)\n- [Exa API + MCP vs SERPHouse](https://www.anchorterminal.com/compare/exa-mcp-vs-serphouse.md)\n- [Exa API + MCP vs SerpKite](https://www.anchorterminal.com/compare/exa-mcp-vs-serpkite.md)\n- [Firecrawl MCP vs SerpKite](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpkite.md)\n- [Grep AI vs SerpKite](https://www.anchorterminal.com/compare/grep-ai-vs-serpkite.md)\n- [Kagi Search API vs SERPHouse](https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.md)\n- [Kagi Search API vs SerpKite](https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.md)\n- [Linkup vs SERPHouse](https://www.anchorterminal.com/compare/linkup-vs-serphouse.md)\n- [Linkup vs SerpKite](https://www.anchorterminal.com/compare/linkup-vs-serpkite.md)\n- [Mojeek Web Search API vs SERPHouse](https://www.anchorterminal.com/compare/mojeek-vs-serphouse.md)\n- [Mojeek Web Search API vs SerpKite](https://www.anchorterminal.com/compare/mojeek-vs-serpkite.md)\n- [Parallel Search and Task APIs vs SERPHouse](https://www.anchorterminal.com/compare/parallel-search-api-vs-serphouse.md)\n- [Parallel Search and Task APIs vs SerpKite](https://www.anchorterminal.com/compare/parallel-search-api-vs-serpkite.md)\n- [Perplexity Search API vs SERPHouse](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse.md)\n- [Perplexity Search API vs SerpKite](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpkite.md)\n- [SearchAPI.io vs SERPHouse](https://www.anchorterminal.com/compare/searchapi-io-vs-serphouse.md)\n- [SearchAPI.io vs SerpKite](https://www.anchorterminal.com/compare/searchapi-io-vs-serpkite.md)\n- [SerpApi vs SERPHouse](https://www.anchorterminal.com/compare/serpapi-vs-serphouse.md)\n- [SerpApi vs SerpKite](https://www.anchorterminal.com/compare/serpapi-vs-serpkite.md)\n- [Serper vs SERPHouse](https://www.anchorterminal.com/compare/serper-vs-serphouse.md)\n- [Serper vs SerpKite](https://www.anchorterminal.com/compare/serper-vs-serpkite.md)\n- [SERPHouse vs SpecStream](https://www.anchorterminal.com/compare/serphouse-vs-specstream.md)\n- [SERPHouse vs Tavily API + MCP](https://www.anchorterminal.com/compare/serphouse-vs-tavily-mcp.md)\n- [SERPHouse vs TinyFish Search](https://www.anchorterminal.com/compare/serphouse-vs-tinyfish-search.md)\n- [SERPHouse vs Valyu](https://www.anchorterminal.com/compare/serphouse-vs-valyu.md)\n- [SERPHouse vs You.com APIs](https://www.anchorterminal.com/compare/serphouse-vs-you-com-api.md)\n- [SerpKite vs SpecStream](https://www.anchorterminal.com/compare/serpkite-vs-specstream.md)\n- [SerpKite vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp.md)\n- [SerpKite vs TinyFish Search](https://www.anchorterminal.com/compare/serpkite-vs-tinyfish-search.md)\n- [SerpKite vs Valyu](https://www.anchorterminal.com/compare/serpkite-vs-valyu.md)\n- [SerpKite vs You.com APIs](https://www.anchorterminal.com/compare/serpkite-vs-you-com-api.md)\n- [Fetch (MCP reference server) vs SERPHouse](https://www.anchorterminal.com/compare/fetch-reference-server-vs-serphouse.md)\n- [Fetch (MCP reference server) vs SerpKite](https://www.anchorterminal.com/compare/fetch-reference-server-vs-serpkite.md)\n- [NewsCatcher vs SERPHouse](https://www.anchorterminal.com/compare/newscatcher-vs-serphouse.md)\n- [NewsCatcher vs SerpKite](https://www.anchorterminal.com/compare/newscatcher-vs-serpkite.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "SERPHouse vs SerpKite",
        "url": ""
      }
    ],
    "description": "SerpKite scores 67.6 (B) to SERPHouse's 42.4 (E) for search serp. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "SERPHouse E 42.4",
      "SerpKite B 67.6",
      "scores"
    ],
    "h1": "SERPHouse vs SerpKite",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/serphouse-vs-serpkite",
    "published": "2026-10-01",
    "section": "tools",
    "title": "SERPHouse vs SerpKite for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite"
  },
  "tokens": {
    "markdown": 5600,
    "slim": 3230
  },
  "version": 1
}
