{
  "data": {
    "a": {
      "slug": "nexscope",
      "name": "Nexscope",
      "vendor": "ECOCREATE TECHNOLOGY PTE. LTD.",
      "vendorUrl": "https://www.nexscope.ai",
      "kind": "platform",
      "category": "web-scrapers",
      "summary": "Nexscope is a hosted platform for ecommerce sellers with marketplace product, keyword and competitor data for Amazon, TikTok Shop, Walmart, Temu, 1688 and others, plus AI product images and video, through a web app, REST API and remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/nexscope",
      "markdownUrl": "https://www.anchorterminal.com/tools/nexscope.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nexscope.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nexscope.json",
      "dns": "nexscope.grade.anchorterminal.com",
      "repo": "https://github.com/nexscope-ai/nexscope-ecommerce-api",
      "license": "Proprietary hosted service under the Nexscope terms (last updated 8 October 2026), whose contracting party is ECOCREATE TECHNOLOGY PTE. LTD. of Singapore. The OpenAPI file's licence is 'Proprietary API; use subject to Nexscope Terms'. In github.com/nexscope-ai/nexscope-ecommerce-api only the example clients, validation scripts, tests and workflow are MIT. The API documentation, catalogue, definitions and sample data stay copyright Nexscope",
      "transports": [
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://api.nexscope.ai/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "The remote MCP server takes OAuth 2.1 (authorisation code with PKCE, scope `mcp:tools`) in clients that support it, or a Nexscope API key as `Authorization: Bearer nk-...`, which the tool pages call a compatibility option. The REST API takes the same key as a Bearer header. A person signs in and creates the key under API Access, API Keys. The full key is shown once, and keys can be expired, disabled or deleted, per the help page's troubleshooting. No key scopes, rotation rule or key-management API were found. Creative API key access needs an active subscription. Trial credits don't enable it. The OAuth metadata on api.nexscope.ai was not read (https://www.nexscope.ai/mcp-map/amazon-search, https://www.nexscope.ai/help/skills-external-access, https://github.com/nexscope-ai/nexscope-ecommerce-api, checked 2026-11-10).",
      "pricing": "paid",
      "pricingNotes": "Credits on a monthly subscription. A Free Trial gives 1,000 credits for 3 days with no card, at 1 API and 1 MCP request a second and 1 concurrent each, with no video API. Starter is $29 a month for 30,000 credits (3 requests a second, 2 concurrent), Growth $55 for 75,000 (5 and 4) and Pro $129 for 150,000 (10 and 8), each half price for the first period, with yearly billing and credits that reset monthly and don't roll over. Pay-as-you-go top-ups buy Data credits only, with no subscription. Each tool has its own credit cost, at least 10 for a Data API call. Amazon Search shows 'from 21 credits per call' and a recent average of 30. Refunds within 7 days if unused, per the terms. The home page listed Growth at $69 on the same day (https://www.nexscope.ai/pricing, https://www.nexscope.ai/mcp-map, https://www.nexscope.ai/terms, checked 2026-11-10).",
      "priceSummary": "$0.001 / credit",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the API quickstart, the MCP map, llms.txt, the visible part of the OpenAPI file or the GitHub repository on 2026-11-10. Credits come from a subscription or a Data top-up after a browser sign-in (https://www.nexscope.ai/pricing).",
        "endpoints": []
      },
      "toolCount": 382,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-10"
      },
      "docsUrl": "https://www.nexscope.ai/api-docs",
      "llmsTxt": "https://www.nexscope.ai/llms.txt",
      "openapi": "https://api.nexscope.ai/openapi.json",
      "registryName": "io.github.nexscope/ecommerce",
      "capabilities": [
        "web.extract",
        "shopping.search",
        "shopping.prices",
        "seo.keywords",
        "seo.backlinks",
        "search.serp",
        "image.generate",
        "image.edit",
        "video.generate",
        "video.image-to-video"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "marketplace",
        "shopping",
        "images",
        "video",
        "credits",
        "subscription",
        "free-trial",
        "no-card",
        "new"
      ],
      "lastRelease": "2026-11-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.2,
        "grade": "D",
        "agentReady": false,
        "rank": 1191,
        "ranked": true,
        "rankOf": 1520,
        "categoryRank": 28,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 44,
          "maintenance": 65,
          "payments": 35,
          "reliability": 39,
          "schema": 64,
          "security": 41,
          "transparency": 41
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-10"
        },
        "negative": 0,
        "verdict": "An agent can reach Amazon, TikTok Shop, Temu, 1688 and other marketplace data, plus image and video models, on one credit balance through a remote MCP server with OAuth or a REST API with a public OpenAPI file. The connection loads 382 tools at once, and there is no status page, changelog or idempotency key.",
        "bestFor": "Agents that research ecommerce products, competitors, keywords, sourcing and patents across Amazon, TikTok Shop, Walmart, Temu, 1688 and other marketplaces, and that also make listing images and video, on one credit balance.",
        "strengths": [
          "Marketplace product, keyword, competitor and sourcing data across more than ten marketplaces behind one key and one MCP endpoint",
          "OAuth 2.1 with PKCE and a `mcp:tools` scope on the MCP server, or a Bearer key shown once",
          "A public OpenAPI 3.1 file and a GitHub repository with request and response definitions, samples and standard-library clients for every documented API",
          "Per-plan API and MCP request limits published, and a 3-day trial of 1,000 credits with no card",
          "1688 order, payment-link, receipt and cancel calls each need an explicit JSON `true` confirmation field"
        ],
        "weaknesses": [
          "The MCP connection advertises the full catalogue of 382 tools, with no toolsets or read-only subset",
          "No status page, SLA, public changelog or security.txt found",
          "No idempotency keys, and business errors answer HTTP 200 unless a header asks otherwise",
          "The privacy policy states no retention periods and names no hosting, AI or data suppliers",
          "Many Data definitions are field descriptors rather than JSON Schema, and the Amazon Search tool page omits the `keyword` argument its own examples pass"
        ],
        "agentNotes": [
          "Check the outer `code` is 0 before reading `data`, or send `X-Nexscope-Http-Status: semantic` to get HTTP error statuses.",
          "Call an image or video tool once, keep the `taskId`, and poll `nexscope_media_task_result`. A second call bills a second job.",
          "Read the tool's credit cost before a call. Each tool costs at least 10 credits and some cost over 300.",
          "Before you set a 1688 confirmation field to `true`, show the user the preview and get approval.",
          "If the server returns 429 or 503, wait for `Retry-After` when present and back off."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 46.2
          }
        ],
        "editorialScores": {
          "ergonomics": 44,
          "maintenance": 65,
          "payments": 35,
          "reliability": 39,
          "schema": 64,
          "security": 41,
          "transparency": 33
        },
        "provenanceScore": 48,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-10",
            "maintenance": "2026-11-10",
            "payments": "2026-11-10",
            "reliability": "2026-11-10",
            "schema": "2026-11-10",
            "security": "2026-11-10",
            "transparency": "2026-11-10"
          },
          "last": "2026-11-10",
          "oldest": "2026-11-10",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl --fail-with-body -X POST 'https://api.nexscope.ai/api/skill-api/v1/skills/amazon-search/run' \\\n  -H \"Authorization: Bearer $NEXSCOPE_API_KEY\" \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-Nexscope-Http-Status: semantic' \\\n  -d '{\"keyword\":\"phone case\",\"page\":1}'",
        "config": {
          "mcpServers": {
            "nexscope": {
              "headers": {
                "Authorization": "Bearer YOUR_NEXSCOPE_API_KEY"
              },
              "type": "streamableHttp",
              "url": "https://api.nexscope.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.extract",
        "tool": "https://letme.dev/nexscope"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Nexscope credit (Starter)",
          "unit": "credit",
          "usd": 0.00097,
          "note": "$29 a month for 30,000 credits, half price in the first month. Credits reset monthly"
        },
        {
          "item": "Nexscope credit (Pro)",
          "unit": "credit",
          "usd": 0.00086,
          "note": "$129 a month for 150,000 credits"
        },
        {
          "item": "Amazon Search tool call (Starter)",
          "unit": "call",
          "usd": 0.029,
          "note": "A recent average of 30 credits, range 16 to 94, per the MCP tool page on 10 November 2026. About 20 results a page"
        },
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 29,
          "note": "30,000 credits, 3 API and 3 MCP requests a second, 2 concurrent each"
        }
      ],
      "provenance": {
        "legalEntity": "ECOCREATE TECHNOLOGY PTE. LTD.",
        "domain": "nexscope.ai",
        "domainRegistered": "2026-03-04",
        "domainNote": "RDAP (Identity Digital) gives nexscope.ai a registration date of 4 March 2026 through GoDaddy, with the registrant behind Domains By Proxy. The terms and privacy policy name ECOCREATE TECHNOLOGY PTE. LTD., 'a company incorporated in Singapore', with no registration number or street address.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.nexscope.ai/terms",
        "privacy": "https://www.nexscope.ai/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-10",
        "notes": [
          "The terms (last updated 8 October 2026) name ECOCREATE TECHNOLOGY PTE. LTD. under the laws of Singapore with SIAC arbitration seated in Singapore, cap liability at the amount paid in the six months before a claim, promise no availability, permit the official APIs and MCP integrations within plan limits, forbid bots and scrapers outside them, and give notice of material changes through the service or by email.",
          "The privacy policy (last updated 8 October 2026) names the same company, says uploaded materials are not used to train AI models, names Google Analytics, Microsoft Clarity, Ahrefs Analytics, Google Ads, X advertising and FirstPromoter, lists hosting, storage, AI processing, payment, email, support and authentication providers only by type, gives no retention periods ('this policy does not specify a single deletion deadline for all data') and mentions no DPA.",
          "https://www.nexscope.ai/.well-known/security.txt answered a client error. No status page or changelog is linked from the home page, llms.txt, the API quickstart or the MCP map.",
          "robots.txt on www.nexscope.ai gives `*` and twelve named crawlers, ClaudeBot among them, the same rules and disallows /api/ and /share/. Nothing there was fetched. api.nexscope.ai publishes no robots.txt (/robots.txt answers a JSON login error). Only /openapi.json and one GET to /mcp were sent there, per the batch. The MCP registry's /robots.txt answered a client error.",
          "firstReleased is 2026-08-07, the date on Nexscope's launch post ('Updated Aug 07, 2026', no earlier publication date shown), which names API, MCP and Skills as the ways to connect an agent and 1,000 free starting credits. The API repository dates its snapshot of an already public directory of 225 APIs to 10 September 2026, and the OpenAPI version label is 2026-08-28-public-catalog-v1. The domain dates from 4 March 2026 and the npm `nexscope` skills CLI from 20 March 2026, but neither reaches the API. lastRelease is 2026-11-09, when the 1688 procurement API contracts were synced as released."
        ],
        "score": 48
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nexscope.json",
      "live": {
        "slug": "nexscope",
        "probe": {
          "target": "https://api.nexscope.ai/mcp",
          "method": "get",
          "lastAt": "2026-11-11T06:59:50.048088824Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 305,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 271,
          "p95ms24h": 358,
          "samples24h": 43,
          "samples30d": 43,
          "days": [
            {
              "date": "2026-11-11",
              "probes": 43,
              "ok": 43
            }
          ],
          "since": "2026-11-11T02:53:20.057234625Z"
        },
        "githubStars": 18,
        "updatedAt": "2026-11-11T06:59:50.048088824Z"
      },
      "streak": {
        "days": 0,
        "from": "2026-11-11",
        "sinceWatching": true,
        "best": 0
      }
    },
    "answer": "Oxylabs Web Scraper API scores 62.9 (B) on agent readiness against Nexscope's 46.2 (D), and leads in every scored category.",
    "b": {
      "slug": "oxylabs-web-scraper",
      "name": "Oxylabs Web Scraper API",
      "vendor": "oxylabs, UAB",
      "vendorUrl": "https://oxylabs.io",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Hosted scraping API from Oxylabs that fetches public pages through its proxy pool with optional JavaScript rendering and returns HTML, Markdown or parsed JSON, with dedicated sources for Google, Amazon and other large sites.",
      "url": "https://www.anchorterminal.com/tools/oxylabs-web-scraper",
      "markdownUrl": "https://www.anchorterminal.com/tools/oxylabs-web-scraper.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/oxylabs-web-scraper.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/oxylabs-web-scraper.json",
      "dns": "oxylabs-web-scraper.grade.anchorterminal.com",
      "repo": "https://github.com/oxylabs/oxylabs-mcp",
      "license": "Proprietary service under the Oxylabs General Conditions. The MCP server and the Python SDK on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://realtime.oxylabs.io/v1/queries",
      "packages": [
        {
          "registry": "pypi",
          "name": "oxylabs"
        },
        {
          "registry": "pypi",
          "name": "oxylabs-mcp"
        },
        {
          "registry": "go",
          "name": "github.com/oxylabs/oxylabs-sdk-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic with the username and password of a product instance created in the Oxylabs dashboard. The password can be edited, an instance can take whitelisted IPs and a spending limit, and no scopes were found. The MCP server (v0.10.0 and later) also accepts a Web Scraper API token as `Authorization: Bearer \u003ctoken\u003e` or `X-Oxylabs-Api-Token`, which the API docs don't yet describe. The hosted MCP server takes the username and password in an `Authorization: Basic` header or in `X-Oxylabs-Username` and `X-Oxylabs-Password`. The Classic overview page says to contact the team for credentials.",
      "pricing": "usage",
      "pricingNotes": "A one-time $5 welcome credit with no payment details, then a monthly plan of $30, $100 or $500 (Enterprise from $2,500) whose amount becomes a credit balance shared across Oxylabs products. On Starter, other targets cost $1.00 per 1,000 results without rendering and $1.50 with it, Amazon $0.50, Google $1.00 or $1.35 rendered, and LLM sources $1.50 (https://oxylabs.io/products/web-api/scrape/pricing, where the old Web Scraper API pricing URL now redirects, checked 2026-11-02). Purchases are non-refundable.",
      "priceSummary": "$30 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the pricing page, the docs index, the Web Scraper API pages or the MCP repository (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 10,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": 17594,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.oxylabs.io/products/web-scraper-api",
      "llmsTxt": "https://developers.oxylabs.io/llms.txt",
      "registryName": "io.oxylabs/oxylabs-mcp",
      "capabilities": [
        "web.scrape",
        "web.extract",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "search.serp"
      ],
      "tags": [
        "hosted",
        "no-card",
        "mcp",
        "llms-txt",
        "proxies",
        "python",
        "go",
        "closed-source",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.9,
        "grade": "B",
        "agentReady": false,
        "rank": 539,
        "ranked": true,
        "rankOf": 1520,
        "categoryRank": 13,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 82,
          "payments": 40,
          "reliability": 75,
          "schema": 68,
          "security": 53,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-03-18. The changelog announced that the `domain` parameter for Google sources was no longer available, with no earlier notice in the changelog. The MCP server's Google search tool still listed `domain` at v0.9.3 (7 September 2026). Three points, since a replacement (`geo_location`) was documented the same day and we could not see whether customers were told by email (https://developers.oxylabs.io/changelog)."
        ],
        "verdict": "Dedicated parsed sources, three integration methods and an official MCP server with four read-only scraping tools, released twice in late October 2026. Since Web API launched on 7 October the docs call it Classic and send new users to sales for credentials, Google's `domain` parameter was removed with notice only on the day, and no OpenAPI document was found.",
        "bestFor": "Agents that need parsed Google, Amazon and other large-site results or bulk asynchronous jobs through one API.",
        "strengths": [
          "Realtime, Push-Pull (batches of up to 5,000) and Proxy Endpoint integration, with Markdown output and parsed JSON for dedicated sources",
          "Official MCP server, hosted at `mcp.oxylabs.io` or run locally, whose four scraping tools carry `readOnlyHint`; v0.10.2 shipped on 29 October 2026",
          "Results with 5xx or 6xx codes and 429 responses are not billed, and faulted jobs can be retried at no cost",
          "ISO/IEC 27001:2022 and a SOC 2 Type 2 report covering Scraper API are listed in the trust centre",
          "Per-plan job rates are published, and each response carries `x-ratelimit` limit and remaining headers"
        ],
        "weaknesses": [
          "Google's `domain` parameter was announced as gone on 18 March 2026 with no earlier changelog notice",
          "No OpenAPI document found. The contract is prose parameter tables and a Postman collection",
          "Relabelled Classic on 7 October 2026 with no end date, its overview sends new users to sales for credentials, and the MCP docs page now covers only Web API",
          "The vulnerability disclosure programme is paused except for critical issues, and no security.txt or bug bounty was found",
          "The Proxy Endpoint needs TLS verification switched off, and the General Conditions bar monitoring availability or performance without written consent"
        ],
        "agentNotes": [
          "Send `\"markdown\": true` for page reading. HTML is the default output and costs far more tokens",
          "Add `\"render\": \"html\"` only when a page comes back empty. Rendered results cost $1.50 per 1,000 against $1.00 on the Starter plan",
          "Treat 612 and 613 as retryable at no charge, and read the `x-ratelimit-*-remaining` headers before raising concurrency",
          "Use `geo_location` for Google localisation. The `domain` parameter was removed in March 2026",
          "Pin `oxylabs-mcp` to 0.10.1 or later. Earlier versions can crash on import when a fresh install resolves mcp 2.x"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.9
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 82,
          "payments": 40,
          "reliability": 75,
          "schema": 68,
          "security": 53,
          "transparency": 42
        },
        "provenanceScore": 85,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install oxylabs",
        "http": "curl 'https://realtime.oxylabs.io/v1/queries' \\\n  --user 'USERNAME:PASSWORD' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"source\": \"universal\", \"url\": \"https://sandbox.oxylabs.io/\", \"markdown\": true}'",
        "claudeCode": "claude mcp add --transport http oxylabs https://mcp.oxylabs.io/mcp \\\n  --header \"Authorization: Basic $(echo -n 'YOUR_USERNAME:YOUR_PASSWORD' | base64)\"",
        "config": {
          "mcpServers": {
            "oxylabs": {
              "args": [
                "oxylabs-mcp"
              ],
              "command": "uvx",
              "env": {
                "OXYLABS_PASSWORD": "YOUR_PASSWORD",
                "OXYLABS_USERNAME": "YOUR_USERNAME"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/oxylabs-web-scraper"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 30,
          "note": "Credit balance shared across Oxylabs products, expires each cycle, VAT may apply"
        },
        {
          "item": "Other targets without rendering, Starter",
          "unit": "1k-requests",
          "usd": 1,
          "note": "Per 1,000 billable results"
        },
        {
          "item": "Other targets with JavaScript rendering, Starter",
          "unit": "1k-requests",
          "usd": 1.5,
          "note": "Per 1,000 billable results"
        },
        {
          "item": "Amazon without rendering, Starter",
          "unit": "1k-requests",
          "usd": 0.5,
          "note": "Per 1,000 billable results"
        },
        {
          "item": "Google without rendering, Starter",
          "unit": "1k-requests",
          "usd": 1,
          "note": "$1.35 with rendering"
        }
      ],
      "provenance": {
        "legalEntity": "oxylabs, UAB",
        "domain": "oxylabs.io",
        "domainRegistered": "2015-11-30",
        "endpointOnVendorDomain": true,
        "terms": "https://oxylabs.io/legal/v1-oxylabs-general-conditions",
        "privacy": "https://oxylabs.io/legal/privacy",
        "statusPage": "https://uptime.oxylabs.io",
        "changelog": "https://developers.oxylabs.io/changelog",
        "securityTxt": "none",
        "checked": "2026-11-02",
        "notes": [
          "The General Conditions of the oxylabs, UAB Services Agreement name a Lithuanian company registered at Švitrigailos str. 32, Vilnius, and were last updated on 5 October 2026. They are linked from the trust centre, not from the site footer.",
          "The privacy policy was last reviewed on 22 October 2026 and does not name the controlling entity. It covers registration and self-service use as well as the website.",
          "https://oxylabs.io/.well-known/security.txt returns 404. The vulnerability disclosure policy gives security@oxylabs.io and says the programme is paused except for critical issues.",
          "RDAP gives a registration date of 2015-11-30 for oxylabs.io.",
          "The API answers on realtime.oxylabs.io and data.oxylabs.io, and the hosted MCP server on mcp.oxylabs.io."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/oxylabs-web-scraper.json",
      "live": {
        "slug": "oxylabs-web-scraper",
        "probe": {
          "target": "https://realtime.oxylabs.io/v1/queries",
          "method": "get",
          "lastAt": "2026-11-11T06:59:52.544199646Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 135,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.94,
          "p50ms24h": 110,
          "p95ms24h": 182,
          "samples24h": 244,
          "samples30d": 7731,
          "days": [
            {
              "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": 246
            },
            {
              "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": 249
            },
            {
              "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": 243,
              "ok": 243
            },
            {
              "date": "2026-11-08",
              "probes": 243,
              "ok": 243
            },
            {
              "date": "2026-11-09",
              "probes": 243,
              "ok": 243
            },
            {
              "date": "2026-11-10",
              "probes": 244,
              "ok": 244
            },
            {
              "date": "2026-11-11",
              "probes": 72,
              "ok": 72
            }
          ],
          "outages": [
            {
              "start": "2026-10-28T06:38:25.688447591Z",
              "end": "2026-10-28T06:55:00.16149851Z",
              "note": "timed out"
            }
          ],
          "since": "2026-10-09T00:00:00Z"
        },
        "vendorStatus": {
          "page": "https://uptime.oxylabs.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-11T06:55:47.391901058Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "oxylabs/oxylabs-mcp",
            "version": "v0.10.2",
            "released": "2026-10-29",
            "seenAt": "2026-11-11T06:24:50.909798993Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.oxylabs/oxylabs-mcp",
            "version": "0.10.2",
            "seenAt": "2026-11-10T19:22:02.357354042Z"
          },
          {
            "registry": "pypi",
            "name": "oxylabs",
            "version": "3.0.0",
            "released": "2026-03-09",
            "seenAt": "2026-11-11T06:24:48.828392415Z"
          },
          {
            "registry": "pypi",
            "name": "oxylabs-mcp",
            "version": "0.10.2",
            "released": "2026-10-29",
            "seenAt": "2026-11-11T06:24:49.004213401Z"
          }
        ],
        "githubStars": 105,
        "pypiWeekly": 27731,
        "securityTxt": {
          "url": "https://oxylabs.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-10T16:09:15.459844934Z"
        },
        "llmsTxt": {
          "url": "https://developers.oxylabs.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-10T15:44:13.284750927Z"
        },
        "domain": {
          "domain": "oxylabs.io",
          "checkedAt": "2026-11-08T15:06:53.668756093Z"
        },
        "pages": [
          {
            "url": "https://developers.oxylabs.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-10T16:15:02.497906964Z",
            "changedAt": "2026-11-10T16:15:02.497906964Z",
            "fingerprint": "279aa34d0e2f"
          },
          {
            "url": "https://oxylabs.io/products/scraper-api/web/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-02T07:22:07.650729126Z",
            "changedAt": "2026-10-28T04:39:54.019970924Z",
            "fingerprint": "b1734b60f0b1"
          },
          {
            "url": "https://oxylabs.io/products/web-api/scrape/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-10T16:27:01.513450736Z",
            "changedAt": "2026-11-10T16:27:01.513450736Z",
            "fingerprint": "a9c237da66ab"
          },
          {
            "url": "https://oxylabs.io/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-10T16:26:56.655594546Z",
            "changedAt": "2026-11-10T16:26:56.655594546Z",
            "fingerprint": "da113bbbca15"
          },
          {
            "url": "https://oxylabs.io/legal/v1-oxylabs-general-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-10T16:26:59.044249014Z",
            "changedAt": "2026-11-10T16:26:59.044249014Z",
            "fingerprint": "5fd29e850348"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.oxylabs.io/mcp",
          "checkedAt": "2026-11-11T02:43:26.249776838Z",
          "status": "ok",
          "protocol": "2025-11-25",
          "tools": [
            {
              "name": "ai_crawler",
              "description": "Tool useful for crawling a website from starting url and returning data in a specified format.\n\nSchema is required only if output_format is json, csv or toon.\n'render_javascript' is used to render javascript heavy websites.\n'return_sources_limit' is used to limit the number of sources to return,\nfor example if you expect results from single source, you can set it to 1.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Two letter ISO country code to use for the crawl proxy."
                  },
                  "output_format": {
                    "default": "markdown",
                    "description": "The format of the output. If json, csv or toon, the schema is required. Markdown returns full text of the page. CSV returns data in CSV format. Toon(Token-Oriented Object Notation) returns data in Toon format, which is optimized for AI agents.",
                    "enum": [
                      "json",
                      "markdown",
                      "csv",
                      "toon"
                    ],
                    "type": "string"
                  },
                  "render_javascript": {
                    "default": false,
                    "description": "Whether to render the HTML of the page using javascript. Much slower, therefore use it only for websites that require javascript to render the page. Unless user asks to use it, first try to crawl the page without it. If results are unsatisfactory, try to use it.",
                    "type": "boolean"
                  },
                  "return_sources_limit": {
                    "default": 25,
                    "description": "The maximum number of sources to return.",
                    "maximum": 50,
                    "type": "integer"
                  },
                  "schema": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "The JSON schema to use for structured data extraction from the crawled pages. Only required if output_format is json, csv or toon."
                  },
                  "url": {
                    "description": "The URL from which crawling will be started.",
                    "type": "string"
                  },
                  "user_prompt": {
                    "description": "What information user wants to extract from the domain.",
                    "type": "string"
                  }
                },
                "required": [
                  "url",
                  "user_prompt"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "ai_scraper",
              "description": "Scrape the contents of the web page and return the data in the specified format.\n\nSchema is required only if output_format is json or csv.\n'render_javascript' is used to render javascript heavy websites.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Two letter ISO country code to use for the scrape proxy."
                  },
                  "output_format": {
                    "default": "markdown",
                    "description": "The format of the output. If json, csv or toon, the schema is required. Markdown returns full text of the page. CSV returns data in CSV format, tabular like data. Toon(Token-Oriented Object Notation) returns data in Toon format, which is optimized for AI agents.",
                    "enum": [
                      "json",
                      "markdown",
                      "csv",
                      "toon"
                    ],
                    "type": "string"
                  },
                  "render_javascript": {
                    "default": false,
                    "description": "Whether to render the HTML of the page using javascript. Much slower, therefore use it only for websites that require javascript to render the page.Unless user asks to use it, first try to scrape the page without it. If results are unsatisfactory, try to use it.",
                    "type": "boolean"
                  },
                  "schema": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "The JSON schema to use for structured data extraction from the scraped page. Only required if output_format is json, csv or toon."
                  },
                  "url": {
                    "description": "The URL to scrape",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "ai_browser_agent",
              "description": "Run the browser agent and return the data in the specified format.\n\nThis tool is useful if you need navigate around the website and do some actions.\nIt allows navigating to any url, clicking on links, filling forms, scrolling, etc.\nFinally it returns the data in the specified format.\nSchema is required only if output_format is json, csv or toon.\n'task_prompt' describes what browser agent should achieve",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Two letter ISO country code to use for the browser proxy."
                  },
                  "output_format": {
                    "default": "markdown",
                    "description": "The output format. Markdown returns full text of the page including links. Toon(Token-Oriented Object Notation) returns data in Toon format, which is optimized for AI agents. If json, csv or toon, the schema is required.",
                    "enum": [
                      "json",
                      "markdown",
                      "html",
                      "csv",
                      "toon"
                    ],
                    "type": "string"
                  },
                  "schema": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "The schema to use for the scrape. Only required if output_format is json, csv or toon."
                  },
                  "task_prompt": {
                    "description": "What browser agent should do.",
                    "type": "string"
                  },
                  "url": {
                    "description": "The URL to start the browser agent navigation from.",
                    "type": "string"
                  }
                },
                "required": [
                  "url",
                  "task_prompt"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "ai_search",
              "description": "Search the web based on a provided query.\n\n'return_content' is used to return markdown content for each search result. If 'return_content'\n    is set to True, you don't need to use ai_scraper to get the content of the search results urls,\n    because it is already included in the search results.\nif 'return_content' is set to True, prefer lower 'limit' to reduce payload size.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Two letter ISO country code to use for the search proxy."
                  },
                  "limit": {
                    "default": 10,
                    "description": "Maximum number of results to return.",
                    "maximum": 50,
                    "type": "integer"
                  },
                  "query": {
                    "description": "The query to search for.",
                    "type": "string"
                  },
                  "render_javascript": {
                    "default": false,
                    "description": "Whether to render the HTML of the page using javascript. Much slower, therefore use it only if user asks to use it.First try to search with setting it to False. ",
                    "type": "boolean"
                  },
                  "return_content": {
                    "default": false,
                    "description": "Whether to return markdown content of the search results.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "generate_schema",
              "description": "Generate a json schema in openapi format.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "app_name": {
                    "enum": [
                      "ai_crawler",
                      "ai_scraper",
                      "browser_agent"
                    ],
                    "type": "string"
                  },
                  "user_prompt": {
                    "type": "string"
                  }
                },
                "required": [
                  "user_prompt",
                  "app_name"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "ai_map",
              "description": "Tool useful for mapping website's URLs.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "allow_external_domains": {
                    "default": false,
                    "description": "Whether to include external domains URLs.",
                    "type": "boolean"
                  },
                  "allow_subdomains": {
                    "default": false,
                    "description": "Whether to map subdomains URLs as well.",
                    "type": "boolean"
                  },
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Two letter ISO country code to use for the mapping proxy."
                  },
                  "limit": {
                    "default": 25,
                    "description": "The maximum number of URLs to return.",
                    "maximum": 50,
                    "type": "integer"
                  },
                  "max_crawl_depth": {
                    "default": 1,
                    "description": "The maximum depth of the crawl.",
                    "maximum": 5,
                    "type": "integer"
                  },
                  "render_javascript": {
                    "default": false,
                    "description": "Whether to render the HTML of the page using javascript. Much slower, therefore use it only for websites that require javascript to render the page. Unless user asks to use it, first try to crawl the page without it. If results are unsatisfactory, try to use it.",
                    "type": "boolean"
                  },
                  "search_keywords": {
                    "anyOf": [
                      {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "The keywords to use for URLs paths filtering. Keywords are matched as OR condition. Meaning, one keyword is enough to match the url path."
                  },
                  "url": {
                    "description": "The URL from which URLs mapping will be started.",
                    "type": "string"
                  },
                  "user_prompt": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "What kind of URLs user wants to find. Can be used together with 'search_keywords'."
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "universal_scraper",
              "description": "Get a content of any webpage.\n\nSupports browser rendering, parsing of certain webpages\nand different output formats.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The geographical location that the result should be adapted for.\n        Use ISO-3166 country codes.\n        Examples:\n            - 'California, United States'\n            - 'Mexico'\n            - 'US' for United States\n            - 'DE' for Germany\n            - 'FR' for France\n        ",
                    "examples": [
                      "US",
                      "DE",
                      "FR"
                    ]
                  },
                  "output_format": {
                    "anyOf": [
                      {
                        "enum": [
                          "links",
                          "md",
                          "html"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The format of the output. Works only when parse parameter is false.\n            - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website.\n            - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process.\n            - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.\n        "
                  },
                  "render": {
                    "anyOf": [
                      {
                        "const": "html",
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Whether a headless browser should be used to render the page.\n        For example:\n            - 'html' when browser is required to render the page.\n        ",
                    "examples": [
                      "html"
                    ]
                  },
                  "url": {
                    "description": "Website url to scrape.",
                    "type": "string"
                  },
                  "user_agent_type": {
                    "anyOf": [
                      {
                        "enum": [
                          "desktop",
                          "desktop_chrome",
                          "desktop_firefox",
                          "desktop_safari",
                          "desktop_edge",
                          "desktop_opera",
                          "mobile",
                          "mobile_ios",
                          "mobile_android",
                          "tablet"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Device type and browser that will be used to determine User-Agent header value."
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "google_search_scraper",
              "description": "Scrape Google Search results.\n\nSupports content parsing, different user agent types, pagination,\ndomain, geolocation, locale parameters and different output formats.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "ad_mode": {
                    "default": false,
                    "description": "If true will use the Google Ads source optimized for the paid ads.",
                    "type": "boolean"
                  },
                  "domain": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Domain localization for Google.\n        Use country top level domains.\n        For example:\n            - 'co.uk' for United Kingdom\n            - 'us' for United States\n            - 'fr' for France\n        ",
                    "examples": [
                      "uk",
                      "us",
                      "fr"
                    ]
                  },
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The geographical location that the result should be adapted for.\n        Use ISO-3166 country codes.\n        Examples:\n            - 'California, United States'\n            - 'Mexico'\n            - 'US' for United States\n            - 'DE' for Germany\n            - 'FR' for France\n        ",
                    "examples": [
                      "US",
                      "DE",
                      "FR"
                    ]
                  },
                  "limit": {
                    "default": 0,
                    "description": "Number of results to retrieve in each page.",
                    "type": "integer"
                  },
                  "locale": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Set 'Accept-Language' header value which changes your Google search page web interface language.\n        Examples:\n            - 'en-US' for English, United States\n            - 'de-AT' for German, Austria\n            - 'fr-FR' for French, France\n        ",
                    "examples": [
                      "en-US",
                      "de-AT",
                      "fr-FR"
                    ]
                  },
                  "output_format": {
                    "anyOf": [
                      {
                        "enum": [
                          "links",
                          "md",
                          "html"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The format of the output. Works only when parse parameter is false.\n            - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website.\n            - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process.\n            - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.\n        "
                  },
                  "pages": {
                    "default": 0,
                    "description": "Number of pages to retrieve.",
                    "type": "integer"
                  },
                  "parse": {
                    "default": true,
                    "description": "Should result be parsed. If the result is not parsed, the output_format parameter is applied.",
                    "type": "boolean"
                  },
                  "query": {
                    "description": "URL-encoded keyword to search for.",
                    "type": "string"
                  },
                  "render": {
                    "anyOf": [
                      {
                        "const": "html",
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Whether a headless browser should be used to render the page.\n        For example:\n            - 'html' when browser is required to render the page.\n        ",
                    "examples": [
                      "html"
                    ]
                  },
                  "start_page": {
                    "default": 0,
                    "description": "Starting page number.",
                    "type": "integer"
                  },
                  "user_agent_type": {
                    "anyOf": [
                      {
                        "enum": [
                          "desktop",
                          "desktop_chrome",
                          "desktop_firefox",
                          "desktop_safari",
                          "desktop_edge",
                          "desktop_opera",
                          "mobile",
                          "mobile_ios",
                          "mobile_android",
                          "tablet"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Device type and browser that will be used to determine User-Agent header value."
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "amazon_search_scraper",
              "description": "Scrape Amazon search results.\n\nSupports content parsing, different user agent types, pagination,\ndomain, geolocation, locale parameters and different output formats.\nSupports Amazon specific parameters such as category id, merchant id, currency.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "category_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Search for items in a particular browse node (product category)."
                  },
                  "currency": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Currency that will be used to display the prices.",
                    "examples": [
                      "USD",
                      "EUR",
                      "AUD"
                    ]
                  },
                  "domain": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Domain localization for Google.\n        Use country top level domains.\n        For example:\n            - 'co.uk' for United Kingdom\n            - 'us' for United States\n            - 'fr' for France\n        ",
                    "examples": [
                      "uk",
                      "us",
                      "fr"
                    ]
                  },
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The geographical location that the result should be adapted for.\n        Use ISO-3166 country codes.\n        Examples:\n            - 'California, United States'\n            - 'Mexico'\n            - 'US' for United States\n            - 'DE' for Germany\n            - 'FR' for France\n        ",
                    "examples": [
                      "US",
                      "DE",
                      "FR"
                    ]
                  },
                  "locale": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Set 'Accept-Language' header value which changes your Google search page web interface language.\n        Examples:\n            - 'en-US' for English, United States\n            - 'de-AT' for German, Austria\n            - 'fr-FR' for French, France\n        ",
                    "examples": [
                      "en-US",
                      "de-AT",
                      "fr-FR"
                    ]
                  },
                  "merchant_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Search for items sold by a particular seller."
                  },
                  "output_format": {
                    "anyOf": [
                      {
                        "enum": [
                          "links",
                          "md",
                          "html"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The format of the output. Works only when parse parameter is false.\n            - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website.\n            - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process.\n            - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.\n        "
                  },
                  "pages": {
                    "default": 0,
                    "description": "Number of pages to retrieve.",
                    "type": "integer"
                  },
                  "parse": {
                    "default": true,
                    "description": "Should result be parsed. If the result is not parsed, the output_format parameter is applied.",
                    "type": "boolean"
                  },
                  "query": {
                    "description": "Keyword to search for.",
                    "type": "string"
                  },
                  "render": {
                    "anyOf": [
                      {
                        "const": "html",
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Whether a headless browser should be used to render the page.\n        For example:\n            - 'html' when browser is required to render the page.\n        ",
                    "examples": [
                      "html"
                    ]
                  },
                  "start_page": {
                    "default": 0,
                    "description": "Starting page number.",
                    "type": "integer"
                  },
                  "user_agent_type": {
                    "anyOf": [
                      {
                        "enum": [
                          "desktop",
                          "desktop_chrome",
                          "desktop_firefox",
                          "desktop_safari",
                          "desktop_edge",
                          "desktop_opera",
                          "mobile",
                          "mobile_ios",
                          "mobile_android",
                          "tablet"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Device type and browser that will be used to determine User-Agent header value."
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            },
            {
              "name": "amazon_product_scraper",
              "description": "Scrape Amazon products.\n\nSupports content parsing, different user agent types, domain,\ngeolocation, locale parameters and different output formats.\nSupports Amazon specific parameters such as currency and getting\nmore accurate pricing data with auto select variant.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "autoselect_variant": {
                    "default": false,
                    "description": "To get accurate pricing/buybox data, set this parameter to true.",
                    "type": "boolean"
                  },
                  "currency": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Currency that will be used to display the prices.",
                    "examples": [
                      "USD",
                      "EUR",
                      "AUD"
                    ]
                  },
                  "domain": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Domain localization for Google.\n        Use country top level domains.\n        For example:\n            - 'co.uk' for United Kingdom\n            - 'us' for United States\n            - 'fr' for France\n        ",
                    "examples": [
                      "uk",
                      "us",
                      "fr"
                    ]
                  },
                  "geo_location": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The geographical location that the result should be adapted for.\n        Use ISO-3166 country codes.\n        Examples:\n            - 'California, United States'\n            - 'Mexico'\n            - 'US' for United States\n            - 'DE' for Germany\n            - 'FR' for France\n        ",
                    "examples": [
                      "US",
                      "DE",
                      "FR"
                    ]
                  },
                  "locale": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Set 'Accept-Language' header value which changes your Google search page web interface language.\n        Examples:\n            - 'en-US' for English, United States\n            - 'de-AT' for German, Austria\n            - 'fr-FR' for French, France\n        ",
                    "examples": [
                      "en-US",
                      "de-AT",
                      "fr-FR"
                    ]
                  },
                  "output_format": {
                    "anyOf": [
                      {
                        "enum": [
                          "links",
                          "md",
                          "html"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        The format of the output. Works only when parse parameter is false.\n            - links - Most efficient when the goal is navigation or finding specific URLs. Use this first when you need to locate a specific page within a website.\n            - md - Best for extracting and reading visible content once you've found the right page. Use this to get structured content that's easy to read and process.\n            - html - Should be used sparingly only when you need the raw HTML structure, JavaScript code, or styling information.\n        "
                  },
                  "parse": {
                    "default": true,
                    "description": "Should result be parsed. If the result is not parsed, the output_format parameter is applied.",
                    "type": "boolean"
                  },
                  "query": {
                    "description": "Keyword to search for.",
                    "type": "string"
                  },
                  "render": {
                    "anyOf": [
                      {
                        "const": "html",
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\n        Whether a headless browser should be used to render the page.\n        For example:\n            - 'html' when browser is required to render the page.\n        ",
                    "examples": [
                      "html"
                    ]
                  },
                  "user_agent_type": {
                    "anyOf": [
                      {
                        "enum": [
                          "desktop",
                          "desktop_chrome",
                          "desktop_firefox",
                          "desktop_safari",
                          "desktop_edge",
                          "desktop_opera",
                          "mobile",
                          "mobile_ios",
                          "mobile_android",
                          "tablet"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Device type and browser that will be used to determine User-Agent header value."
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "readOnlyHint": true
              }
            }
          ],
          "schemaTokens": 5608,
          "changedAt": "2026-11-07T01:46:36.940166658Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 5608,
            "counts": {
              "error": 0,
              "note": 0,
              "warn": 1
            },
            "findings": [
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "generate_schema",
                "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."
              }
            ]
          }
        },
        "github": {
          "repo": "oxylabs/oxylabs-mcp",
          "checkedAt": "2026-11-09T10:50:00.005253677Z",
          "stars": 104,
          "archived": true,
          "issuesEnabled": true,
          "pushedAt": "2026-11-05T08:42:21Z",
          "openIssues": 2,
          "openPRs": 0,
          "issuesOpened90d": 1,
          "issuesClosed90d": 0,
          "prsMerged90d": 9,
          "ci": {
            "branch": "main",
            "runs": 29,
            "success": 28,
            "failure": 1,
            "other": 0,
            "latest": "failure",
            "latestAt": "2026-11-05T08:43:01Z"
          },
          "replies": {
            "sampled": 5,
            "unanswered": 2,
            "medianDays": 8.2
          }
        },
        "updatedAt": "2026-11-11T06:59:52.544199646Z"
      },
      "streak": {
        "days": 14,
        "from": "2026-10-28",
        "last": {
          "kind": "outage",
          "date": "2026-10-28",
          "what": "timed out",
          "lasted": "16 minutes"
        },
        "best": 19
      }
    },
    "edges": [
      {
        "by": 36,
        "category": "reliability",
        "leads": "oxylabs-web-scraper",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines, graded on the remote MCP server and the REST API at api.nexscope.ai. No status page is linked from the home page, llms.txt, the API quickstart or the MCP map, and none was found (0). With no page there is no incident history to read (5). The pricing page publishes requests a second and concurrency per plan, the same for API and MCP, with 1 and 1 on the trial, 3 and 2 on Starter, 5 and 4 on Growth, 10 and 8 on Pro (15). The quickstart calls 429 an 'execution admission rate limit' and says to honour `Retry-After` on 429 and 503 when present. No idempotency key exists. The repository says 'Do not blindly retry POST requests' and to check whether a task was created before resubmitting, and the MCP tool pages say a reconnecting client should query existing async work rather than resubmit. SoldFetch earned 15 with idempotency keys and SandBase 11 with keys on some writes, so guidance without keys earns 9 (9 of 15). No SLA, and the terms say 'We cannot guarantee the Service will be available at all times' (0). No beta or preview label on the API or the MCP server (10). 0+5+15+9+0+10 = 39.",
          "b": "Graded on the Web Scraper API (Classic) surface. Status page at uptime.oxylabs.io on incident.io with separate components for Scraper APIs Push-Pull and Real-Time (20). Its feed lists two incidents since 4 August 2026, a Datacenter Proxies outage on 13 August that doesn't touch this API and, on 26 October, 12 minutes (05:34 to 05:46 on the page's clock) on both Scraper API components and Web Unblocker. The page labels it a full outage, but its own text says users \"may experience degraded performance, intermittent errors, or timeouts\", so we read it as partial and minor (20 of 30). Job rates per plan are published, from 10 a second on the free trial to 100 on Business and Corporate, with rendered-job limits (15). 429 is not billed, responses carry `x-ratelimit` limit and remaining headers, and 612 and 613 faults can be retried at no cost. No Retry-After or backoff guidance was found for this API (10 of 15). No SLA is published. The General Conditions promise reasonable efforts (0). Generally available (10)."
        },
        "scores": {
          "a": 39,
          "b": 75
        }
      },
      {
        "by": 35,
        "category": "ergonomics",
        "leads": "oxylabs-web-scraper",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Read on the MCP server, with the REST API where a line covers it. The MCP map lists 382 tools and says the category manifests 'narrow metadata for your integration; the MCP connection still advertises the full catalog'. That is more than 30 tools with no toolsets, dynamic loading or read-only subset found (5). Search tools page by `page` (about 20 results), with filters such as marketplace, category node, sort and device per tool, but no general pagination model or field selection, and output size depends on each tool (12 of 20). By default business errors answer HTTP 200 with an outer `code`. The `X-Nexscope-Http-Status: semantic` header maps them to HTTP statuses, the OpenAPI file names codes such as `DATA_IMAGE_DOWNLOAD_FAILED` and `CAPABILITY_BACKEND_UNAVAILABLE` in field text, and MCP errors aren't documented. SandBase earned 16 with typed bridge errors (11 of 20). Data calls only read. No idempotency keys and no readOnlyHint or destructiveHint documented. Async jobs return a `taskId` with a poll tool and a rule not to resubmit, and 1688 order, payment-link, receipt and cancel calls need an explicit JSON `true` confirmation (8 of 20). Few required parameters with defaults on most. No official SDK package, only standard-library clients in the repository for JavaScript and Python, which SoldFetch earned 8 for (8 of 15). 5+12+11+8+8 = 44.",
          "b": "The MCP server lists 10 tools, four for this API and six for AI Studio, and the REST API can return Markdown or parsed JSON in place of HTML (22 of 25). `start_page`, `pages` and `limit` on search sources, custom parsing instructions and a result aggregator (16 of 20). Documented HTTP codes with messages, a `parse_status_code` per parsed result and job statuses, but errors are prose messages with no stable code field (14 of 20). All tools carry `readOnlyHint`, faulted jobs are not billed and Push-Pull results can be re-read by job ID for 24 hours. No idempotency key (14 of 20). Only `source` and a URL or query are required, with official SDKs for Python and Go (13 of 15)."
        },
        "scores": {
          "a": 44,
          "b": 79
        }
      },
      {
        "by": 23,
        "category": "transparency",
        "leads": "oxylabs-web-scraper",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The editorial half. The service is closed. The terms (8 October 2026) name ECOCREATE TECHNOLOGY PTE. LTD. under Singapore law with no registration number or address. The repository's MIT licence covers client code only, and the documentation and definitions stay copyright Nexscope. Scrapewise earned 15 for closed terms with MIT side code (15 of 30). The privacy policy (8 October 2026) says uploads are not used to train AI models and that connected selling-partner data is deleted or de-identified when no longer needed, but 'this policy does not specify a single deletion deadline for all data', and no DPA was found. SandBase took 12 with no retention periods (10 of 30). No deprecation policy or dated notices. The terms promise notice of material changes before they take effect where practicable, and the MCP map keeps a legacy v1 beside v2 (3 of 20). Analytics and advertising vendors are named (Google Analytics, Microsoft Clarity, Ahrefs, Google Ads, X, FirstPromoter), but hosting, AI processing and payment providers only by type, with no data locations. The repository's source notes say supplier references 'are presented as Nexscope', so the data suppliers go unnamed except LinkFox Agent for 1688 authorisation (5 of 20). 15+10+3+5 = 33. The provenance half is computed from the provenance block.",
          "b": "Closed service under public General Conditions naming oxylabs, UAB of Vilnius, still last updated 5 October 2026, with MIT clients (15 of 30). The privacy policy was last reviewed on 22 October 2026 and still doesn't name the controller or say anything about scraped content. Clause 4.3.9 of the General Conditions lets Oxylabs keep data gathered through Web API and Web Unblocker and use it at its discretion, and it is unclear whether Web API there includes this Classic API. A DPA is published and Push-Pull results are kept for at least 24 hours (14 of 30). No deprecation policy. Removals appear in the changelog on the day they take effect, and the General Conditions give 14 days' notice of contract changes (6 of 20). The DPA says the sub-processor list is available on request. The privacy policy names some vendors, and data locations are given only as the EEA and the US (7 of 20)."
        },
        "scores": {
          "a": 41,
          "b": 64
        }
      },
      {
        "by": 17,
        "category": "maintenance",
        "leads": "oxylabs-web-scraper",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a closed service with a public documentation repository. The repository synced the released 1688 procurement contracts on 9 November 2026 and committed again on 10 November (30). No releases or changelog. The dated record is the registry's four versions on 14 and 16 October, repository commits on 8, 9, 20 and 29 October and 2, 9 and 10 November, and source notes dating WooCommerce (29 October) and design search (2 November) additions. SoldFetch earned 10 for dated commits without releases (10 of 20). No public changelog. Support is service@nexscope.ai, WhatsApp and a booked call, untested. The repository's one merged pull request came from the organisation itself, and GitHub's API refused us, so issues weren't read (5 of 15). The official MCP registry lists `io.github.nexscope/ecommerce`, active, latest 1.0.3 of 16 October 2026, read first-hand (15). A CI workflow runs offline catalogue validation and unit tests on standard-library clients with no dependencies. The run results weren't read (5 of 10). 30+10+5+15+5 = 65.",
          "b": "The newest release is MCP server v0.10.2 on 29 October 2026, which changes how the client is reported in request headers, after v0.10.0 on 15 October added API-token sign-in (30). In the 90 days from 4 August, MCP releases v0.9.0 and v0.9.1 (10 August), v0.9.2 (14 August), v0.9.3 (7 September), v0.10.0 and v0.10.2, with v0.10.1 (28 October, dependency caps only) counted half, and four changelog entries tagged for this API (11, 17, 20 and 24 August) (20). Dated public changelog, support by email and round-the-clock live chat per the docs. GitHub issues were unread because github.com refused us (10 of 15). The MCP server is in the official registry as `io.oxylabs/oxylabs-mcp`, now at 0.10.2 (published 29 October), and official Python and Go SDKs exist (15). The MCP repository runs lint and test workflows. The Python SDK's last release is still 3.0.0 on 9 March 2026 and the Go SDK's 1.0.0 on 6 September 2024 (7 of 10)."
        },
        "scores": {
          "a": 65,
          "b": 82
        }
      },
      {
        "by": 12,
        "category": "security",
        "leads": "oxylabs-web-scraper",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "The MCP server takes OAuth 2.1 with PKCE and one scope, `mcp:tools`, per the tool pages, or a Bearer `nk-` API key. Keys are created by a person under API Access, shown once, and can be expired, disabled or deleted, with no scopes or rotation found. The OAuth metadata on api.nexscope.ai wasn't read. No query-string key option was found. Manifold earned 22 with OAuth and hashed keys whose storage it documents (20 of 30). Most tools read. Writes exist (1688 procurement on the user's own buyer account, Amazon Ads entity operations through an owned connection, paid generation jobs), and the 1688 calls need an explicit JSON `true` per action after a preview, with the guide saying to get the user's approval first. Credits cap spend. No read-only key or tool allowlist (12 of 20). Tools return third-party listings, reviews, social posts and web pages, and no prompt-injection guidance was found. Manifold, the closest marketing-data MCP, took 0 (0). The Account credits and Account usage APIs, `costToken` in data responses and credits charged on task results give per-call visibility. No key-level audit was found (9 of 15). security.txt answered a client error. No disclosure policy, bug bounty or certification found (0 of 20). 20+12+0+9+0 = 41.",
          "b": "A username and password per product instance over HTTP Basic, with an editable password, optional IP whitelisting and several instances per account. The MCP server's v0.10.0 (15 October 2026) adds Web Scraper API tokens sent as a Bearer header, but the API docs still describe only the username and password, and no scopes were found (20 of 30). The Proxy Endpoint puts the pair in the proxy URL and needs TLS verification switched off, which we note without the query-string deduction. Scraping is read-only apart from POST requests to targets, callbacks and uploads to the customer's bucket, each instance can take a spending limit that disables it, and every MCP tool is marked read-only (10 of 20). No guidance on untrusted page content was found in the Web Scraper API docs, the MCP README or the agent skill (2 of 15). `GET /v2/stats` and the dashboard report usage by day and source, and jobs accept client notes. No per-request access log was found (7 of 15). ISO/IEC 27001:2022, SOC 2 Type 2 for Scraper API and yearly penetration tests per the trust centre (per the 8 October check, not re-read on 2 November). The disclosure programme is still paused except for critical issues sent to security@oxylabs.io, security.txt returns 404 and no bug bounty was found. That is above the 12 given for certification claims with no disclosure route (fireworks-inference, people-data-labs), because a route for critical issues and penetration tests are published (14 of 20)."
        },
        "scores": {
          "a": 41,
          "b": 53
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "oxylabs-web-scraper",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 on pricing, the quickstart, the MCP map, llms.txt or the visible OpenAPI paths. Credits come from a subscription or a Data top-up (0). Plans and credits per plan are public without a login ($29 for 30,000, $55 for 75,000, $129 for 150,000), and tool pages show credits per call, such as Amazon Search from 21 credits with a recent average of 30. Many tools on the MCP map list no cost and pricing is marked 'dynamic-credits'. Manifold earned 20 with a cost for every tool (15 of 20). A Free Trial of 1,000 credits for 3 days with 'No credit card required', API and MCP limits included. Creative API keys need a subscription (20). A person signs in through the browser to approve OAuth or create a key, and no keyless or programmatic route was found (0). 0+15+20+0 = 35.",
          "b": "No x402, MPP or L402 (0). Per-1,000-result prices by target and plan are public, now on the Web API /Scrape pricing page that the old Web Scraper API pricing URL redirects to, at the same Starter rates (20). A one-time $5 welcome credit needs no payment details (20). A person registers in the dashboard and creates the product instance (0). The Classic overview page still says to contact the team for credentials, so the trial route for this surface is unconfirmed."
        },
        "scores": {
          "a": 35,
          "b": 40
        }
      }
    ],
    "facts": [
      {
        "a": "Platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "ECOCREATE TECHNOLOGY PTE. LTD.",
        "b": "oxylabs, UAB",
        "name": "Vendor"
      },
      {
        "a": "https://api.nexscope.ai/mcp",
        "b": "https://realtime.oxylabs.io/v1/queries",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under the Nexscope terms (last updated 8 October 2026), whose contracting party is ECOCREATE TECHNOLOGY PTE. LTD. of Singapore. The OpenAPI file's licence is 'Proprietary API; use subject to Nexscope Terms'. In github.com/nexscope-ai/nexscope-ecommerce-api only the example clients, validation scripts, tests and workflow are MIT. The API documentation, catalogue, definitions and sample data stay copyright Nexscope",
        "b": "Proprietary service under the Oxylabs General Conditions. The MCP server and the Python SDK on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "382",
        "b": "10",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.nexscope/ecommerce",
        "b": "io.oxylabs/oxylabs-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-09",
        "b": "2026-10-29",
        "name": "Last release"
      },
      {
        "a": "not read yet",
        "b": "2026-10-05",
        "name": "Terms last updated"
      },
      {
        "a": "not read yet",
        "b": "2024-10-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "18k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Oxylabs Web Scraper API scores 62.9 (B) on agent readiness against Nexscope's 46.2 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, Nexscope or Oxylabs Web Scraper API?"
      },
      {
        "answer": "Yes. Nexscope has a hosted endpoint at https://api.nexscope.ai/mcp and Oxylabs Web Scraper API at https://realtime.oxylabs.io/v1/queries.",
        "question": "Can an agent call Nexscope and Oxylabs Web Scraper API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Oxylabs Web Scraper API loses 3 points for them"
        ],
        "goodFor": "Agents that research ecommerce products, competitors, keywords, sourcing and patents across Amazon, TikTok Shop, Walmart, Temu, 1688 and other marketplaces, and that also make listing images and video, on one credit balance.",
        "slug": "nexscope",
        "watchFor": "The MCP connection advertises the full catalogue of 382 tools, with no toolsets or read-only subset"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 39",
          "Agent ergonomics, 79 against 44",
          "Security \u0026 auth, 53 against 41",
          "Payments \u0026 pricing, 40 against 35",
          "Maintenance \u0026 community, 82 against 65",
          "Transparency \u0026 trust, 64 against 41"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Agents that need parsed Google, Amazon and other large-site results or bulk asynchronous jobs through one API.",
        "slug": "oxylabs-web-scraper",
        "watchFor": "Google's `domain` parameter was announced as gone on 18 March 2026 with no earlier changelog notice"
      }
    ],
    "history": {
      "nexscope": null,
      "oxylabs-web-scraper": [
        {
          "causes": [
            "reliability",
            "product"
          ],
          "date": "2026-11-02",
          "delta": -0.2,
          "from": 63.1,
          "fromGrade": "B",
          "to": 62.9,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 63,
          "fromGrade": "B",
          "to": 63.1,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "web.extract",
      "name": "Extraction"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apify-mcp-vs-oxylabs-web-scraper.json",
        "title": "Apify MCP Server vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/apify-mcp-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bright-data-vs-oxylabs-web-scraper.json",
        "title": "Bright Data vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/bright-data-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browseract-vs-oxylabs-web-scraper.json",
        "title": "BrowserAct vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/browseract-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/context-dev-vs-oxylabs-web-scraper.json",
        "title": "Context.dev vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/context-dev-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crawl4ai-vs-oxylabs-web-scraper.json",
        "title": "Crawl4AI vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/crawl4ai-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-oxylabs-web-scraper.json",
        "title": "fastCRW vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/crw-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decodo-vs-oxylabs-web-scraper.json",
        "title": "Decodo Web Data API vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/decodo-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jevcrawl-vs-oxylabs-web-scraper.json",
        "title": "jevcrawl vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/jevcrawl-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jina-reader-vs-oxylabs-web-scraper.json",
        "title": "Jina Reader vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/jina-reader-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microlink-vs-oxylabs-web-scraper.json",
        "title": "Microlink vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/microlink-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/olostep-vs-oxylabs-web-scraper.json",
        "title": "Olostep vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/olostep-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/outcrawl-vs-oxylabs-web-scraper.json",
        "title": "Outcrawl vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/outcrawl-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrape-do.json",
        "title": "Oxylabs Web Scraper API vs Scrape.do",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrape-do"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapegraphai.json",
        "title": "Oxylabs Web Scraper API vs ScrapeGraphAI",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapegraphai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeless.json",
        "title": "Oxylabs Web Scraper API vs Scrapeless",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeless"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeops.json",
        "title": "Oxylabs Web Scraper API vs ScrapeOps Proxy API Aggregator",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeops"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi.json",
        "title": "Oxylabs Web Scraper API vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapewise.json",
        "title": "Oxylabs Web Scraper API vs Scrapewise",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapewise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapfly.json",
        "title": "Oxylabs Web Scraper API vs Scrapfly",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapfly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingant.json",
        "title": "Oxylabs Web Scraper API vs ScrapingAnt",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingbee.json",
        "title": "Oxylabs Web Scraper API vs ScrapingBee",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingbee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingdog.json",
        "title": "Oxylabs Web Scraper API vs Scrapingdog",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-spider-cloud.json",
        "title": "Oxylabs Web Scraper API vs Spider",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-spider-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-webscraping-ai.json",
        "title": "Oxylabs Web Scraper API vs WebScraping.AI",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-webscraping-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows.json",
        "title": "Oxylabs Web Scraper API vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zyte.json",
        "title": "Oxylabs Web Scraper API vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zyte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browseract-vs-nexscope.json",
        "title": "BrowserAct vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/browseract-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/context-dev-vs-nexscope.json",
        "title": "Context.dev vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/context-dev-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crawl4ai-vs-nexscope.json",
        "title": "Crawl4AI vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/crawl4ai-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-nexscope.json",
        "title": "fastCRW vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/crw-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decodo-vs-nexscope.json",
        "title": "Decodo Web Data API vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/decodo-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-nexscope.json",
        "title": "Diffbot vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.json",
        "title": "Diffbot vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-nexscope.json",
        "title": "Firecrawl MCP vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-oxylabs-web-scraper.json",
        "title": "Firecrawl MCP vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jevcrawl-vs-nexscope.json",
        "title": "jevcrawl vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/jevcrawl-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microlink-vs-nexscope.json",
        "title": "Microlink vs Nexscope",
        "url": "https://www.anchorterminal.com/compare/microlink-vs-nexscope"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-olostep.json",
        "title": "Nexscope vs Olostep",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-olostep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-outcrawl.json",
        "title": "Nexscope vs Outcrawl",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-outcrawl"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-printfriendly-mcp.json",
        "title": "Nexscope vs PrintFriendly MCP server",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-printfriendly-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-qovia.json",
        "title": "Nexscope vs Qovia",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-qovia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapeatlas.json",
        "title": "Nexscope vs ScrapeAtlas",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapeatlas"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapegraphai.json",
        "title": "Nexscope vs ScrapeGraphAI",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapegraphai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapeops.json",
        "title": "Nexscope vs ScrapeOps Proxy API Aggregator",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapeops"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scraperapi.json",
        "title": "Nexscope vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapewise.json",
        "title": "Nexscope vs Scrapewise",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapewise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapfly.json",
        "title": "Nexscope vs Scrapfly",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapfly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapingant.json",
        "title": "Nexscope vs ScrapingAnt",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapingant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapingbee.json",
        "title": "Nexscope vs ScrapingBee",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapingbee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-scrapingdog.json",
        "title": "Nexscope vs Scrapingdog",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-scrapingdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-soldfetch.json",
        "title": "Nexscope vs SoldFetch",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-soldfetch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-spider-cloud.json",
        "title": "Nexscope vs Spider",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-spider-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-webscraping-ai.json",
        "title": "Nexscope vs WebScraping.AI",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-webscraping-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-zenrows.json",
        "title": "Nexscope vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nexscope-vs-zyte.json",
        "title": "Nexscope vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/nexscope-vs-zyte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-qovia.json",
        "title": "Oxylabs Web Scraper API vs Qovia",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-qovia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeatlas.json",
        "title": "Oxylabs Web Scraper API vs ScrapeAtlas",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeatlas"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-soldfetch.json",
        "title": "Oxylabs Web Scraper API vs SoldFetch",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-soldfetch"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 36,
        "edge": "oxylabs-web-scraper",
        "key": "reliability",
        "name": "Reliability",
        "nexscope": 39,
        "oxylabs-web-scraper": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "oxylabs-web-scraper",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nexscope": 64,
        "oxylabs-web-scraper": 68,
        "weight": 13
      },
      {
        "by": 35,
        "edge": "oxylabs-web-scraper",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nexscope": 44,
        "oxylabs-web-scraper": 79,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "oxylabs-web-scraper",
        "key": "security",
        "name": "Security \u0026 auth",
        "nexscope": 41,
        "oxylabs-web-scraper": 53,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "oxylabs-web-scraper",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nexscope": 35,
        "oxylabs-web-scraper": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 17,
        "edge": "oxylabs-web-scraper",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nexscope": 65,
        "oxylabs-web-scraper": 82,
        "weight": 7
      },
      {
        "by": 23,
        "edge": "oxylabs-web-scraper",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nexscope": 41,
        "oxylabs-web-scraper": 64,
        "weight": 7
      }
    ],
    "summary": "Oxylabs Web Scraper API scores 62.9 (B) on agent readiness against Nexscope's 46.2 (D), and leads in every scored category. Both do extraction.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "nexscope": "An agent can reach Amazon, TikTok Shop, Temu, 1688 and other marketplace data, plus image and video models, on one credit balance through a remote MCP server with OAuth or a REST API with a public OpenAPI file. The connection loads 382 tools at once, and there is no status page, changelog or idempotency key.",
      "oxylabs-web-scraper": "Dedicated parsed sources, three integration methods and an official MCP server with four read-only scraping tools, released twice in late October 2026. Since Web API launched on 7 October the docs call it Classic and send new users to sales for credentials, Google's `domain` parameter was removed with notice only on the day, and no OpenAPI document was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper",
    "json": "https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper.min.md"
  },
  "markdown": "Oxylabs Web Scraper API scores 62.9 (B) on agent readiness against Nexscope's 46.2 (D), and leads in every scored category. Both do extraction.\n\n- Nexscope: grade D, 46.2/100, rank #1191 of 1520. Markdown https://www.anchorterminal.com/tools/nexscope.md · JSON https://www.anchorterminal.com/api/v1/tools/nexscope.json\n- Oxylabs Web Scraper API: grade B, 62.9/100, rank #539 of 1520. Markdown https://www.anchorterminal.com/tools/oxylabs-web-scraper.md · JSON https://www.anchorterminal.com/api/v1/tools/oxylabs-web-scraper.json\n- Best web scraping and crawling APIs for AI agents: https://www.anchorterminal.com/best/web-scrapers/index.md\n- All 533 scrapers comparisons: https://www.anchorterminal.com/compare/web-scrapers/index.md\n\n## Which one, for what\n\n### Nexscope (D)\n\nGood for: Agents that research ecommerce products, competitors, keywords, sourcing and patents across Amazon, TikTok Shop, Walmart, Temu, 1688 and other marketplaces, and that also make listing images and video, on one credit balance.\n\nAlso in its favour:\n- No incidents deducted, where Oxylabs Web Scraper API loses 3 points for them\n\nWatch for: The MCP connection advertises the full catalogue of 382 tools, with no toolsets or read-only subset\n\n### Oxylabs Web Scraper API (B)\n\nGood for: Agents that need parsed Google, Amazon and other large-site results or bulk asynchronous jobs through one API.\n\nAhead on:\n- Reliability, 75 against 39\n- Agent ergonomics, 79 against 44\n- Security \u0026 auth, 53 against 41\n- Payments \u0026 pricing, 40 against 35\n- Maintenance \u0026 community, 82 against 65\n- Transparency \u0026 trust, 64 against 41\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Google's `domain` parameter was announced as gone on 18 March 2026 with no earlier changelog notice\n\n\n## Why the edge\n\n### Reliability: Oxylabs Web Scraper API +36\n\n- Nexscope (39): Hosted lines, graded on the remote MCP server and the REST API at api.nexscope.ai. No status page is linked from the home page, llms.txt, the API quickstart or the MCP map, and none was found (0). With no page there is no incident history to read (5). The pricing page publishes requests a second and concurrency per plan, the same for API and MCP, with 1 and 1 on the trial, 3 and 2 on Starter, 5 and 4 on Growth, 10 and 8 on Pro (15). The quickstart calls 429 an 'execution admission rate limit' and says to honour `Retry-After` on 429 and 503 when present. No idempotency key exists. The repository says 'Do not blindly retry POST requests' and to check whether a task was created before resubmitting, and the MCP tool pages say a reconnecting client should query existing async work rather than resubmit. SoldFetch earned 15 with idempotency keys and SandBase 11 with keys on some writes, so guidance without keys earns 9 (9 of 15). No SLA, and the terms say 'We cannot guarantee the Service will be available at all times' (0). No beta or preview label on the API or the MCP server (10). 0+5+15+9+0+10 = 39.\n- Oxylabs Web Scraper API (75): Graded on the Web Scraper API (Classic) surface. Status page at uptime.oxylabs.io on incident.io with separate components for Scraper APIs Push-Pull and Real-Time (20). Its feed lists two incidents since 4 August 2026, a Datacenter Proxies outage on 13 August that doesn't touch this API and, on 26 October, 12 minutes (05:34 to 05:46 on the page's clock) on both Scraper API components and Web Unblocker. The page labels it a full outage, but its own text says users \"may experience degraded performance, intermittent errors, or timeouts\", so we read it as partial and minor (20 of 30). Job rates per plan are published, from 10 a second on the free trial to 100 on Business and Corporate, with rendered-job limits (15). 429 is not billed, responses carry `x-ratelimit` limit and remaining headers, and 612 and 613 faults can be retried at no cost. No Retry-After or backoff guidance was found for this API (10 of 15). No SLA is published. The General Conditions promise reasonable efforts (0). Generally available (10).\n\n### Agent ergonomics: Oxylabs Web Scraper API +35\n\n- Nexscope (44): Read on the MCP server, with the REST API where a line covers it. The MCP map lists 382 tools and says the category manifests 'narrow metadata for your integration; the MCP connection still advertises the full catalog'. That is more than 30 tools with no toolsets, dynamic loading or read-only subset found (5). Search tools page by `page` (about 20 results), with filters such as marketplace, category node, sort and device per tool, but no general pagination model or field selection, and output size depends on each tool (12 of 20). By default business errors answer HTTP 200 with an outer `code`. The `X-Nexscope-Http-Status: semantic` header maps them to HTTP statuses, the OpenAPI file names codes such as `DATA_IMAGE_DOWNLOAD_FAILED` and `CAPABILITY_BACKEND_UNAVAILABLE` in field text, and MCP errors aren't documented. SandBase earned 16 with typed bridge errors (11 of 20). Data calls only read. No idempotency keys and no readOnlyHint or destructiveHint documented. Async jobs return a `taskId` with a poll tool and a rule not to resubmit, and 1688 order, payment-link, receipt and cancel calls need an explicit JSON `true` confirmation (8 of 20). Few required parameters with defaults on most. No official SDK package, only standard-library clients in the repository for JavaScript and Python, which SoldFetch earned 8 for (8 of 15). 5+12+11+8+8 = 44.\n- Oxylabs Web Scraper API (79): The MCP server lists 10 tools, four for this API and six for AI Studio, and the REST API can return Markdown or parsed JSON in place of HTML (22 of 25). `start_page`, `pages` and `limit` on search sources, custom parsing instructions and a result aggregator (16 of 20). Documented HTTP codes with messages, a `parse_status_code` per parsed result and job statuses, but errors are prose messages with no stable code field (14 of 20). All tools carry `readOnlyHint`, faulted jobs are not billed and Push-Pull results can be re-read by job ID for 24 hours. No idempotency key (14 of 20). Only `source` and a URL or query are required, with official SDKs for Python and Go (13 of 15).\n\n### Transparency \u0026 trust: Oxylabs Web Scraper API +23\n\n- Nexscope (41): The editorial half. The service is closed. The terms (8 October 2026) name ECOCREATE TECHNOLOGY PTE. LTD. under Singapore law with no registration number or address. The repository's MIT licence covers client code only, and the documentation and definitions stay copyright Nexscope. Scrapewise earned 15 for closed terms with MIT side code (15 of 30). The privacy policy (8 October 2026) says uploads are not used to train AI models and that connected selling-partner data is deleted or de-identified when no longer needed, but 'this policy does not specify a single deletion deadline for all data', and no DPA was found. SandBase took 12 with no retention periods (10 of 30). No deprecation policy or dated notices. The terms promise notice of material changes before they take effect where practicable, and the MCP map keeps a legacy v1 beside v2 (3 of 20). Analytics and advertising vendors are named (Google Analytics, Microsoft Clarity, Ahrefs, Google Ads, X, FirstPromoter), but hosting, AI processing and payment providers only by type, with no data locations. The repository's source notes say supplier references 'are presented as Nexscope', so the data suppliers go unnamed except LinkFox Agent for 1688 authorisation (5 of 20). 15+10+3+5 = 33. The provenance half is computed from the provenance block.\n- Oxylabs Web Scraper API (64): Closed service under public General Conditions naming oxylabs, UAB of Vilnius, still last updated 5 October 2026, with MIT clients (15 of 30). The privacy policy was last reviewed on 22 October 2026 and still doesn't name the controller or say anything about scraped content. Clause 4.3.9 of the General Conditions lets Oxylabs keep data gathered through Web API and Web Unblocker and use it at its discretion, and it is unclear whether Web API there includes this Classic API. A DPA is published and Push-Pull results are kept for at least 24 hours (14 of 30). No deprecation policy. Removals appear in the changelog on the day they take effect, and the General Conditions give 14 days' notice of contract changes (6 of 20). The DPA says the sub-processor list is available on request. The privacy policy names some vendors, and data locations are given only as the EEA and the US (7 of 20).\n\n### Maintenance \u0026 community: Oxylabs Web Scraper API +17\n\n- Nexscope (65): Read as a closed service with a public documentation repository. The repository synced the released 1688 procurement contracts on 9 November 2026 and committed again on 10 November (30). No releases or changelog. The dated record is the registry's four versions on 14 and 16 October, repository commits on 8, 9, 20 and 29 October and 2, 9 and 10 November, and source notes dating WooCommerce (29 October) and design search (2 November) additions. SoldFetch earned 10 for dated commits without releases (10 of 20). No public changelog. Support is service@nexscope.ai, WhatsApp and a booked call, untested. The repository's one merged pull request came from the organisation itself, and GitHub's API refused us, so issues weren't read (5 of 15). The official MCP registry lists `io.github.nexscope/ecommerce`, active, latest 1.0.3 of 16 October 2026, read first-hand (15). A CI workflow runs offline catalogue validation and unit tests on standard-library clients with no dependencies. The run results weren't read (5 of 10). 30+10+5+15+5 = 65.\n- Oxylabs Web Scraper API (82): The newest release is MCP server v0.10.2 on 29 October 2026, which changes how the client is reported in request headers, after v0.10.0 on 15 October added API-token sign-in (30). In the 90 days from 4 August, MCP releases v0.9.0 and v0.9.1 (10 August), v0.9.2 (14 August), v0.9.3 (7 September), v0.10.0 and v0.10.2, with v0.10.1 (28 October, dependency caps only) counted half, and four changelog entries tagged for this API (11, 17, 20 and 24 August) (20). Dated public changelog, support by email and round-the-clock live chat per the docs. GitHub issues were unread because github.com refused us (10 of 15). The MCP server is in the official registry as `io.oxylabs/oxylabs-mcp`, now at 0.10.2 (published 29 October), and official Python and Go SDKs exist (15). The MCP repository runs lint and test workflows. The Python SDK's last release is still 3.0.0 on 9 March 2026 and the Go SDK's 1.0.0 on 6 September 2024 (7 of 10).\n\n### Security \u0026 auth: Oxylabs Web Scraper API +12\n\n- Nexscope (41): The MCP server takes OAuth 2.1 with PKCE and one scope, `mcp:tools`, per the tool pages, or a Bearer `nk-` API key. Keys are created by a person under API Access, shown once, and can be expired, disabled or deleted, with no scopes or rotation found. The OAuth metadata on api.nexscope.ai wasn't read. No query-string key option was found. Manifold earned 22 with OAuth and hashed keys whose storage it documents (20 of 30). Most tools read. Writes exist (1688 procurement on the user's own buyer account, Amazon Ads entity operations through an owned connection, paid generation jobs), and the 1688 calls need an explicit JSON `true` per action after a preview, with the guide saying to get the user's approval first. Credits cap spend. No read-only key or tool allowlist (12 of 20). Tools return third-party listings, reviews, social posts and web pages, and no prompt-injection guidance was found. Manifold, the closest marketing-data MCP, took 0 (0). The Account credits and Account usage APIs, `costToken` in data responses and credits charged on task results give per-call visibility. No key-level audit was found (9 of 15). security.txt answered a client error. No disclosure policy, bug bounty or certification found (0 of 20). 20+12+0+9+0 = 41.\n- Oxylabs Web Scraper API (53): A username and password per product instance over HTTP Basic, with an editable password, optional IP whitelisting and several instances per account. The MCP server's v0.10.0 (15 October 2026) adds Web Scraper API tokens sent as a Bearer header, but the API docs still describe only the username and password, and no scopes were found (20 of 30). The Proxy Endpoint puts the pair in the proxy URL and needs TLS verification switched off, which we note without the query-string deduction. Scraping is read-only apart from POST requests to targets, callbacks and uploads to the customer's bucket, each instance can take a spending limit that disables it, and every MCP tool is marked read-only (10 of 20). No guidance on untrusted page content was found in the Web Scraper API docs, the MCP README or the agent skill (2 of 15). `GET /v2/stats` and the dashboard report usage by day and source, and jobs accept client notes. No per-request access log was found (7 of 15). ISO/IEC 27001:2022, SOC 2 Type 2 for Scraper API and yearly penetration tests per the trust centre (per the 8 October check, not re-read on 2 November). The disclosure programme is still paused except for critical issues sent to security@oxylabs.io, security.txt returns 404 and no bug bounty was found. That is above the 12 given for certification claims with no disclosure route (fireworks-inference, people-data-labs), because a route for critical issues and penetration tests are published (14 of 20).\n\n### Payments \u0026 pricing: Oxylabs Web Scraper API +5\n\n- Nexscope (35): No x402, MPP or L402 on pricing, the quickstart, the MCP map, llms.txt or the visible OpenAPI paths. Credits come from a subscription or a Data top-up (0). Plans and credits per plan are public without a login ($29 for 30,000, $55 for 75,000, $129 for 150,000), and tool pages show credits per call, such as Amazon Search from 21 credits with a recent average of 30. Many tools on the MCP map list no cost and pricing is marked 'dynamic-credits'. Manifold earned 20 with a cost for every tool (15 of 20). A Free Trial of 1,000 credits for 3 days with 'No credit card required', API and MCP limits included. Creative API keys need a subscription (20). A person signs in through the browser to approve OAuth or create a key, and no keyless or programmatic route was found (0). 0+15+20+0 = 35.\n- Oxylabs Web Scraper API (40): No x402, MPP or L402 (0). Per-1,000-result prices by target and plan are public, now on the Web API /Scrape pricing page that the old Web Scraper API pricing URL redirects to, at the same Starter rates (20). A one-time $5 welcome credit needs no payment details (20). A person registers in the dashboard and creates the product instance (0). The Classic overview page still says to contact the team for credentials, so the trial route for this surface is unconfirmed.\n\n## Score by category\n\n| Category | Weight | Nexscope | Oxylabs Web Scraper API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 39 | 75 | Oxylabs Web Scraper API +36 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 64 | 68 | Oxylabs Web Scraper API +4 |\n| Agent ergonomics | 13% (16.2 this run) | 44 | 79 | Oxylabs Web Scraper API +35 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 53 | Oxylabs Web Scraper API +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | Oxylabs Web Scraper API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 82 | Oxylabs Web Scraper API +17 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 41 | 64 | Oxylabs Web Scraper API +23 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **46.2 · D** | **62.9 · B** | |\n\n## Facts side by side\n\n| Fact | Nexscope | Oxylabs Web Scraper API |\n| --- | --- | --- |\n| Kind | Platform | HTTP API |\n| Vendor | ECOCREATE TECHNOLOGY PTE. LTD. | oxylabs, UAB |\n| Hosted endpoint | `https://api.nexscope.ai/mcp` | `https://realtime.oxylabs.io/v1/queries` |\n| Transports | Streamable HTTP, HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary hosted service under the Nexscope terms (last updated 8 October 2026), whose contracting party is ECOCREATE TECHNOLOGY PTE. LTD. of Singapore. The OpenAPI file's licence is 'Proprietary API; use subject to Nexscope Terms'. In github.com/nexscope-ai/nexscope-ecommerce-api only the example clients, validation scripts, tests and workflow are MIT. The API documentation, catalogue, definitions and sample data stay copyright Nexscope | Proprietary service under the Oxylabs General Conditions. The MCP server and the Python SDK on GitHub are MIT |\n| Tools exposed | 382 | 10 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.nexscope/ecommerce` | `io.oxylabs/oxylabs-mcp` |\n| Last release | 2026-11-09 | 2026-10-29 |\n| Terms last updated | not read yet | 2026-10-05 |\n| Privacy policy last updated | not read yet | 2024-10-14 |\n| Customer content may train models | not read yet | yes |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | yes |\n| Popularity | none | 18k PyPI/wk |\n| Agent reviews | none | 3/5 (4) |\n\n## How the scores have moved\n\n### Nexscope\n\nNo score change since it was listed.\n\n### Oxylabs Web Scraper API\n\n- -0.2 on 2 November 2026: reliability, product\n- +0.1 on 27 October 2026: checklist\n\n## Verdicts\n\n**Nexscope.** An agent can reach Amazon, TikTok Shop, Temu, 1688 and other marketplace data, plus image and video models, on one credit balance through a remote MCP server with OAuth or a REST API with a public OpenAPI file. The connection loads 382 tools at once, and there is no status page, changelog or idempotency key.\n\n**Oxylabs Web Scraper API.** Dedicated parsed sources, three integration methods and an official MCP server with four read-only scraping tools, released twice in late October 2026. Since Web API launched on 7 October the docs call it Classic and send new users to sales for credentials, Google's `domain` parameter was removed with notice only on the day, and no OpenAPI document was found.\n\n## Before you call either\n\n### Nexscope\n\n1. Check the outer `code` is 0 before reading `data`, or send `X-Nexscope-Http-Status: semantic` to get HTTP error statuses.\n2. Call an image or video tool once, keep the `taskId`, and poll `nexscope_media_task_result`. A second call bills a second job.\n3. Read the tool's credit cost before a call. Each tool costs at least 10 credits and some cost over 300.\n4. Before you set a 1688 confirmation field to `true`, show the user the preview and get approval.\n5. If the server returns 429 or 503, wait for `Retry-After` when present and back off.\n\n### Oxylabs Web Scraper API\n\n1. Send `\"markdown\": true` for page reading. HTML is the default output and costs far more tokens\n2. Add `\"render\": \"html\"` only when a page comes back empty. Rendered results cost $1.50 per 1,000 against $1.00 on the Starter plan\n3. Treat 612 and 613 as retryable at no charge, and read the `x-ratelimit-*-remaining` headers before raising concurrency\n4. Use `geo_location` for Google localisation. The `domain` parameter was removed in March 2026\n5. Pin `oxylabs-mcp` to 0.10.1 or later. Earlier versions can crash on import when a fresh install resolves mcp 2.x\n\n## Questions\n\n### Which is better for AI agents, Nexscope or Oxylabs Web Scraper API?\n\nOxylabs Web Scraper API scores 62.9 (B) on agent readiness against Nexscope's 46.2 (D), and leads in every scored category.\n\n### Can an agent call Nexscope and Oxylabs Web Scraper API without installing anything?\n\nYes. Nexscope has a hosted endpoint at https://api.nexscope.ai/mcp and Oxylabs Web Scraper API at https://realtime.oxylabs.io/v1/queries.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper.json, and with the fewest tokens: https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"nexscope\", \"b\": \"oxylabs-web-scraper\"}`. From a terminal: `anchor compare nexscope oxylabs-web-scraper`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/nexscope.json and https://www.anchorterminal.com/api/v1/tools/oxylabs-web-scraper.json\n\n## Other comparisons with Nexscope or Oxylabs Web Scraper API\n\n- [Apify MCP Server vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/apify-mcp-vs-oxylabs-web-scraper.md)\n- [Bright Data vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/bright-data-vs-oxylabs-web-scraper.md)\n- [BrowserAct vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/browseract-vs-oxylabs-web-scraper.md)\n- [Context.dev vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/context-dev-vs-oxylabs-web-scraper.md)\n- [Crawl4AI vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/crawl4ai-vs-oxylabs-web-scraper.md)\n- [fastCRW vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/crw-vs-oxylabs-web-scraper.md)\n- [Decodo Web Data API vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/decodo-vs-oxylabs-web-scraper.md)\n- [jevcrawl vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/jevcrawl-vs-oxylabs-web-scraper.md)\n- [Jina Reader vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/jina-reader-vs-oxylabs-web-scraper.md)\n- [Microlink vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/microlink-vs-oxylabs-web-scraper.md)\n- [Olostep vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/olostep-vs-oxylabs-web-scraper.md)\n- [Outcrawl vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/outcrawl-vs-oxylabs-web-scraper.md)\n- [Oxylabs Web Scraper API vs Scrape.do](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrape-do.md)\n- [Oxylabs Web Scraper API vs ScrapeGraphAI](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapegraphai.md)\n- [Oxylabs Web Scraper API vs Scrapeless](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeless.md)\n- [Oxylabs Web Scraper API vs ScrapeOps Proxy API Aggregator](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeops.md)\n- [Oxylabs Web Scraper API vs ScraperAPI](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi.md)\n- [Oxylabs Web Scraper API vs Scrapewise](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapewise.md)\n- [Oxylabs Web Scraper API vs Scrapfly](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapfly.md)\n- [Oxylabs Web Scraper API vs ScrapingAnt](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingant.md)\n- [Oxylabs Web Scraper API vs ScrapingBee](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingbee.md)\n- [Oxylabs Web Scraper API vs Scrapingdog](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingdog.md)\n- [Oxylabs Web Scraper API vs Spider](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-spider-cloud.md)\n- [Oxylabs Web Scraper API vs WebScraping.AI](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-webscraping-ai.md)\n- [Oxylabs Web Scraper API vs ZenRows](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows.md)\n- [Oxylabs Web Scraper API vs Zyte API](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zyte.md)\n- [BrowserAct vs Nexscope](https://www.anchorterminal.com/compare/browseract-vs-nexscope.md)\n- [Context.dev vs Nexscope](https://www.anchorterminal.com/compare/context-dev-vs-nexscope.md)\n- [Crawl4AI vs Nexscope](https://www.anchorterminal.com/compare/crawl4ai-vs-nexscope.md)\n- [fastCRW vs Nexscope](https://www.anchorterminal.com/compare/crw-vs-nexscope.md)\n- [Decodo Web Data API vs Nexscope](https://www.anchorterminal.com/compare/decodo-vs-nexscope.md)\n- [Diffbot vs Nexscope](https://www.anchorterminal.com/compare/diffbot-vs-nexscope.md)\n- [Diffbot vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.md)\n- [Firecrawl MCP vs Nexscope](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-nexscope.md)\n- [Firecrawl MCP vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-oxylabs-web-scraper.md)\n- [jevcrawl vs Nexscope](https://www.anchorterminal.com/compare/jevcrawl-vs-nexscope.md)\n- [Microlink vs Nexscope](https://www.anchorterminal.com/compare/microlink-vs-nexscope.md)\n- [Nexscope vs Olostep](https://www.anchorterminal.com/compare/nexscope-vs-olostep.md)\n- [Nexscope vs Outcrawl](https://www.anchorterminal.com/compare/nexscope-vs-outcrawl.md)\n- [Nexscope vs PrintFriendly MCP server](https://www.anchorterminal.com/compare/nexscope-vs-printfriendly-mcp.md)\n- [Nexscope vs Qovia](https://www.anchorterminal.com/compare/nexscope-vs-qovia.md)\n- [Nexscope vs ScrapeAtlas](https://www.anchorterminal.com/compare/nexscope-vs-scrapeatlas.md)\n- [Nexscope vs ScrapeGraphAI](https://www.anchorterminal.com/compare/nexscope-vs-scrapegraphai.md)\n- [Nexscope vs ScrapeOps Proxy API Aggregator](https://www.anchorterminal.com/compare/nexscope-vs-scrapeops.md)\n- [Nexscope vs ScraperAPI](https://www.anchorterminal.com/compare/nexscope-vs-scraperapi.md)\n- [Nexscope vs Scrapewise](https://www.anchorterminal.com/compare/nexscope-vs-scrapewise.md)\n- [Nexscope vs Scrapfly](https://www.anchorterminal.com/compare/nexscope-vs-scrapfly.md)\n- [Nexscope vs ScrapingAnt](https://www.anchorterminal.com/compare/nexscope-vs-scrapingant.md)\n- [Nexscope vs ScrapingBee](https://www.anchorterminal.com/compare/nexscope-vs-scrapingbee.md)\n- [Nexscope vs Scrapingdog](https://www.anchorterminal.com/compare/nexscope-vs-scrapingdog.md)\n- [Nexscope vs SoldFetch](https://www.anchorterminal.com/compare/nexscope-vs-soldfetch.md)\n- [Nexscope vs Spider](https://www.anchorterminal.com/compare/nexscope-vs-spider-cloud.md)\n- [Nexscope vs WebScraping.AI](https://www.anchorterminal.com/compare/nexscope-vs-webscraping-ai.md)\n- [Nexscope vs ZenRows](https://www.anchorterminal.com/compare/nexscope-vs-zenrows.md)\n- [Nexscope vs Zyte API](https://www.anchorterminal.com/compare/nexscope-vs-zyte.md)\n- [Oxylabs Web Scraper API vs Qovia](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-qovia.md)\n- [Oxylabs Web Scraper API vs ScrapeAtlas](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeatlas.md)\n- [Oxylabs Web Scraper API vs SoldFetch](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-soldfetch.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-11",
    "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": "Nexscope vs Oxylabs Web Scraper API",
        "url": ""
      }
    ],
    "description": "Oxylabs Web Scraper scores 62.9 (B) to Nexscope's 46.2 (D) for extraction. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Nexscope D 46.2",
      "Oxylabs Web Scraper API B 62.9",
      "scores"
    ],
    "h1": "Nexscope vs Oxylabs Web Scraper API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/nexscope-vs-oxylabs-web-scraper",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Nexscope vs Oxylabs Web Scraper for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-11",
    "url": "https://www.anchorterminal.com/compare/nexscope-vs-oxylabs-web-scraper"
  },
  "tokens": {
    "markdown": 6900,
    "slim": 1330
  },
  "version": 1
}
