{
  "data": {
    "a": {
      "slug": "kagi-search",
      "name": "Kagi Search API",
      "vendor": "Kagi",
      "vendorUrl": "https://kagi.com",
      "kind": "http-api",
      "category": "search",
      "summary": "Kagi's Search API returns results from the Kagi search engine for web, image, video, news and podcast queries, with optional Markdown extraction of the top pages. It is a paid HTTP API in public preview, with a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/kagi-search",
      "markdownUrl": "https://www.anchorterminal.com/tools/kagi-search.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kagi-search.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kagi-search.json",
      "dns": "kagi-search.grade.anchorterminal.com",
      "repo": "https://github.com/kagisearch/kagimcp",
      "license": "Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://kagi.com/api/v1/search",
      "packages": [
        {
          "registry": "pypi",
          "name": "kagimcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve API key from the portal at kagi.com/api, sent as `Authorization: Bearer \u003ckey\u003e` per the OpenAPI file. Each key can be limited to chosen products and to IP addresses or ranges, and deleted to revoke it. On Family and Team plans only the account owner can open the portal. The hosted MCP server takes the same key as a Bearer header, with no OAuth yet.",
      "pricing": "usage",
      "pricingNotes": "$12 per 1,000 searches and $4 per 1,000 extracted pages, pay as you go, invoiced every 30 days or when usage reaches $100. Prepaid credit and a spending cap are available. No free tier or sandbox. The quick start asks for a Kagi account and a payment method first. Enterprise volume prices are by quote (https://kagi.com/api/pricing, checked 2026-10-09).",
      "priceSummary": "$12 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI file, the API docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 535,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://help.kagi.com/kagi/api/overview.html",
      "openapi": "https://kagi.com/api/docs/_spec/openapi.yaml",
      "capabilities": [
        "web.search",
        "web.fetch",
        "web.extract",
        "search.news",
        "search.images"
      ],
      "tags": [
        "official",
        "hosted",
        "api-key",
        "closed-source",
        "usage-based",
        "openapi",
        "preview",
        "mcp",
        "ip-allowlist",
        "python",
        "typescript",
        "go",
        "rust"
      ],
      "lastRelease": "2026-08-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.1,
        "grade": "C",
        "agentReady": false,
        "rank": 846,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 20,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 41,
          "payments": 20,
          "reliability": 43,
          "schema": 71,
          "security": 64,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "A public OpenAPI file, typed filters and API keys that can be limited by product and IP address make the API simple to call, at $12 per 1,000 searches. It is still a public preview, with no published rate limits and no free allowance, and the terms forbid storing results. Its status page logged only regional incidents since August.",
        "bestFor": "An owner who already pays for Kagi and wants its ranking, lenses and domain rules inside an agent, with page text in the same call.",
        "strengths": [
          "Public OpenAPI 3.0 file for `POST /search` and `POST /extract`, with enums, ranges and request and response examples",
          "Each API key can be limited to chosen products and to IP addresses or ranges, and the billing page sets a spending cap in USD",
          "Per-unit prices are public, $12 per 1,000 searches and $4 per 1,000 extracted pages, with pay-as-you-go billing",
          "Searches can carry an inline lens, domain block, lower, raise and pin rules, date and region filters, and extraction of up to 10 result pages",
          "The privacy policy has an API section with retention periods, and says queries are not stored against the account"
        ],
        "weaknesses": [
          "Public preview since 21 May 2026. The API terms say it is under active development with no uptime or service-level commitment",
          "No rate limit numbers are published, and the status page isn't linked from the docs, pricing, terms or changelog pages we read",
          "No free allowance. The quick start asks for a Kagi account and a payment method before the first call",
          "The API terms forbid storing or caching results beyond transient caching, building datasets from them, and probing or testing Kagi's systems",
          "The last dated API change is the 21 August 2026 Extract fix, and the MCP server's last tag is v0.1.5 of 8 April 2026"
        ],
        "agentNotes": [
          "Send `POST https://kagi.com/api/v1/search` with a JSON body and `Authorization: Bearer \u003ckey\u003e`, as the OpenAPI file defines. Only `query` is required",
          "Set `limit` to cap results returned. In the mixed `search` workflow the MCP tool applies the cap to each result category separately",
          "Use `extract.count` (1 to 10) only when page text is needed. Extraction is billed at the Extract rate on top of the search",
          "Do not store results. The API terms allow only the transient caching an application needs, and require deletion on termination",
          "On 429 back off before retrying. The response covers both rate limiting and an exhausted usage limit, and no `Retry-After` header is documented. Check status.kagi.com for regional incidents"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.1
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 41,
          "payments": 20,
          "reliability": 43,
          "schema": 71,
          "security": 64,
          "transparency": 54
        },
        "provenanceScore": 94,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "uvx kagimcp",
        "http": "curl -X POST https://kagi.com/api/v1/search \\\n  -H \"Authorization: Bearer $KAGI_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"steve jobs\",\"workflow\":\"search\"}'",
        "claudeCode": "claude mcp add kagi https://mcp.kagi.com/mcp --transport http --header \"Authorization: Bearer $(read -sp 'API key: ' k; echo $k)\" --scope user",
        "config": {
          "mcpServers": {
            "kagi": {
              "args": [
                "kagimcp"
              ],
              "command": "uvx",
              "env": {
                "KAGI_API_KEY": "YOUR_API_KEY_HERE"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/kagi-search"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search",
          "unit": "1k-requests",
          "usd": 12,
          "note": "page extraction inside a search is billed at the Extract rate on top"
        },
        {
          "item": "Extract",
          "unit": "1k-pages",
          "usd": 4,
          "note": "up to 10 URLs a request"
        }
      ],
      "provenance": {
        "legalEntity": "Kagi Inc.",
        "domain": "kagi.com",
        "domainRegistered": "1993-11-18",
        "domainNote": "kagi.com was registered in 1993, long before Kagi Inc. was founded in 2018.",
        "endpointOnVendorDomain": true,
        "terms": "https://kagi.com/privacy/api",
        "privacy": "https://kagi.com/privacy",
        "statusPage": "https://status.kagi.com/",
        "changelog": "https://kagi.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-04",
        "notes": [
          "The Kagi API Terms of Service (effective and last updated 22 September 2026) govern the Search API and incorporate the privacy policy and a Data Processing Addendum that is not yet published.",
          "The privacy policy at kagi.com/privacy has a Kagi API section added on 22 September 2026. The same page also holds the general Terms of Service.",
          "The API terms do not name a legal entity. The docs' company page gives Kagi Inc., and the privacy page describes Kagi as a Delaware public benefit corporation.",
          "kagi.com/.well-known/security.txt gives security@kagi.com and a bug bounty with a safe harbour policy, and has no Expires field. It is recorded as valid, although RFC 9116 asks for that field.",
          "status.kagi.com is an Instatus page with Kagi Search, Kagi API, Kagi Translate, Kagi Assistant and Other Services groups and a /history.atom feed. It wasn't found linked from the API docs, pricing, terms or changelog pages; a web search found it on 4 November 2026.",
          "The changelog covers every Kagi product. API entries are a few lines inside those posts.",
          "kagi.com/robots.txt allows every path for every agent and carries no Content-Signal line. help.kagi.com/robots.txt answered 404.",
          "The registration date came from an RDAP lookup on 9 October, a source this run doesn't use. Kept pending the correction pass."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kagi-search.json",
      "live": {
        "slug": "kagi-search",
        "probe": {
          "target": "https://kagi.com/api/v1/search",
          "method": "get",
          "lastAt": "2026-11-07T19:22:14.428884047Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 395,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.99,
          "p50ms24h": 159,
          "p95ms24h": 395,
          "samples24h": 238,
          "samples30d": 7215,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "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": 252
            },
            {
              "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": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "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": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.kagi.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:57.929767418Z"
        },
        "versions": [
          {
            "registry": "pypi",
            "name": "kagimcp",
            "version": "1.1.0",
            "released": "2026-10-28",
            "seenAt": "2026-11-06T23:36:18.273275631Z"
          }
        ],
        "githubStars": 560,
        "pypiWeekly": 907,
        "securityTxt": {
          "url": "https://kagi.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:02:05.625292402Z"
        },
        "domain": {
          "domain": "kagi.com",
          "registered": "1993-11-18",
          "source": "https://rdap.verisign.com/com/v1/domain/kagi.com",
          "checkedAt": "2026-11-01T14:18:50.123684408Z"
        },
        "pages": [
          {
            "url": "https://kagi.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:53.635112538Z",
            "changedAt": "2026-11-06T13:33:57.614071228Z",
            "fingerprint": "b16eae5ff40e"
          },
          {
            "url": "https://kagi.com/api/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:51.560663477Z",
            "changedAt": "2026-10-27T03:48:19.358068766Z",
            "fingerprint": "8e909f92ad50"
          },
          {
            "url": "https://kagi.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:55.90595014Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2bfce4b7e89a"
          },
          {
            "url": "https://kagi.com/privacy/api",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:57.59824854Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5a5c47392cf0"
          }
        ],
        "github": {
          "repo": "kagisearch/kagimcp",
          "checkedAt": "2026-11-02T08:57:55.693015256Z",
          "stars": 557,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-28T13:39:24Z",
          "openIssues": 4,
          "openPRs": 3,
          "issuesOpened90d": 5,
          "issuesClosed90d": 3,
          "prsMerged90d": 1,
          "replies": {
            "sampled": 19,
            "unanswered": 3,
            "medianDays": 5.3
          }
        },
        "updatedAt": "2026-11-07T19:22:14.428884047Z"
      }
    },
    "answer": "Kagi Search API scores 56.1 (C) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in 5 of 7 scored categories.",
    "b": {
      "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": 1387,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 25,
        "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"
      }
    },
    "edges": [
      {
        "by": 49,
        "category": "security",
        "leads": "kagi-search",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Several named keys an account, each limited to chosen products and optionally to IP addresses or ranges, revoked by deleting. The v1 key travels only in the `Authorization` header. No expiry or OAuth (27). The API only reads. Per-key product limits and a spending cap in USD narrow what a leaked key can do (16). Search and Extract return third-party page text, and we found no prompt-injection guidance in the reference, the docs or the MCP README (2). The portal shows use count and last-used time per key and requests and cost per day per API, and every response carries a trace ID. No per-call log (7). security.txt with a contact, a bug bounty with a safe harbour policy, and an independent audit by Illumant cited on the security page, whose date we did not read. No SOC 2 or ISO 27001 statement found. security.txt re-read on 4 November (12). 27 + 16 + 2 + 7 + 12 = 64.",
          "b": "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."
        },
        "scores": {
          "a": 64,
          "b": 15
        }
      },
      {
        "by": 42,
        "category": "schema",
        "leads": "kagi-search",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Public OpenAPI 3.0 file at kagi.com/api/docs/_spec/openapi.yaml, linked as 'OpenAPI Spec' from the API overview page (25). No llms.txt on kagi.com or help.kagi.com, both 404. The docs' Markdown source is in a public GitHub repository, which is not the same as serving it to agents (0). Parameter descriptions say what each does and which option wins when lens, filters and query operators overlap, and the MCP tool says when to pick each workflow (14). Enums for `workflow`, `format`, `time_relative` and rule kinds, ranges on `page`, `limit`, `timeout` and `extract.count`, and one required field. Result `props` and `meta` are open objects (13). Three request examples with full responses and one 401 example. The error envelope is typed, but there is no list of error codes, and the file says its error documentation URLs return 404 for now (9). The path carries `/v1` and v0 is documented as legacy. The changelog is product-wide, with API items on 21 May, 16 June and 21 August 2026 and none in the 10 September or 16 October posts (10). 25 + 0 + 14 + 13 + 9 + 10 = 71.",
          "b": "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."
        },
        "scores": {
          "a": 71,
          "b": 29
        }
      },
      {
        "by": 31,
        "category": "maintenance",
        "leads": "kagi-search",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "The last dated API change is the Extract API fix in the changelog post of 21 August 2026, 75 days before this check. The posts of 10 September and 16 October carry no API item (20). That is the only dated API entry in the 90 days from 6 August (0). The MCP server's repository gained commits on 27 and 28 October 2026 (compact JSON results, `readOnlyHint`, per-page extraction errors) and a version bump to 1.1.0 with no tag, so no release is shown; PyPI didn't resolve for us. A public changelog that credits user reports, developers@kagi.com, a Discord `#api` forum and GitHub discussions. We could not read the issue list, since the GitHub API answered 403 (9). Four generated clients last synced on 26 May 2026, Python tagged only as 1.0.0rc3, TypeScript not on npm on 9 October, and `kagimcp` tagged last as v0.1.5 (8 April 2026). We did not look the server up in the MCP registry (8). The Python client has a generated CI workflow and the MCP server has a lock file but no CI workflow (4). 20 + 0 + 9 + 8 + 4 = 41.",
          "b": "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."
        },
        "scores": {
          "a": 41,
          "b": 10
        }
      },
      {
        "by": 9,
        "category": "ergonomics",
        "leads": "kagi-search",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "`limit` caps results, extraction of page text is opt-in, snippet length follows an account setting, and an experimental Markdown response format exists. The MCP server has two tools (22). `page` 1 to 10, `limit` 1 to 1,024, lens and `filters` for domains, keywords, file type, dates and region (20). Errors return a namespaced `code`, a message, the field `location` and a trace ID, but no code catalogue is published and the linked error pages are not live (12). Both operations are read-only, so a retry is safe, though the docs do not say so and failed-call billing is stated only for extraction. The released MCP server sets no read-only annotations. A commit of 27 October adds `readOnlyHint` to its source with an untagged 1.1.0 version bump, not yet shown as released (10). Only `query` is required and defaults are stated. Generated clients exist for Python, TypeScript, Go and Rust, installable from GitHub. `@kagi/api` returned 404 on npm on 9 October (11). 22 + 20 + 12 + 10 + 11 = 75.",
          "b": "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."
        },
        "scores": {
          "a": 75,
          "b": 66
        }
      },
      {
        "by": 6,
        "category": "transparency",
        "leads": "kagi-search",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with clear API terms dated 22 September 2026. The MCP server is MIT and the OpenAPI file states Apache-2.0 (18). The privacy policy's API section agrees with the API terms. Queries are not stored against the account, load balancer and VM logs are kept 7 days and sampled Sentry errors 90 days. The Data Processing Addendum both documents cite is not yet published (23). v0 is marked deprecated with no end date, and the terms promise reasonable notice of breaking changes only where practicable (5). The privacy page names the payment processors and Sentry, the FAQ names GCP as the hosting provider and the docs name search sources, but there is no subprocessor list and no data locations (8). 18 + 23 + 5 + 8 = 54.",
          "b": "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."
        },
        "scores": {
          "a": 74,
          "b": 68
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Kagi",
        "b": "Mojeek Limited",
        "name": "Vendor"
      },
      {
        "a": "https://kagi.com/api/v1/search",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$12 per 1,000 requests",
        "b": "$2.68 per 1,000 requests",
        "name": "Price for web search"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-21",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-09-22",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2022-02-02",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "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": "535 stars",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Kagi Search API scores 56.1 (C) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Kagi Search API or Mojeek Web Search API?"
      },
      {
        "answer": "Mojeek Web Search API, at $2.68 per 1,000 requests against $12 per 1,000 requests for Kagi Search API. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for web search, Kagi Search API or Mojeek Web Search API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Kagi Search API and Mojeek Web Search API need an API key?"
      },
      {
        "answer": "Kagi Search API has a hosted endpoint at https://kagi.com/api/v1/search. No hosted endpoint is listed for Mojeek Web Search API.",
        "question": "Can an agent call Kagi Search API and Mojeek Web Search API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 71 against 29",
          "Agent ergonomics, 75 against 66",
          "Security \u0026 auth, 64 against 15",
          "Maintenance \u0026 community, 41 against 10",
          "Transparency \u0026 trust, 74 against 68"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine"
        ],
        "goodFor": "An owner who already pays for Kagi and wants its ranking, lenses and domain rules inside an agent, with page text in the same call.",
        "slug": "kagi-search",
        "watchFor": "Public preview since 21 May 2026. The API terms say it is under active development with no uptime or service-level commitment"
      },
      {
        "aheadOn": null,
        "also": [
          "Cheaper for web search, $2.68 against $12 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"
      }
    ],
    "history": {
      "kagi-search": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-04",
          "delta": 7.4,
          "from": 48.7,
          "fromGrade": "D",
          "to": 56.1,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0,
          "from": 48.7,
          "fromGrade": "D",
          "to": 48.7,
          "toGrade": "D"
        }
      ],
      "mojeek": null
    },
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-kagi-search.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-kagi-search"
      },
      {
        "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/arcmira-vs-kagi-search.json",
        "title": "Arcmira vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-kagi-search"
      },
      {
        "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/bing-grounding-vs-kagi-search.json",
        "title": "Grounding with Bing Search vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-kagi-search"
      },
      {
        "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/brave-search-mcp-vs-kagi-search.json",
        "title": "Brave Search API + MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search"
      },
      {
        "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/cloudflare-web-search-vs-kagi-search.json",
        "title": "Cloudflare Web Search API vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search"
      },
      {
        "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/deepseek-search-api-vs-kagi-search.json",
        "title": "DeepSeek Search and Fetch API vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-kagi-search"
      },
      {
        "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/exa-mcp-vs-kagi-search.json",
        "title": "Exa API + MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-kagi-search"
      },
      {
        "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/firecrawl-mcp-vs-kagi-search.json",
        "title": "Firecrawl MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-kagi-search"
      },
      {
        "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/grep-ai-vs-kagi-search.json",
        "title": "Grep AI vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-kagi-search"
      },
      {
        "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/kagi-search-vs-linkup.json",
        "title": "Kagi Search API vs Linkup",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-linkup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.json",
        "title": "Kagi Search API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-parallel-search-api.json",
        "title": "Kagi Search API vs Parallel Search and Task APIs",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-parallel-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-search-api.json",
        "title": "Kagi Search API vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-searchapi-io.json",
        "title": "Kagi Search API vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-searchapi-io"
      },
      {
        "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/kagi-search-vs-serper.json",
        "title": "Kagi Search API vs Serper",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.json",
        "title": "Kagi Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.json",
        "title": "Kagi Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-specstream.json",
        "title": "Kagi Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.json",
        "title": "Kagi Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-tinyfish-search.json",
        "title": "Kagi Search API vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-valyu.json",
        "title": "Kagi Search API vs Valyu",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-you-com-api.json",
        "title": "Kagi Search API vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-you-com-api"
      },
      {
        "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/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-serpapi.json",
        "title": "Mojeek Web Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi"
      },
      {
        "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/fetch-reference-server-vs-kagi-search.json",
        "title": "Fetch (MCP reference server) vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-kagi-search"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "edge": "mojeek",
        "kagi-search": 43,
        "key": "reliability",
        "mojeek": 45,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 42,
        "edge": "kagi-search",
        "kagi-search": 71,
        "key": "schema",
        "mojeek": 29,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "edge": "kagi-search",
        "kagi-search": 75,
        "key": "ergonomics",
        "mojeek": 66,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 49,
        "edge": "kagi-search",
        "kagi-search": 64,
        "key": "security",
        "mojeek": 15,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "kagi-search": 20,
        "key": "payments",
        "mojeek": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 31,
        "edge": "kagi-search",
        "kagi-search": 41,
        "key": "maintenance",
        "mojeek": 10,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 6,
        "edge": "kagi-search",
        "kagi-search": 74,
        "key": "transparency",
        "mojeek": 68,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Kagi Search API scores 56.1 (C) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in 5 of 7 scored categories. Both do web search. Mojeek Web Search API is cheaper for web search, $2.68 against $12 per 1,000 requests.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "kagi-search": "A public OpenAPI file, typed filters and API keys that can be limited by product and IP address make the API simple to call, at $12 per 1,000 searches. It is still a public preview, with no published rate limits and no free allowance, and the terms forbid storing results. Its status page logged only regional incidents since August.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek",
    "json": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.min.md"
  },
  "markdown": "Kagi Search API scores 56.1 (C) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in 5 of 7 scored categories. Both do web search. Mojeek Web Search API is cheaper for web search, $2.68 against $12 per 1,000 requests.\n\n- Kagi Search API: grade C, 56.1/100, rank #846 of 1510. Markdown https://www.anchorterminal.com/tools/kagi-search.md · JSON https://www.anchorterminal.com/api/v1/tools/kagi-search.json\n- Mojeek Web Search API: grade F, 36.4/100, rank #1387 of 1510. Markdown https://www.anchorterminal.com/tools/mojeek.md · JSON https://www.anchorterminal.com/api/v1/tools/mojeek.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 326 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\n\n### Kagi Search API (C)\n\nGood for: An owner who already pays for Kagi and wants its ranking, lenses and domain rules inside an agent, with page text in the same call.\n\nAhead on:\n- Schema \u0026 documentation, 71 against 29\n- Agent ergonomics, 75 against 66\n- Security \u0026 auth, 64 against 15\n- Maintenance \u0026 community, 41 against 10\n- Transparency \u0026 trust, 74 against 68\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n\nWatch for: Public preview since 21 May 2026. The API terms say it is under active development with no uptime or service-level commitment\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 $12 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\n## Why the edge\n\n### Security \u0026 auth: Kagi Search API +49\n\n- Kagi Search API (64): Several named keys an account, each limited to chosen products and optionally to IP addresses or ranges, revoked by deleting. The v1 key travels only in the `Authorization` header. No expiry or OAuth (27). The API only reads. Per-key product limits and a spending cap in USD narrow what a leaked key can do (16). Search and Extract return third-party page text, and we found no prompt-injection guidance in the reference, the docs or the MCP README (2). The portal shows use count and last-used time per key and requests and cost per day per API, and every response carries a trace ID. No per-call log (7). security.txt with a contact, a bug bounty with a safe harbour policy, and an independent audit by Illumant cited on the security page, whose date we did not read. No SOC 2 or ISO 27001 statement found. security.txt re-read on 4 November (12). 27 + 16 + 2 + 7 + 12 = 64.\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\n### Schema \u0026 documentation: Kagi Search API +42\n\n- Kagi Search API (71): Public OpenAPI 3.0 file at kagi.com/api/docs/_spec/openapi.yaml, linked as 'OpenAPI Spec' from the API overview page (25). No llms.txt on kagi.com or help.kagi.com, both 404. The docs' Markdown source is in a public GitHub repository, which is not the same as serving it to agents (0). Parameter descriptions say what each does and which option wins when lens, filters and query operators overlap, and the MCP tool says when to pick each workflow (14). Enums for `workflow`, `format`, `time_relative` and rule kinds, ranges on `page`, `limit`, `timeout` and `extract.count`, and one required field. Result `props` and `meta` are open objects (13). Three request examples with full responses and one 401 example. The error envelope is typed, but there is no list of error codes, and the file says its error documentation URLs return 404 for now (9). The path carries `/v1` and v0 is documented as legacy. The changelog is product-wide, with API items on 21 May, 16 June and 21 August 2026 and none in the 10 September or 16 October posts (10). 25 + 0 + 14 + 13 + 9 + 10 = 71.\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\n### Maintenance \u0026 community: Kagi Search API +31\n\n- Kagi Search API (41): The last dated API change is the Extract API fix in the changelog post of 21 August 2026, 75 days before this check. The posts of 10 September and 16 October carry no API item (20). That is the only dated API entry in the 90 days from 6 August (0). The MCP server's repository gained commits on 27 and 28 October 2026 (compact JSON results, `readOnlyHint`, per-page extraction errors) and a version bump to 1.1.0 with no tag, so no release is shown; PyPI didn't resolve for us. A public changelog that credits user reports, developers@kagi.com, a Discord `#api` forum and GitHub discussions. We could not read the issue list, since the GitHub API answered 403 (9). Four generated clients last synced on 26 May 2026, Python tagged only as 1.0.0rc3, TypeScript not on npm on 9 October, and `kagimcp` tagged last as v0.1.5 (8 April 2026). We did not look the server up in the MCP registry (8). The Python client has a generated CI workflow and the MCP server has a lock file but no CI workflow (4). 20 + 0 + 9 + 8 + 4 = 41.\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\n### Agent ergonomics: Kagi Search API +9\n\n- Kagi Search API (75): `limit` caps results, extraction of page text is opt-in, snippet length follows an account setting, and an experimental Markdown response format exists. The MCP server has two tools (22). `page` 1 to 10, `limit` 1 to 1,024, lens and `filters` for domains, keywords, file type, dates and region (20). Errors return a namespaced `code`, a message, the field `location` and a trace ID, but no code catalogue is published and the linked error pages are not live (12). Both operations are read-only, so a retry is safe, though the docs do not say so and failed-call billing is stated only for extraction. The released MCP server sets no read-only annotations. A commit of 27 October adds `readOnlyHint` to its source with an untagged 1.1.0 version bump, not yet shown as released (10). Only `query` is required and defaults are stated. Generated clients exist for Python, TypeScript, Go and Rust, installable from GitHub. `@kagi/api` returned 404 on npm on 9 October (11). 22 + 20 + 12 + 10 + 11 = 75.\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\n### Transparency \u0026 trust: Kagi Search API +6\n\n- Kagi Search API (74): Closed service with clear API terms dated 22 September 2026. The MCP server is MIT and the OpenAPI file states Apache-2.0 (18). The privacy policy's API section agrees with the API terms. Queries are not stored against the account, load balancer and VM logs are kept 7 days and sampled Sentry errors 90 days. The Data Processing Addendum both documents cite is not yet published (23). v0 is marked deprecated with no end date, and the terms promise reasonable notice of breaking changes only where practicable (5). The privacy page names the payment processors and Sentry, the FAQ names GCP as the hosting provider and the docs name search sources, but there is no subprocessor list and no data locations (8). 18 + 23 + 5 + 8 = 54.\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\n## Score by category\n\n| Category | Weight | Kagi Search API | Mojeek Web Search API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 45 | Mojeek Web Search API +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 29 | Kagi Search API +42 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 66 | Kagi Search API +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 15 | Kagi Search API +49 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 20 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 41 | 10 | Kagi Search API +31 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 68 | Kagi Search API +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **56.1 · C** | **36.4 · F** | |\n\n## Facts side by side\n\n| Fact | Kagi Search API | Mojeek Web Search API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Kagi | Mojeek Limited |\n| Hosted endpoint | `https://kagi.com/api/v1/search` | no (local only) |\n| Transports | HTTP, Streamable HTTP, stdio |  |\n| Auth | API key | API key |\n| Pricing | Pay per use | Pay per use |\n| Price for web search | $12 per 1,000 requests | $2.68 per 1,000 requests |\n| x402 | no | no |\n| Licence | Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0 | none |\n| Tools exposed | none | 0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-08-21 | none |\n| Terms last updated | 2026-09-22 | no date given |\n| Privacy policy last updated | no date given | 2022-02-02 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 535 stars | none |\n\n## How the scores have moved\n\n### Kagi Search API\n\n- +7.4 on 4 November 2026 (D to C): new evidence\n- no change on 27 October 2026: checklist\n\n### Mojeek Web Search API\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Kagi Search API.** A public OpenAPI file, typed filters and API keys that can be limited by product and IP address make the API simple to call, at $12 per 1,000 searches. It is still a public preview, with no published rate limits and no free allowance, and the terms forbid storing results. Its status page logged only regional incidents since August.\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## Before you call either\n\n### Kagi Search API\n\n1. Send `POST https://kagi.com/api/v1/search` with a JSON body and `Authorization: Bearer \u003ckey\u003e`, as the OpenAPI file defines. Only `query` is required\n2. Set `limit` to cap results returned. In the mixed `search` workflow the MCP tool applies the cap to each result category separately\n3. Use `extract.count` (1 to 10) only when page text is needed. Extraction is billed at the Extract rate on top of the search\n4. Do not store results. The API terms allow only the transient caching an application needs, and require deletion on termination\n5. On 429 back off before retrying. The response covers both rate limiting and an exhausted usage limit, and no `Retry-After` header is documented. Check status.kagi.com for regional incidents\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## Questions\n\n### Which is better for AI agents, Kagi Search API or Mojeek Web Search API?\n\nKagi Search API scores 56.1 (C) on agent readiness against Mojeek Web Search API's 36.4 (F), and leads in 5 of 7 scored categories.\n\n### Which is cheaper for web search, Kagi Search API or Mojeek Web Search API?\n\nMojeek Web Search API, at $2.68 per 1,000 requests against $12 per 1,000 requests for Kagi Search API. These are the vendors' published prices for the job.\n\n### Do Kagi Search API and Mojeek Web Search API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Kagi Search API and Mojeek Web Search API without installing anything?\n\nKagi Search API has a hosted endpoint at https://kagi.com/api/v1/search. No hosted endpoint is listed for Mojeek Web Search API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kagi-search\", \"b\": \"mojeek\"}`. From a terminal: `anchor compare kagi-search mojeek`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kagi-search.json and https://www.anchorterminal.com/api/v1/tools/mojeek.json\n\n## Other comparisons with Kagi Search API or Mojeek Web Search API\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs Kagi Search API](https://www.anchorterminal.com/compare/agentcore-web-search-vs-kagi-search.md)\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- [Arcmira vs Kagi Search API](https://www.anchorterminal.com/compare/arcmira-vs-kagi-search.md)\n- [Arcmira vs Mojeek Web Search API](https://www.anchorterminal.com/compare/arcmira-vs-mojeek.md)\n- [Grounding with Bing Search vs Kagi Search API](https://www.anchorterminal.com/compare/bing-grounding-vs-kagi-search.md)\n- [Grounding with Bing Search vs Mojeek Web Search API](https://www.anchorterminal.com/compare/bing-grounding-vs-mojeek.md)\n- [Brave Search API + MCP vs Kagi Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search.md)\n- [Brave Search API + MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek.md)\n- [Cloudflare Web Search API vs Kagi Search API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search.md)\n- [Cloudflare Web Search API vs Mojeek Web Search API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-mojeek.md)\n- [DeepSeek Search and Fetch API vs Kagi Search API](https://www.anchorterminal.com/compare/deepseek-search-api-vs-kagi-search.md)\n- [DeepSeek Search and Fetch API vs Mojeek Web Search API](https://www.anchorterminal.com/compare/deepseek-search-api-vs-mojeek.md)\n- [Exa API + MCP vs Kagi Search API](https://www.anchorterminal.com/compare/exa-mcp-vs-kagi-search.md)\n- [Exa API + MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/exa-mcp-vs-mojeek.md)\n- [Firecrawl MCP vs Kagi Search API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-kagi-search.md)\n- [Firecrawl MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-mojeek.md)\n- [Grep AI vs Kagi Search API](https://www.anchorterminal.com/compare/grep-ai-vs-kagi-search.md)\n- [Grep AI vs Mojeek Web Search API](https://www.anchorterminal.com/compare/grep-ai-vs-mojeek.md)\n- [Kagi Search API vs Linkup](https://www.anchorterminal.com/compare/kagi-search-vs-linkup.md)\n- [Kagi Search API vs NewsCatcher](https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.md)\n- [Kagi Search API vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/kagi-search-vs-parallel-search-api.md)\n- [Kagi Search API vs Perplexity Search API](https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-search-api.md)\n- [Kagi Search API vs SearchAPI.io](https://www.anchorterminal.com/compare/kagi-search-vs-searchapi-io.md)\n- [Kagi Search API vs SerpApi](https://www.anchorterminal.com/compare/kagi-search-vs-serpapi.md)\n- [Kagi Search API vs Serper](https://www.anchorterminal.com/compare/kagi-search-vs-serper.md)\n- [Kagi Search API vs SERPHouse](https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.md)\n- [Kagi Search API vs SerpKite](https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.md)\n- [Kagi Search API vs SpecStream](https://www.anchorterminal.com/compare/kagi-search-vs-specstream.md)\n- [Kagi Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.md)\n- [Kagi Search API vs TinyFish Search](https://www.anchorterminal.com/compare/kagi-search-vs-tinyfish-search.md)\n- [Kagi Search API vs Valyu](https://www.anchorterminal.com/compare/kagi-search-vs-valyu.md)\n- [Kagi Search API vs You.com APIs](https://www.anchorterminal.com/compare/kagi-search-vs-you-com-api.md)\n- [Linkup vs Mojeek Web Search API](https://www.anchorterminal.com/compare/linkup-vs-mojeek.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 SerpApi](https://www.anchorterminal.com/compare/mojeek-vs-serpapi.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- [Fetch (MCP reference server) vs Kagi Search API](https://www.anchorterminal.com/compare/fetch-reference-server-vs-kagi-search.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": "Kagi Search API vs Mojeek Web Search API",
        "url": ""
      }
    ],
    "description": "Kagi Search scores 56.1 (C) to Mojeek Web Search's 36.4 (F) for web search. Mojeek Web Search is cheaper for web search, $2.68 against $12 per 1,000 requests. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kagi Search API C 56.1",
      "Mojeek Web Search API F 36.4",
      "scores"
    ],
    "h1": "Kagi Search API vs Mojeek Web Search API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/kagi-search-vs-mojeek",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kagi Search vs Mojeek Web Search for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek"
  },
  "tokens": {
    "markdown": 5500,
    "slim": 2880
  },
  "version": 1
}
