{
  "data": {
    "a": {
      "slug": "mojeek",
      "name": "Mojeek Web Search API",
      "vendor": "Mojeek Limited",
      "vendorUrl": "https://www.mojeek.com/services/search/web-search-api/",
      "kind": "http-api",
      "category": "search",
      "summary": "Mojeek's Web Search API returns results from Mojeek's own independent web index as JSON or XML, with country and language boosting, date and domain filters. Mojeek Limited runs it from the UK on pay-as-you-go plans.",
      "url": "https://www.anchorterminal.com/tools/mojeek",
      "markdownUrl": "https://www.anchorterminal.com/tools/mojeek.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mojeek.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mojeek.json",
      "dns": "mojeek.grade.anchorterminal.com",
      "transports": [],
      "packages": [],
      "auth": "api-key",
      "authNotes": "One API key per account, sent as the `api_key` query parameter, the only method the docs show. A key is issued after a browser signup with a bank card. Rotating or revoking a key is done by emailing api@mojeek.com, per a staff reply on the community forum on 22 October 2026.",
      "pricing": "usage",
      "pricingNotes": "£2 per 1,000 requests on Startup (5 a second, 100,000 a day, up to 10 results a request) and £3 on Business (10 a second, 400,000 a day, up to 40 results, storage rights). Enterprise by contract. A free credit on signup, but a card is required. No automatic payments; prices exclude VAT.",
      "priceSummary": "$2.68 / 1k req",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the Search API page, the API docs or the API terms (checked 2026-11-06). Payments go through Stripe after a browser signup.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.mojeek.com/support/api/search/",
      "capabilities": [
        "web.search"
      ],
      "tags": [
        "hosted",
        "usage",
        "uk",
        "eu",
        "status-page"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 36.4,
        "grade": "F",
        "agentReady": false,
        "rank": 1365,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 24,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 10,
          "payments": 20,
          "reliability": 45,
          "schema": 29,
          "security": 15,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Mojeek sells search over its own independent index at published per-request prices, with region, language, date and domain controls and storage rights on the Business plan. The key travels only in the URL, rotation is by email, a card is needed to start, and there is no OpenAPI, changelog, 429 handling or SLA.",
        "bestFor": "Agents and products that want a second, independent index beside Google-derived results, or European data handling with no sub-processors.",
        "strengths": [
          "Results come from Mojeek's own crawler and index, not from Google or Bing",
          "Published prices of £2 and £3 per 1,000 requests, with no minimum commitment and no automatic payments",
          "Region and language boosts, date windows, up to 25 included or excluded domains, and adjustable title and snippet lengths",
          "The API page states 90-day retention, zero retention on request and no sub-processors, with infrastructure run in Europe",
          "Business and Enterprise plans allow results to be stored indefinitely and combined with other engines"
        ],
        "weaknesses": [
          "The API key is documented only as a URL query parameter, and rotating a key means emailing the API team",
          "A bank card is required to open an account, even for the free credit",
          "No OpenAPI, llms.txt, changelog, version or error code list; errors arrive as a free-text status string",
          "No HTTP 429 or retry guidance and no SLA; the terms allow interruption without notice",
          "Startup results may be cached for one hour only, and the terms forbid using results in a search index"
        ],
        "agentNotes": [
          "Send `fmt=json`, since the default response is XML",
          "Read `response.status` on every call; a daily limit shows as 'ERROR: Daily Limit Reached' rather than an HTTP error",
          "Set `lb`, `lbb`, `rb` and `rbb` as the quickstart recommends, or results lean to no language or region",
          "Keep the key out of logs and shared URLs, since it travels in the query string",
          "On the Startup plan, don't keep results for more than an hour"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 36.4
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 10,
          "payments": 20,
          "reliability": 45,
          "schema": 29,
          "security": 15,
          "transparency": 50
        },
        "provenanceScore": 85,
        "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": {
        "http": "curl \"https://api.mojeek.com/search?q=mojeek\u0026api_key=YOUR_API_KEY\u0026lb=EN\u0026lbb=100\u0026rb=GB\u0026rbb=10\u0026fmt=json\""
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/mojeek"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search request, Startup",
          "unit": "1k-requests",
          "usd": 2.68,
          "note": "£2, converted at the ECB rates of 6 November 2026 (USD 1.1165, GBP 0.83415 per euro). Excludes VAT"
        },
        {
          "item": "Search request, Business",
          "unit": "1k-requests",
          "usd": 4.02,
          "note": "£3, with storage rights"
        }
      ],
      "provenance": {
        "legalEntity": "Mojeek Limited",
        "domain": "mojeek.com",
        "domainRegistered": "2004-09-30",
        "endpointOnVendorDomain": true,
        "terms": "https://www.mojeek.com/about/legal/api-terms.html",
        "privacy": "https://www.mojeek.com/about/privacy/",
        "statusPage": "https://status.mojeek.com/",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "Mojeek Limited, registered in England number 06918197, registered address in Croydon, office at the Sussex Innovation Centre in Brighton, per the site footer.",
          "The API terms name Mojeek Limited, choose English law and forbid using the services 'by any automated means unless you are an authorised Services user'. Recorded as a fact; only public pages were read.",
          "www.mojeek.com/robots.txt disallows /search, /url, /focus/dashboard, /eval and /image? for all agents; none of the pages read is under those paths.",
          "The privacy policy is dated 2 February 2022 and covers the search website. It says logs are kept indefinitely with IP addresses replaced by a country code.",
          "/.well-known/security.txt names security@mojeek.com and the contact page, with no Expires field. /security.txt answers 404.",
          "status.mojeek.com is a Site24x7 StatusIQ page drawn by script. Its RSS feed lists Search, Website, Blog and Community components, all operational on 6 November 2026.",
          "RDAP gives mojeek.com a registration date of 30 September 2004."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mojeek.json",
      "live": {
        "slug": "mojeek",
        "vendorStatus": {
          "page": "https://status.mojeek.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:12.320117499Z"
        },
        "securityTxt": {
          "url": "https://mojeek.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:01:02.996132936Z"
        },
        "pages": [
          {
            "url": "https://www.mojeek.com/about/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:48.341040926Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cd749befb394"
          },
          {
            "url": "https://www.mojeek.com/about/legal/api-terms.html",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:46.299086085Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f593843e677e"
          }
        ],
        "updatedAt": "2026-11-07T16:01:02.996132936Z"
      }
    },
    "answer": "SerpApi scores 63.5 (B) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in every scored category.",
    "b": {
      "slug": "serpapi",
      "name": "SerpApi",
      "vendor": "SerpApi",
      "vendorUrl": "https://serpapi.com",
      "kind": "http-api",
      "category": "search",
      "summary": "Scrapes live results pages from Google, Bing, Baidu, DuckDuckGo, Yandex, Amazon, YouTube and about 20 other engines and returns them as parsed JSON or markdown.",
      "url": "https://www.anchorterminal.com/tools/serpapi",
      "markdownUrl": "https://www.anchorterminal.com/tools/serpapi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/serpapi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/serpapi.json",
      "dns": "serpapi.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://serpapi.com/search",
      "packages": [
        {
          "registry": "npm",
          "name": "serpapi"
        },
        {
          "registry": "pypi",
          "name": "serpapi"
        },
        {
          "registry": "pypi",
          "name": "google-search-results"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key as the `api_key` query parameter on every request. The hosted MCP takes `Authorization: Bearer \u003ckey\u003e` or the key in the URL path (`/\u003ckey\u003e/mcp`) for clients that can't set headers.",
      "pricing": "freemium",
      "pricingNotes": "Free plan 250 searches a month (50 an hour). Starter $25 a month for 1,000 searches, Developer $75 for 5,000, Production $150 for 15,000, Big Data $275 for 30,000, Searcher $725 for 100,000, then Cloud tiers from $3,750 for 1M. Only successful searches count, cached and failed ones are free, and a response with 100 results is still one search. Ludicrous Speed doubles the price, Ludicrous Speed Max quadruples it (https://serpapi.com/pricing).",
      "priceSummary": "$25 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in llms.txt, pricing or integrations pages (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 175,
        "npmWeekly": 168618,
        "pypiWeekly": 104227,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://serpapi.com/search-api",
      "llmsTxt": "https://serpapi.com/llms.txt",
      "registryName": "io.github.serpapi/serpapi-mcp",
      "capabilities": [
        "web.search",
        "search.serp",
        "search.news",
        "search.images"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "python",
        "typescript",
        "closed-source"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.5,
        "grade": "B",
        "agentReady": false,
        "rank": 510,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 82,
          "payments": 30,
          "reliability": 65,
          "schema": 67,
          "security": 40,
          "transparency": 84
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November.",
        "bestFor": "An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.",
        "strengths": [
          "Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`",
          "Failed, errored and cached searches aren't billed, and the cache lasts 1 hour",
          "Terms promise a 99.95% SLA on all plans",
          "SOC 2 Type II, ISO 27001 and ISO 27701 listed on the security page, 31-day data retention stated in the terms",
          "Hosted MCP server in the official registry, with read-only tool annotations"
        ],
        "weaknesses": [
          "35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September",
          "REST auth is the `api_key` query parameter, with no header option documented",
          "No OpenAPI spec, and the MCP `search` tool takes a free-form `params` object",
          "Monthly plans only, from $25 for 1,000 searches, with no pay-per-call or machine payment",
          "No prompt-injection guidance for the snippets it returns"
        ],
        "agentNotes": [
          "Use the MCP with `Authorization: Bearer`, not the key-in-path URL the README leads with",
          "Read `serpapi://engines/\u003cengine\u003e` before calling a new engine, since `params` isn't typed",
          "Add `json_restrictor` or `output=md` to cut tokens, and `mode: compact` on the MCP",
          "A 429 means either the hourly limit or an empty balance. Check the account before retrying",
          "Repeat a search within the hour and the cached copy is free. Set `no_cache=true` only when freshness matters"
        ],
        "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": 63.5
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 82,
          "payments": 30,
          "reliability": 65,
          "schema": 67,
          "security": 40,
          "transparency": 70
        },
        "provenanceScore": 98,
        "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": {
        "http": "curl -G https://serpapi.com/search --data-urlencode \"q=coffee\" -d engine=google -d api_key=$SERPAPI_API_KEY",
        "claudeCode": "claude mcp add --transport http serpapi https://mcp.serpapi.com/mcp --header \"Authorization: Bearer $SERPAPI_API_KEY\"",
        "config": {
          "mcpServers": {
            "serpapi": {
              "headers": {
                "Authorization": "Bearer ${SERPAPI_API_KEY}"
              },
              "type": "http",
              "url": "https://mcp.serpapi.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/serpapi"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter plan, per 1,000 searches",
          "unit": "1k-requests",
          "usd": 25,
          "note": "1,000 searches for $25 a month"
        },
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 25,
          "note": "1,000 searches"
        },
        {
          "item": "Developer plan",
          "unit": "month",
          "usd": 75,
          "note": "5,000 searches"
        },
        {
          "item": "Production plan",
          "unit": "month",
          "usd": 150,
          "note": "15,000 searches, includes Legal Shield"
        },
        {
          "item": "Big Data plan",
          "unit": "month",
          "usd": 275,
          "note": "30,000 searches"
        }
      ],
      "provenance": {
        "legalEntity": "SerpApi, LLC",
        "domain": "serpapi.com",
        "domainRegistered": "2016-07-27",
        "endpointOnVendorDomain": true,
        "terms": "https://serpapi.com/legal",
        "privacy": "https://serpapi.com/legal",
        "statusPage": "https://status.serpapi.com",
        "changelog": "https://serpapi.com/release-notes",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "Terms and privacy policy share one page. The entity is a Texas LLC at 1632 S 1st St, Austin"
        ],
        "score": 98
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/serpapi.json",
      "live": {
        "slug": "serpapi",
        "probe": {
          "target": "https://serpapi.com/search",
          "method": "get",
          "lastAt": "2026-11-07T18:20:53.834078478Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 192,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 127,
          "p95ms24h": 210,
          "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": 255
            },
            {
              "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": 248
            },
            {
              "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
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.serpapi.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-11-07T18:22:00.685940591Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.serpapi/serpapi-mcp",
            "version": "2.2.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "serpapi",
            "version": "2.2.1",
            "seenAt": "2026-11-07T00:04:52.187916313Z"
          },
          {
            "registry": "pypi",
            "name": "google-search-results",
            "version": "2.4.2",
            "released": "2023-03-10",
            "seenAt": "2026-11-07T00:04:52.786371506Z"
          },
          {
            "registry": "pypi",
            "name": "serpapi",
            "version": "1.2.0",
            "released": "2026-10-30",
            "seenAt": "2026-11-07T00:04:52.581829374Z"
          }
        ],
        "npmWeekly": 157770,
        "pypiWeekly": 111267,
        "securityTxt": {
          "url": "https://serpapi.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:01:55.994757327Z"
        },
        "llmsTxt": {
          "url": "https://serpapi.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:54.117469983Z"
        },
        "domain": {
          "domain": "serpapi.com",
          "registered": "2016-07-27",
          "source": "https://rdap.verisign.com/com/v1/domain/serpapi.com",
          "checkedAt": "2026-11-01T14:27:22.977220583Z"
        },
        "pages": [
          {
            "url": "https://serpapi.com/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:41.886949784Z",
            "changedAt": "2026-11-07T14:19:41.886949784Z",
            "fingerprint": "4c04e1177e9e"
          },
          {
            "url": "https://serpapi.com/ebay-search-api",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:35.829778138Z",
            "changedAt": "2026-10-30T05:48:12.692533267Z",
            "fingerprint": "321bdf216d0c"
          },
          {
            "url": "https://serpapi.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:40.387016376Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "30dfa765089d"
          },
          {
            "url": "https://serpapi.com/legal",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:37.855693364Z",
            "changedAt": "2026-11-07T14:19:37.855693364Z",
            "fingerprint": "a7a9d55bdb87"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.serpapi.com/mcp",
          "checkedAt": "2026-11-07T01:47:41.410957591Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "search_dashboard",
              "title": "SerpApi search (dashboard)",
              "description": "Interactive dashboard variant of `search`: returns summary metrics, a source breakdown chart, and a results table with a click-to-expand detail panel, all rendered in the conversation. Same params as `search`. Use for a richer visual overview of a query's results. Automatically selects an engine-specific dashboard when available (e.g. google_flights gets price intelligence charting).",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi search (dashboard)"
              }
            },
            {
              "name": "search_table",
              "title": "SerpApi search (table)",
              "description": "Interactive UI variant of `search`: returns organic results as a sortable, searchable table rendered in the conversation. Same params as `search`. Use when the host supports MCP Apps and the user wants to browse results visually rather than read JSON.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi search (table)"
              }
            },
            {
              "name": "extract",
              "title": "SerpApi extract",
              "description": "Extract content from a public http(s) URL, discover site URLs, or crawl pages.\n\nAPI options go in params: url is required; params.mode is scrape (default), map, or crawl. See serpapi://engines/extract for all options.\n\nTop-level mode controls the response:\n- complete (default): full JSON.\n- compact: native Markdown by default.\n\nparams.output selects the format and overrides either default:\n- \"md\": return native Markdown unchanged in either response mode.\n- \"json\": return JSON, with filtering determined by the response mode.\n\nCompact JSON removes metadata. For scrape responses containing markdown, it also keeps only markdown and any error field. include_markdown=false or an explicit json_restrictor skips this extra filtering. Map/crawl and responses without markdown keep their remaining fields. Use complete with output=\"json\" for full JSON.\n\nCrawl max_pages defaults to 10 (maximum 100). Each successfully extracted, uncached page consumes one credit.\n\nExamples:\nFull scrape JSON: {\"params\":{\"url\":\"https://example.com\"},\"mode\":\"complete\"}\nScrape Markdown: {\"params\":{\"url\":\"https://example.com\"},\"mode\":\"compact\"}\nMap URLs as JSON: {\"params\":{\"url\":\"https://example.com\",\"mode\":\"map\"},\"mode\":\"complete\"}\nCrawl pages as Markdown: {\"params\":{\"url\":\"https://example.com\",\"mode\":\"crawl\",\"max_pages\":2},\"mode\":\"compact\"}\n",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "mode": {
                    "default": "complete",
                    "type": "string"
                  },
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi extract"
              }
            },
            {
              "name": "search",
              "title": "SerpApi search",
              "description": "Universal search tool supporting all SerpApi engines and result types.\n\n    When to use:\n        - Any query needing live, structured SERP data: web results, news, product listings, job postings, local businesses, flight/hotel prices, video results, images, stock/weather cards, knowledge graph entities.\n    \n    Engine discovery via MCP resources:\n        - serpapi://engines lists all engines supported by this tool.\n        - serpapi://engines/\u003cengine\u003e provides engine-specific parameters and supported options.\n        - Example: serpapi://engines/google_news\n\n    Input schema:\n        params: JSON object containing SerpApi engine parameters.\n            Common parameters:\n                - q: Search query. Required for most engines.\n                - engine: SerpApi engine name. Defaults to \"google_light\".\n                - location: Optional geographic location for localized results.\n                - output: Optional response format. Omit for JSON (default), or set to \"md\" for Markdown.\n    \n            Engine-specific parameters are available via MCP resources:\n                - serpapi://engines lists all supported engines.\n                - serpapi://engines/\u003cengine\u003e provides parameters and options for one engine.\n    \n        mode: Response mode. Defaults to \"complete\".\n            - \"complete\": Return the full SerpApi response.\n            - \"compact\": Remove metadata fields from JSON responses. Markdown is returned unchanged.\n    \n    Output schema:\n        structuredContent.result contains the response string: serialized JSON or unchanged Markdown.\n        The same string is included in text content. Tool failures preserve this wrapper and set isError to true.\n\n    Guided search:\n        Searches can request missing engine parameters from supporting clients using the engine catalog and engine-specific rules.\n        Flights collect airports and dates, hotels collect the destination and stay dates, and directions collect missing endpoints.\n        Other clients receive a missing-parameter error. Cancellation does not run a search.\n\n    Examples:\n        Weather: {\"params\": {\"q\": \"weather in London\", \"engine\": \"google\"}, \"mode\": \"complete\"}\n        Stock: {\"params\": {\"q\": \"AAPL stock\", \"engine\": \"google\"}, \"mode\": \"complete\"}\n        General: {\"params\": {\"q\": \"coffee shops\", \"engine\": \"google_light\", \"location\": \"Austin, TX\"}, \"mode\": \"complete\"}\n        Compact: {\"params\": {\"q\": \"news\"}, \"mode\": \"compact\"}\n        Markdown: {\"params\": {\"q\": \"news\", \"output\": \"md\"}}\n\n    Supported engines include (not limited to):\n        - google\n        - google_light\n        - google_flights\n        - google_hotels\n        - google_images\n        - google_news\n        - google_local\n        - google_shopping\n        - google_jobs\n        - bing\n        - yahoo\n        - duckduckgo\n        - youtube_search\n        - baidu\n        - ebay\n    ",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "mode": {
                    "default": "complete",
                    "description": "Response mode (default: \"complete\")\n- \"complete\": Returns the full response\n- \"compact\": Removes metadata fields from JSON responses; Markdown is unchanged",
                    "type": "string"
                  },
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Dictionary of SerpApi engine-specific parameters. Common parameters include:\n- q: Search query (required for most engines)\n- engine: Search engine to use (default: \"google_light\")\n- location: Geographic location filter\n- output: Response format; omit for JSON or set to \"md\" for Markdown"
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi search"
              }
            }
          ],
          "schemaTokens": 1917,
          "changedAt": "2026-11-07T01:47:41.410957591Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 1917,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 4
            },
            "findings": [
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "search",
                "message": "the description is about 720 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "extract",
                "message": "none of its 2 parameters has a description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "search_dashboard",
                "message": "its one parameter, params, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "search_table",
                "message": "its one parameter, params, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "2 of 4 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-11-07T18:22:00.685940591Z"
      }
    },
    "edges": [
      {
        "by": 72,
        "category": "maintenance",
        "leads": "serpapi",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read for a closed service. No API changelog, release notes or dated API change were found, and the blog's posts since 2024 are about search in general, so the last change can't be dated (0). No dated changes in the 90 days from 8 August (0). A staff member answered API questions on the community forum within a day in December 2025 and October 2026, and support is by email; no public changelog (10 of 15). No official SDKs or MCP server (0). No public packages or CI to measure (0). 0 + 0 + 10 + 0 + 0 = 10.",
          "b": "Release notes carry dated entries almost daily, the latest on 2 November 2026, and serpapi-python 1.2.0 shipped on 30 October (30). Since 4 August, serpapi-python 1.1.0, 1.1.1, 1.1.2 and 1.2.0, MCP server 1.0.3 and 2.0.0, and serpapi-cli 0.3.0, 0.4.0 and 0.5.0, besides the release notes (20). Release notes run several entries a week and the MCP repo merged a fix on 27 October. Open issues weren't read, since GitHub's pages refuse our reader (12). The MCP server is in the official registry as io.github.serpapi/serpapi-mcp and the Python SDK and CLI are current, but the JavaScript SDK's last release is still 2.2.1 of 26 July 2025 (12). The MCP, Python and CLI repositories run tests in CI; pass state not read (8)."
        },
        "scores": {
          "a": 10,
          "b": 82
        }
      },
      {
        "by": 38,
        "category": "schema",
        "leads": "serpapi",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI or other machine-readable contract (0). No llms.txt (404) and no Markdown pages for agents (0). The parameters page states what each parameter does, with notes on when not to use `reg` and `clufmt`, but nothing on when another endpoint fits better (12 of 20). Every parameter has a type, defaults and valid ranges (tlen 0 to 127, dlen 0 to 511, rbb and lbb 1 to 100, up to 25 domains), though `reg` is called an enum without listing its values (11 of 15). One curl example and annotated JSON and XML response formats; errors appear only as a `status` string with one example (6 of 15). No API version, changelog or dated release notes, and the quickstart and the parameters page give different hosts (0). 0 + 0 + 12 + 11 + 6 + 0 = 29.",
          "b": "No OpenAPI or similar spec for the REST API. The MCP server publishes per-engine parameter lists as resources (`serpapi://engines/\u003cengine\u003e`), which we count as a partial contract (10). llms.txt, `pricing.md` and Markdown twins of the docs pages, such as search-api.md (10). Each engine page describes every parameter, and the MCP tool says when to use it but not when not to (14). Parameters list allowed values on the engine pages, but the MCP `search` tool takes one free-form `params` object (7). Examples on every engine page, and a status-and-errors page documents 400, 401, 403, 404, 410, 429 and 5xx with a JSON `error` field (14). Dated release notes with several entries a week, though the API itself isn't versioned (12)."
        },
        "scores": {
          "a": 29,
          "b": 67
        }
      },
      {
        "by": 25,
        "category": "security",
        "leads": "serpapi",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One key per account, documented only as the `api_key` query parameter, and rotation or revocation is by email to the API team (a staff reply of 22 October 2026 on the community forum asks for the key's last 8 digits). One all-powerful key (10) less 10 for the key in the URL (0). Search is read-only and there is nothing to write, but no scoped or restricted key (10 of 20). Results are third-party titles and snippets, with no prompt-injection guidance found (0). No audit log or per-call usage view was found in the docs; the FAQ mentions budget alerts on the account (0 of 15). security.txt names security@mojeek.com, with no Expires field. No bug bounty, disclosure policy, SOC 2 or ISO 27001 found; the API page claims compliance with European rules such as the EU Data Act without a certification (5 of 20). 0 + 10 + 0 + 0 + 5 = 15.",
          "b": "One account key with no scopes found (10), documented as the `api_key` query parameter on every REST call, and the MCP README leads with the key in the URL path. The hosted MCP also accepts `Authorization: Bearer` (minus 10). Search is read-only and the MCP tool carries read-only annotations, but there's no least-privilege key (15). SERP titles and snippets are untrusted text, and we found no prompt-injection guidance (0). The Search Archive API returns any search from the last 31 days, and the security page says audit logs cover all critical parts of the service (10). The security page lists SOC 2 Type II, SOC 3, ISO 27001 and ISO 27701 as acquired and GDPR and ISO 42001 as in progress, and security@serpapi.com takes reports. serpapi.com/security.txt is valid (expires 1 January 2027), though the /.well-known/ path answers with the HTML security page. No bug bounty or public advisories found (15)."
        },
        "scores": {
          "a": 15,
          "b": 40
        }
      },
      {
        "by": 22,
        "category": "ergonomics",
        "leads": "serpapi",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Responses can be sized with `t` (up to 10, 40 or 100 results by plan), `tlen`, `dlen` and opt-in date and size fields (22 of 25). `s` for paging, `since` and `before`, `site`, included and excluded domains, region and language boosting and safe search (20). Errors are a free-text `status` with no documented codes, which an agent can't branch on reliably (5 of 20). Searches only read, so a retry is safe, but no page says whether failed or empty requests are billed (12 of 20). Only `q` and `api_key` are required, with recommended values for the boosts. No official SDK in any language (7 of 15). 22 + 20 + 5 + 12 + 7 = 66.",
          "b": "`json_restrictor` selects fields, `output=md` returns Markdown (the MCP README claims 50 per cent fewer tokens on average) and the MCP `compact` mode drops metadata. One core MCP tool plus two opt-in UI tools (22). `start`, `num`, location, language and engine-specific filters, plus `async` with the Search Archive API (20). Documented status codes and `search_metadata.status` values, though one 429 covers both the hourly limit and an empty balance (14). Searches are read-only, failed and cached searches aren't billed, and the MCP tool sets readOnlyHint true and destructiveHint false (18). Only `q` is required for most engines. llms.txt lists libraries in 11 languages, though the JavaScript one hasn't had a release since July 2025 (14)."
        },
        "scores": {
          "a": 66,
          "b": 88
        }
      },
      {
        "by": 20,
        "category": "reliability",
        "leads": "serpapi",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines. status.mojeek.com is a Site24x7 StatusIQ page with Search, Website, Blog and Community components. It is drawn by script, so only its RSS feed could be read, which shows each component's current state (Search operational since 7 September 2026) and no incident entries (15 of 20). No readable incident history (5). Rate limits are published per plan, 5 a second and 100,000 a day on Startup, 10 a second and 400,000 a day on Business (15). Over the daily limit the JSON `status` reads 'ERROR: Daily Limit Reached'; no HTTP 429, Retry-After or backoff guidance was found (0). No SLA, and the API terms say the service is provided as is and may be interrupted without notice (0). Generally available, with only the `lr` parameter marked beta (10). 15 + 5 + 15 + 0 + 0 + 10 = 45.",
          "b": "Atlassian Statuspage at status.serpapi.com, with per-API components and incident history on its history pages and Atom feed (20). Between 4 August and 2 November the history lists 35 incidents active in the window. Two were wide failures that also list the general API component, each over an hour. From 7 to 9 August an outage across 37 Google and Google Light APIs, including Search, left 'a large number of requests' failing or timing out. On 10 September the vendor posted a 'service outage across all of our APIs', with degradation until 17 September. From 6 October a degradation of 15 Google and Google Light APIs, including Search, which the vendor called a 'partial service outage affecting multiple APIs', was still open on 2 November. Like the single-engine incidents, it hit part of the product and counts as minor. Two majors (5). Hourly throughput published per plan, 50 an hour free to 640,000 on Cloud 54M (15). 429 is documented as either the hourly limit or an empty search balance, with no Retry-After or backoff guidance found (5). The terms (updated 27 August 2026) promise a 99.95% SLA on all plans with credits up to 100% (10). GA (10). 20 + 5 + 15 + 5 + 10 + 10 = 65."
        },
        "scores": {
          "a": 45,
          "b": 65
        }
      },
      {
        "by": 16,
        "category": "transparency",
        "leads": "serpapi",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with API terms naming Mojeek Limited under English law (15 of 30). The API page states 90-day retention, zero retention on request, no sub-processors and that Mojeek is the processor and the customer the controller, while the API terms say both parties are independent controllers under GDPR, and the privacy policy of 2 February 2022 covers only the website (12 of 30). The terms promise 30 days' notice of material changes and of price changes, but there is no deprecation policy or dated notices (5 of 20). The API page says there are no sub-processors and infrastructure is owned and run in Europe, in a UK data centre per the about page (18 of 20). 15 + 12 + 5 + 18 = 50.",
          "b": "The API is closed under one terms-and-privacy page, and the MCP server is MIT (18). The legal page and the security page agree that search data is deleted after 31 days, ZeroTrace mode (an enterprise parameter) stores nothing, and a DPA is available on request (26). Deprecations show up as dated release notes, such as eBay's Sold and Completed filters on 28 September 2026, but there's no notice policy, and the terms allow termination without notice (8). Named subprocessors (AWS, Cloudflare, Wasabi, Stripe, Intercom and others) and US hosting with Standard Contractual Clauses (18)."
        },
        "scores": {
          "a": 68,
          "b": 84
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Mojeek Limited",
        "b": "SerpApi",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://serpapi.com/search",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$2.68 per 1,000 requests",
        "b": "$25 per 1,000 requests",
        "name": "Price for web search"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "0",
        "b": "3",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.serpapi/serpapi-mcp",
        "name": "MCP registry"
      },
      {
        "a": "none",
        "b": "2026-10-30",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-08-27",
        "name": "Terms last updated"
      },
      {
        "a": "2022-02-02",
        "b": "2026-08-27",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "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": "yes",
        "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": "175 stars, 169k npm/wk, 104k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "SerpApi scores 63.5 (B) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, Mojeek Web Search API or SerpApi?"
      },
      {
        "answer": "Mojeek Web Search API, at $2.68 per 1,000 requests against $25 per 1,000 requests for SerpApi. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for web search, Mojeek Web Search API or SerpApi?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Mojeek Web Search API and SerpApi need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Mojeek Web Search API. SerpApi has a hosted endpoint at https://serpapi.com/search.",
        "question": "Can an agent call Mojeek Web Search API and SerpApi without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Cheaper for web search, $2.68 against $25 per 1,000 requests"
        ],
        "goodFor": "Agents and products that want a second, independent index beside Google-derived results, or European data handling with no sub-processors.",
        "slug": "mojeek",
        "watchFor": "The API key is documented only as a URL query parameter, and rotating a key means emailing the API team"
      },
      {
        "aheadOn": [
          "Reliability, 65 against 45",
          "Schema \u0026 documentation, 67 against 29",
          "Agent ergonomics, 88 against 66",
          "Security \u0026 auth, 40 against 15",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 82 against 10",
          "Transparency \u0026 trust, 84 against 68"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine"
        ],
        "goodFor": "An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.",
        "slug": "serpapi",
        "watchFor": "35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September"
      }
    ],
    "history": {
      "mojeek": null,
      "serpapi": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-02",
          "delta": 1,
          "from": 62.5,
          "fromGrade": "B",
          "to": 63.5,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.1,
          "from": 62.6,
          "fromGrade": "B",
          "to": 62.5,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-mojeek.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpapi.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-mojeek.json",
        "title": "Arcmira vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-serpapi.json",
        "title": "Arcmira vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-mojeek.json",
        "title": "Grounding with Bing Search vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-serpapi.json",
        "title": "Grounding with Bing Search vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek.json",
        "title": "Brave Search API + MCP vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi.json",
        "title": "Brave Search API + MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek.json",
        "title": "Cloudflare Web Search API vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi.json",
        "title": "Cloudflare Web Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-mojeek.json",
        "title": "DeepSeek Search and Fetch API vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpapi.json",
        "title": "DeepSeek Search and Fetch API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-mojeek.json",
        "title": "Exa API + MCP vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-serpapi.json",
        "title": "Exa API + MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-mojeek.json",
        "title": "Firecrawl MCP vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi.json",
        "title": "Firecrawl MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-mojeek.json",
        "title": "Grep AI vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-serpapi.json",
        "title": "Grep AI vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.json",
        "title": "Kagi Search API vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serpapi.json",
        "title": "Kagi Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-mojeek.json",
        "title": "Linkup vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-serpapi.json",
        "title": "Linkup vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-newscatcher.json",
        "title": "Mojeek Web Search API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-parallel-search-api.json",
        "title": "Mojeek Web Search API vs Parallel Search and Task APIs",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-parallel-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-perplexity-search-api.json",
        "title": "Mojeek Web Search API vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-searchapi-io.json",
        "title": "Mojeek Web Search API vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-searchapi-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-serper.json",
        "title": "Mojeek Web Search API vs Serper",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-serper"
      },
      {
        "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/mojeek-vs-specstream.json",
        "title": "Mojeek Web Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-tavily-mcp.json",
        "title": "Mojeek Web Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-tinyfish-search.json",
        "title": "Mojeek Web Search API vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-valyu.json",
        "title": "Mojeek Web Search API vs Valyu",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-you-com-api.json",
        "title": "Mojeek Web Search API vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serpapi.json",
        "title": "Parallel Search and Task APIs vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi.json",
        "title": "Perplexity Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-serpapi.json",
        "title": "SearchAPI.io vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serper.json",
        "title": "SerpApi vs Serper",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serper"
      },
      {
        "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/serpapi-vs-specstream.json",
        "title": "SerpApi vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.json",
        "title": "SerpApi vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search.json",
        "title": "SerpApi vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-valyu.json",
        "title": "SerpApi vs Valyu",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-you-com-api.json",
        "title": "SerpApi vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.json",
        "title": "NewsCatcher vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 20,
        "edge": "serpapi",
        "key": "reliability",
        "mojeek": 45,
        "name": "Reliability",
        "serpapi": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 38,
        "edge": "serpapi",
        "key": "schema",
        "mojeek": 29,
        "name": "Schema \u0026 documentation",
        "serpapi": 67,
        "weight": 13
      },
      {
        "by": 22,
        "edge": "serpapi",
        "key": "ergonomics",
        "mojeek": 66,
        "name": "Agent ergonomics",
        "serpapi": 88,
        "weight": 13
      },
      {
        "by": 25,
        "edge": "serpapi",
        "key": "security",
        "mojeek": 15,
        "name": "Security \u0026 auth",
        "serpapi": 40,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "serpapi",
        "key": "payments",
        "mojeek": 20,
        "name": "Payments \u0026 pricing",
        "serpapi": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 72,
        "edge": "serpapi",
        "key": "maintenance",
        "mojeek": 10,
        "name": "Maintenance \u0026 community",
        "serpapi": 82,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "serpapi",
        "key": "transparency",
        "mojeek": 68,
        "name": "Transparency \u0026 trust",
        "serpapi": 84,
        "weight": 7
      }
    ],
    "summary": "SerpApi scores 63.5 (B) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in every scored category. Both do web search. Mojeek Web Search API is cheaper for web search, $2.68 against $25 per 1,000 requests.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "mojeek": "Mojeek sells search over its own independent index at published per-request prices, with region, language, date and domain controls and storage rights on the Business plan. The key travels only in the URL, rotation is by email, a card is needed to start, and there is no OpenAPI, changelog, 429 handling or SLA.",
      "serpapi": "Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi",
    "json": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi.min.md"
  },
  "markdown": "SerpApi scores 63.5 (B) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in every scored category. Both do web search. Mojeek Web Search API is cheaper for web search, $2.68 against $25 per 1,000 requests.\n\n- Mojeek Web Search API: grade F, 36.4/100, rank #1365 of 1486. Markdown https://www.anchorterminal.com/tools/mojeek.md · JSON https://www.anchorterminal.com/api/v1/tools/mojeek.json\n- SerpApi: grade B, 63.5/100, rank #510 of 1486. Markdown https://www.anchorterminal.com/tools/serpapi.md · JSON https://www.anchorterminal.com/api/v1/tools/serpapi.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### Mojeek Web Search API (F)\n\nGood for: Agents and products that want a second, independent index beside Google-derived results, or European data handling with no sub-processors.\n\nAlso in its favour:\n- Cheaper for web search, $2.68 against $25 per 1,000 requests\n\nWatch for: The API key is documented only as a URL query parameter, and rotating a key means emailing the API team\n\n### SerpApi (B)\n\nGood for: An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.\n\nAhead on:\n- Reliability, 65 against 45\n- Schema \u0026 documentation, 67 against 29\n- Agent ergonomics, 88 against 66\n- Security \u0026 auth, 40 against 15\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 82 against 10\n- Transparency \u0026 trust, 84 against 68\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n\nWatch for: 35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September\n\n\n## Why the edge\n\n### Maintenance \u0026 community: SerpApi +72\n\n- Mojeek Web Search API (10): Read for a closed service. No API changelog, release notes or dated API change were found, and the blog's posts since 2024 are about search in general, so the last change can't be dated (0). No dated changes in the 90 days from 8 August (0). A staff member answered API questions on the community forum within a day in December 2025 and October 2026, and support is by email; no public changelog (10 of 15). No official SDKs or MCP server (0). No public packages or CI to measure (0). 0 + 0 + 10 + 0 + 0 = 10.\n- SerpApi (82): Release notes carry dated entries almost daily, the latest on 2 November 2026, and serpapi-python 1.2.0 shipped on 30 October (30). Since 4 August, serpapi-python 1.1.0, 1.1.1, 1.1.2 and 1.2.0, MCP server 1.0.3 and 2.0.0, and serpapi-cli 0.3.0, 0.4.0 and 0.5.0, besides the release notes (20). Release notes run several entries a week and the MCP repo merged a fix on 27 October. Open issues weren't read, since GitHub's pages refuse our reader (12). The MCP server is in the official registry as io.github.serpapi/serpapi-mcp and the Python SDK and CLI are current, but the JavaScript SDK's last release is still 2.2.1 of 26 July 2025 (12). The MCP, Python and CLI repositories run tests in CI; pass state not read (8).\n\n### Schema \u0026 documentation: SerpApi +38\n\n- Mojeek Web Search API (29): No OpenAPI or other machine-readable contract (0). No llms.txt (404) and no Markdown pages for agents (0). The parameters page states what each parameter does, with notes on when not to use `reg` and `clufmt`, but nothing on when another endpoint fits better (12 of 20). Every parameter has a type, defaults and valid ranges (tlen 0 to 127, dlen 0 to 511, rbb and lbb 1 to 100, up to 25 domains), though `reg` is called an enum without listing its values (11 of 15). One curl example and annotated JSON and XML response formats; errors appear only as a `status` string with one example (6 of 15). No API version, changelog or dated release notes, and the quickstart and the parameters page give different hosts (0). 0 + 0 + 12 + 11 + 6 + 0 = 29.\n- SerpApi (67): No OpenAPI or similar spec for the REST API. The MCP server publishes per-engine parameter lists as resources (`serpapi://engines/\u003cengine\u003e`), which we count as a partial contract (10). llms.txt, `pricing.md` and Markdown twins of the docs pages, such as search-api.md (10). Each engine page describes every parameter, and the MCP tool says when to use it but not when not to (14). Parameters list allowed values on the engine pages, but the MCP `search` tool takes one free-form `params` object (7). Examples on every engine page, and a status-and-errors page documents 400, 401, 403, 404, 410, 429 and 5xx with a JSON `error` field (14). Dated release notes with several entries a week, though the API itself isn't versioned (12).\n\n### Security \u0026 auth: SerpApi +25\n\n- Mojeek Web Search API (15): One key per account, documented only as the `api_key` query parameter, and rotation or revocation is by email to the API team (a staff reply of 22 October 2026 on the community forum asks for the key's last 8 digits). One all-powerful key (10) less 10 for the key in the URL (0). Search is read-only and there is nothing to write, but no scoped or restricted key (10 of 20). Results are third-party titles and snippets, with no prompt-injection guidance found (0). No audit log or per-call usage view was found in the docs; the FAQ mentions budget alerts on the account (0 of 15). security.txt names security@mojeek.com, with no Expires field. No bug bounty, disclosure policy, SOC 2 or ISO 27001 found; the API page claims compliance with European rules such as the EU Data Act without a certification (5 of 20). 0 + 10 + 0 + 0 + 5 = 15.\n- SerpApi (40): One account key with no scopes found (10), documented as the `api_key` query parameter on every REST call, and the MCP README leads with the key in the URL path. The hosted MCP also accepts `Authorization: Bearer` (minus 10). Search is read-only and the MCP tool carries read-only annotations, but there's no least-privilege key (15). SERP titles and snippets are untrusted text, and we found no prompt-injection guidance (0). The Search Archive API returns any search from the last 31 days, and the security page says audit logs cover all critical parts of the service (10). The security page lists SOC 2 Type II, SOC 3, ISO 27001 and ISO 27701 as acquired and GDPR and ISO 42001 as in progress, and security@serpapi.com takes reports. serpapi.com/security.txt is valid (expires 1 January 2027), though the /.well-known/ path answers with the HTML security page. No bug bounty or public advisories found (15).\n\n### Agent ergonomics: SerpApi +22\n\n- Mojeek Web Search API (66): Responses can be sized with `t` (up to 10, 40 or 100 results by plan), `tlen`, `dlen` and opt-in date and size fields (22 of 25). `s` for paging, `since` and `before`, `site`, included and excluded domains, region and language boosting and safe search (20). Errors are a free-text `status` with no documented codes, which an agent can't branch on reliably (5 of 20). Searches only read, so a retry is safe, but no page says whether failed or empty requests are billed (12 of 20). Only `q` and `api_key` are required, with recommended values for the boosts. No official SDK in any language (7 of 15). 22 + 20 + 5 + 12 + 7 = 66.\n- SerpApi (88): `json_restrictor` selects fields, `output=md` returns Markdown (the MCP README claims 50 per cent fewer tokens on average) and the MCP `compact` mode drops metadata. One core MCP tool plus two opt-in UI tools (22). `start`, `num`, location, language and engine-specific filters, plus `async` with the Search Archive API (20). Documented status codes and `search_metadata.status` values, though one 429 covers both the hourly limit and an empty balance (14). Searches are read-only, failed and cached searches aren't billed, and the MCP tool sets readOnlyHint true and destructiveHint false (18). Only `q` is required for most engines. llms.txt lists libraries in 11 languages, though the JavaScript one hasn't had a release since July 2025 (14).\n\n### Reliability: SerpApi +20\n\n- Mojeek Web Search API (45): Read with the hosted lines. status.mojeek.com is a Site24x7 StatusIQ page with Search, Website, Blog and Community components. It is drawn by script, so only its RSS feed could be read, which shows each component's current state (Search operational since 7 September 2026) and no incident entries (15 of 20). No readable incident history (5). Rate limits are published per plan, 5 a second and 100,000 a day on Startup, 10 a second and 400,000 a day on Business (15). Over the daily limit the JSON `status` reads 'ERROR: Daily Limit Reached'; no HTTP 429, Retry-After or backoff guidance was found (0). No SLA, and the API terms say the service is provided as is and may be interrupted without notice (0). Generally available, with only the `lr` parameter marked beta (10). 15 + 5 + 15 + 0 + 0 + 10 = 45.\n- SerpApi (65): Atlassian Statuspage at status.serpapi.com, with per-API components and incident history on its history pages and Atom feed (20). Between 4 August and 2 November the history lists 35 incidents active in the window. Two were wide failures that also list the general API component, each over an hour. From 7 to 9 August an outage across 37 Google and Google Light APIs, including Search, left 'a large number of requests' failing or timing out. On 10 September the vendor posted a 'service outage across all of our APIs', with degradation until 17 September. From 6 October a degradation of 15 Google and Google Light APIs, including Search, which the vendor called a 'partial service outage affecting multiple APIs', was still open on 2 November. Like the single-engine incidents, it hit part of the product and counts as minor. Two majors (5). Hourly throughput published per plan, 50 an hour free to 640,000 on Cloud 54M (15). 429 is documented as either the hourly limit or an empty search balance, with no Retry-After or backoff guidance found (5). The terms (updated 27 August 2026) promise a 99.95% SLA on all plans with credits up to 100% (10). GA (10). 20 + 5 + 15 + 5 + 10 + 10 = 65.\n\n### Transparency \u0026 trust: SerpApi +16\n\n- Mojeek Web Search API (68): Closed service with API terms naming Mojeek Limited under English law (15 of 30). The API page states 90-day retention, zero retention on request, no sub-processors and that Mojeek is the processor and the customer the controller, while the API terms say both parties are independent controllers under GDPR, and the privacy policy of 2 February 2022 covers only the website (12 of 30). The terms promise 30 days' notice of material changes and of price changes, but there is no deprecation policy or dated notices (5 of 20). The API page says there are no sub-processors and infrastructure is owned and run in Europe, in a UK data centre per the about page (18 of 20). 15 + 12 + 5 + 18 = 50.\n- SerpApi (84): The API is closed under one terms-and-privacy page, and the MCP server is MIT (18). The legal page and the security page agree that search data is deleted after 31 days, ZeroTrace mode (an enterprise parameter) stores nothing, and a DPA is available on request (26). Deprecations show up as dated release notes, such as eBay's Sold and Completed filters on 28 September 2026, but there's no notice policy, and the terms allow termination without notice (8). Named subprocessors (AWS, Cloudflare, Wasabi, Stripe, Intercom and others) and US hosting with Standard Contractual Clauses (18).\n\n## Score by category\n\n| Category | Weight | Mojeek Web Search API | SerpApi | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 65 | SerpApi +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 29 | 67 | SerpApi +38 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 88 | SerpApi +22 |\n| Security \u0026 auth | 14% (17.5 this run) | 15 | 40 | SerpApi +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 30 | SerpApi +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 10 | 82 | SerpApi +72 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 84 | SerpApi +16 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **36.4 · F** | **63.5 · B** | |\n\n## Facts side by side\n\n| Fact | Mojeek Web Search API | SerpApi |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Mojeek Limited | SerpApi |\n| Hosted endpoint | no (local only) | `https://serpapi.com/search` |\n| Transports |  | HTTP, Streamable HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Pay per use | Freemium |\n| Price for web search | $2.68 per 1,000 requests | $25 per 1,000 requests |\n| x402 | no | no |\n| Tools exposed | 0 | 3 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.serpapi/serpapi-mcp` |\n| Last release | none | 2026-10-30 |\n| Terms last updated | no date given | 2026-08-27 |\n| Privacy policy last updated | 2022-02-02 | 2026-08-27 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | 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 | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 175 stars, 169k npm/wk, 104k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### Mojeek Web Search API\n\nNo score change since it was listed.\n\n### SerpApi\n\n- +1.0 on 2 November 2026: correction\n- -0.1 on 8 October 2026: checklist\n\n## Verdicts\n\n**Mojeek Web Search API.** Mojeek sells search over its own independent index at published per-request prices, with region, language, date and domain controls and storage rights on the Business plan. The key travels only in the URL, rotation is by email, a card is needed to start, and there is no OpenAPI, changelog, 429 handling or SLA.\n\n**SerpApi.** Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November.\n\n## Before you call either\n\n### Mojeek Web Search API\n\n1. Send `fmt=json`, since the default response is XML\n2. Read `response.status` on every call; a daily limit shows as 'ERROR: Daily Limit Reached' rather than an HTTP error\n3. Set `lb`, `lbb`, `rb` and `rbb` as the quickstart recommends, or results lean to no language or region\n4. Keep the key out of logs and shared URLs, since it travels in the query string\n5. On the Startup plan, don't keep results for more than an hour\n\n### SerpApi\n\n1. Use the MCP with `Authorization: Bearer`, not the key-in-path URL the README leads with\n2. Read `serpapi://engines/\u003cengine\u003e` before calling a new engine, since `params` isn't typed\n3. Add `json_restrictor` or `output=md` to cut tokens, and `mode: compact` on the MCP\n4. A 429 means either the hourly limit or an empty balance. Check the account before retrying\n5. Repeat a search within the hour and the cached copy is free. Set `no_cache=true` only when freshness matters\n\n## Questions\n\n### Which is better for AI agents, Mojeek Web Search API or SerpApi?\n\nSerpApi scores 63.5 (B) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in every scored category.\n\n### Which is cheaper for web search, Mojeek Web Search API or SerpApi?\n\nMojeek Web Search API, at $2.68 per 1,000 requests against $25 per 1,000 requests for SerpApi. These are the vendors' published prices for the job.\n\n### Do Mojeek Web Search API and SerpApi need an API key?\n\nBoth need an API key.\n\n### Can an agent call Mojeek Web Search API and SerpApi without installing anything?\n\nNo hosted endpoint is listed for Mojeek Web Search API. SerpApi has a hosted endpoint at https://serpapi.com/search.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/mojeek-vs-serpapi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mojeek-vs-serpapi.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mojeek\", \"b\": \"serpapi\"}`. From a terminal: `anchor compare mojeek serpapi`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mojeek.json and https://www.anchorterminal.com/api/v1/tools/serpapi.json\n\n## Other comparisons with Mojeek Web Search API or SerpApi\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs Mojeek Web Search API](https://www.anchorterminal.com/compare/agentcore-web-search-vs-mojeek.md)\n- [Web Search Tool on Amazon Bedrock AgentCore vs SerpApi](https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpapi.md)\n- [Arcmira vs Mojeek Web Search API](https://www.anchorterminal.com/compare/arcmira-vs-mojeek.md)\n- [Arcmira vs SerpApi](https://www.anchorterminal.com/compare/arcmira-vs-serpapi.md)\n- [Grounding with Bing Search vs Mojeek Web Search API](https://www.anchorterminal.com/compare/bing-grounding-vs-mojeek.md)\n- [Grounding with Bing Search vs SerpApi](https://www.anchorterminal.com/compare/bing-grounding-vs-serpapi.md)\n- [Brave Search API + MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek.md)\n- [Brave Search API + MCP vs SerpApi](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi.md)\n- [Cloudflare Web Search API vs Mojeek Web Search API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek.md)\n- [Cloudflare Web Search API vs SerpApi](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi.md)\n- [DeepSeek Search and Fetch API vs Mojeek Web Search API](https://www.anchorterminal.com/compare/deepseek-search-api-vs-mojeek.md)\n- [DeepSeek Search and Fetch API vs SerpApi](https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpapi.md)\n- [Exa API + MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/exa-mcp-vs-mojeek.md)\n- [Exa API + MCP vs SerpApi](https://www.anchorterminal.com/compare/exa-mcp-vs-serpapi.md)\n- [Firecrawl MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-mojeek.md)\n- [Firecrawl MCP vs SerpApi](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi.md)\n- [Grep AI vs Mojeek Web Search API](https://www.anchorterminal.com/compare/grep-ai-vs-mojeek.md)\n- [Grep AI vs SerpApi](https://www.anchorterminal.com/compare/grep-ai-vs-serpapi.md)\n- [Kagi Search API vs Mojeek Web Search API](https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.md)\n- [Kagi Search API vs SerpApi](https://www.anchorterminal.com/compare/kagi-search-vs-serpapi.md)\n- [Linkup vs Mojeek Web Search API](https://www.anchorterminal.com/compare/linkup-vs-mojeek.md)\n- [Linkup vs SerpApi](https://www.anchorterminal.com/compare/linkup-vs-serpapi.md)\n- [Mojeek Web Search API vs NewsCatcher](https://www.anchorterminal.com/compare/mojeek-vs-newscatcher.md)\n- [Mojeek Web Search API vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/mojeek-vs-parallel-search-api.md)\n- [Mojeek Web Search API vs Perplexity Search API](https://www.anchorterminal.com/compare/mojeek-vs-perplexity-search-api.md)\n- [Mojeek Web Search API vs SearchAPI.io](https://www.anchorterminal.com/compare/mojeek-vs-searchapi-io.md)\n- [Mojeek Web Search API vs Serper](https://www.anchorterminal.com/compare/mojeek-vs-serper.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- [Mojeek Web Search API vs SpecStream](https://www.anchorterminal.com/compare/mojeek-vs-specstream.md)\n- [Mojeek Web Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/mojeek-vs-tavily-mcp.md)\n- [Mojeek Web Search API vs TinyFish Search](https://www.anchorterminal.com/compare/mojeek-vs-tinyfish-search.md)\n- [Mojeek Web Search API vs Valyu](https://www.anchorterminal.com/compare/mojeek-vs-valyu.md)\n- [Mojeek Web Search API vs You.com APIs](https://www.anchorterminal.com/compare/mojeek-vs-you-com-api.md)\n- [Parallel Search and Task APIs vs SerpApi](https://www.anchorterminal.com/compare/parallel-search-api-vs-serpapi.md)\n- [Perplexity Search API vs SerpApi](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi.md)\n- [SearchAPI.io vs SerpApi](https://www.anchorterminal.com/compare/searchapi-io-vs-serpapi.md)\n- [SerpApi vs Serper](https://www.anchorterminal.com/compare/serpapi-vs-serper.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- [SerpApi vs SpecStream](https://www.anchorterminal.com/compare/serpapi-vs-specstream.md)\n- [SerpApi vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.md)\n- [SerpApi vs TinyFish Search](https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search.md)\n- [SerpApi vs Valyu](https://www.anchorterminal.com/compare/serpapi-vs-valyu.md)\n- [SerpApi vs You.com APIs](https://www.anchorterminal.com/compare/serpapi-vs-you-com-api.md)\n- [NewsCatcher vs SerpApi](https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.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": "Mojeek Web Search API vs SerpApi",
        "url": ""
      }
    ],
    "description": "SerpApi scores 63.5 (B) to Mojeek Web Search's 36.4 (F) for web search. Mojeek Web Search is cheaper for web search, $2.68 against $25 per 1,000 requests. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Mojeek Web Search API F 36.4",
      "SerpApi B 63.5",
      "scores"
    ],
    "h1": "Mojeek Web Search API vs SerpApi",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/mojeek-vs-serpapi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mojeek Web Search vs SerpApi for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi"
  },
  "tokens": {
    "markdown": 5500,
    "slim": 3080
  },
  "version": 1
}
