{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "zyte",
    "name": "Zyte API",
    "vendor": "Zyte Group Limited",
    "vendorUrl": "https://www.zyte.com",
    "kind": "http-api",
    "category": "web-scrapers",
    "summary": "Zyte API is a hosted web scraping API from Zyte Group Limited of Cork, Ireland. One endpoint returns a page's HTTP body, browser-rendered HTML, a screenshot or extracted structured data, with ban avoidance handled by the service.",
    "url": "https://www.anchorterminal.com/tools/zyte",
    "markdownUrl": "https://www.anchorterminal.com/tools/zyte.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zyte.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zyte.json",
    "repo": "https://github.com/zytedata/python-zyte-api",
    "license": "Proprietary service under Zyte's terms of service. The Python client is BSD 3-Clause, and the Agentic Web Data plugin is under Zyte's own end-user licence",
    "transports": [
      "http",
      "streamable-http"
    ],
    "remoteUrl": "https://api.zyte.com/v1/extract",
    "packages": [
      {
        "registry": "pypi",
        "name": "zyte-api"
      },
      {
        "registry": "pypi",
        "name": "scrapy-zyte-api"
      }
    ],
    "auth": "mixed",
    "authNotes": "Self-serve API key from the Zyte dashboard, sent as the HTTP Basic username with an empty password. An organisation can hold several keys, and an owner can put a blocking spending limit on each. The Stats API takes a separate dashboard key. Zyte MCP signs in with OAuth (scope `zapi:read` in its metadata) and then calls the API with a dedicated key, `mcp_access_key`. CDP browser sessions need a paid plan or spending limit and business verification.",
    "pricing": "usage",
    "pricingNotes": "$5 free credit for the first billing month on signup, with no card per the site, so an agent's owner can start without a contract. After that, pay-as-you-go from $0.13 to $1.27 per 1,000 successful HTTP requests and $1.01 to $16.08 per 1,000 browser requests, by the target site's tier (1 to 5). Screenshots add $1.34 per 1,000 and automatic extraction $0.27 to $1.07 per 1,000. Monthly commitments of $100 to $500 take 25 to 52 per cent off. Failed, banned and rate-limited requests are free (https://www.zyte.com/pricing/, https://docs.zyte.com/zyte-api/pricing.md).",
    "priceSummary": "$0.13 / 1k req",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "The official Python client documents x402 payment with an Ethereum key against `https://api-x402.zyte.com/v1/` (`python-zyte-api`, `docs/use/x402.rst`, since 0.8.0 of 7 August 2025). One unauthenticated POST to `/v1/extract` on that host on 2026-10-09 returned 401 `/auth/not-valid` with `WWW-Authenticate: Basic` and no 402 challenge. docs.zyte.com and the pricing page don't mention x402 (checked 2026-10-09).",
      "endpoints": []
    },
    "toolCount": 34,
    "popularity": {
      "githubStars": null,
      "npmWeekly": null,
      "pypiWeekly": 41866,
      "asOf": "2026-10-09"
    },
    "docsUrl": "https://docs.zyte.com/zyte-api/get-started.html",
    "llmsTxt": "https://docs.zyte.com/llms.txt",
    "openapi": "https://docs.zyte.com/zyte-api/usage/reference.md",
    "capabilities": [
      "web.scrape",
      "scraping.anti-bot",
      "scraping.js-render",
      "scraping.proxies",
      "web.extract",
      "scraping.screenshot",
      "browser.hosted",
      "search.serp"
    ],
    "tags": [
      "hosted",
      "usage-based",
      "free-trial",
      "no-card",
      "mcp",
      "oauth",
      "openapi",
      "llms-txt",
      "proxies",
      "python",
      "status-page",
      "iso-27001",
      "closed-source"
    ],
    "lastRelease": "2026-10-05",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 69.7,
      "grade": "B",
      "agentReady": false,
      "rank": 166,
      "ranked": true,
      "rankOf": 842,
      "categoryRank": 5,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 72,
        "maintenance": 77,
        "payments": 40,
        "reliability": 85,
        "schema": 85,
        "security": 55,
        "transparency": 66
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 85,
          "points": 17,
          "reason": "Graded as a hosted API. status.zyte.com runs on Atlassian Statuspage with ten components and incident history (20). In the 90 days to 9 October 2026 it lists two Zyte API incidents, both degraded browser rendering with higher latency and 520 errors, on 10 to 11 September and 13 September, neither marked as an outage, plus two Scrapy Cloud scheduling incidents (20 of 30). Rate limits are published as 3,000 requests a minute per key on standard plans and 10,000 on Enterprise, though per-site limits aren't (15). 429, 503 and 520 carry `Retry-After`, and the docs give a backoff table and say which responses to retry (15). Enterprise plans list service level agreements for support response times. No uptime SLA is published (5 of 10). Zyte API is generally available, and Zyte MCP launched on 30 September 2026 with no beta label (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 85,
          "points": 13.81,
          "reason": "The reference prints an OpenAPI 3.0.3 document for `POST /v1/extract`, though the Search API's `/v1/search` is documented in tables outside it (25). docs.zyte.com has an llms.txt and Markdown twins of its pages (10). The operation description states which output fields can be combined and which can't, and field descriptions give defaults (17 of 20). Inputs are typed, with 51 enums and required fields marked. `customAttributes` takes a free-form schema (13 of 15). The spec has a dozen request examples, and each error status has a problem+json example (15). The path is versioned `/v1` and the spec says 1.0.0, but we found no dated changelog for the API in the docs sitemap of 150 pages (5 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 72,
          "points": 11.7,
          "reason": "Graded on the REST API, with the MCP server noted. A request names the outputs it wants, so an agent can ask for extracted fields or `pageContent` in place of full HTML, but HTML and bodies come whole, up to 10 MB. Zyte MCP lists 34 tools at once, 26 of them for Scrapy Cloud (15 of 25). No pagination applies to a single-URL call. Search takes `maxResults` from 10 to 100, and the Stats API pages and filters (14 of 20). Errors are problem+json with a stable `type` path, and the docs say which to retry and which to fix (20). Calls are reads, failed and rate-limited requests are free, and retries are safe. We could not read the MCP tool annotations, which need a sign-in (14 of 20). A call needs only `url` and one output flag. The only official client is Python, with a Scrapy plugin (9 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 55,
          "points": 9.63,
          "reason": "API keys are revocable, an organisation can hold several, and none travels in a URL. Keys carry no permission scopes. Zyte MCP signs in over OAuth and works through its own key, `mcp_access_key` (22 of 30). An owner can set a blocking spending limit per key. We found no read-only mode, and the MCP docs warn that the agent can delete schedules and collections with no undo, leaving approval to the MCP client (8 of 20). The API returns untrusted web content, and the only guidance found is to review what the agent asks to do (2 of 15). The Stats API and dashboard break usage down by key, domain and request type, requests can be tagged, and each response has a `request-id`. No per-request log for the operator was found (10 of 15). ISO 27001 certification per the trust centre, a responsible disclosure programme with a hall of fame and no rewards, penetration test reports under NDA, and no security.txt (13 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 40,
          "points": 5,
          "reason": "The official Python client documents x402 against `api-x402.zyte.com`, but our one unauthenticated request there on 9 October 2026 returned 401 with no 402 challenge, and the main docs and pricing page don't mention it, so we score the line as not established (0 of 40). Per-1,000 prices for all five site tiers, screenshots and extraction are public, though a given site's tier needs the dashboard's cost estimator (20). $5 of credit for the first billing month, with no card per the site (20). A person signs up in a browser, and the MCP route needs a browser sign-in too (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 77,
          "points": 6.74,
          "reason": "Zyte MCP launched on 30 September 2026 and the Agentic Web Data plugin reached 0.4.0 on 5 October (30). Dated releases in the last 90 days are plugin 0.3.0, 0.3.1 and 0.4.0 (17 and 22 September, 5 October) and `python-zyte-api` 0.11.0 on 23 July (20). There is no public API changelog. Support runs through tickets and a Discord server, and we did not read GitHub issues (8 of 15 for a closed service). `python-zyte-api` is current, with Python 3.10 or later, and covers one language. We could not reach the MCP registry (12 of 15). The client repository has test and publish workflows and merged a dependency update on 8 October 2026. We did not see CI results (7 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 66,
          "points": 5.78,
          "note": "editorial 58, provenance 73",
          "reason": "A closed service with terms last updated on 22 September 2026 that name Zyte Group Limited and contain a Zyte API section. The Python client is BSD 3-Clause (15 of 30). The privacy policy (30 August 2024), a DPA and a sub-processor list are public, with retention stated for support tickets (4 years) and invoices (7 years). Retention of request data and scraped content isn't stated, and the terms let Zyte use Service Data for product development and product training (17 of 30). Site tier changes get two weeks' notice and the Smart Proxy Manager retirement was announced with a date, but there is no standing API deprecation policy and the terms allow changes with or without notice (10 of 20). The sub-processor list names 36 companies with addresses and purposes, and the privacy policy names the United States and Ireland as processing locations (16 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-09",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "Graded on the REST API, with the MCP server noted. A request names the outputs it wants, so an agent can ask for extracted fields or `pageContent` in place of full HTML, but HTML and bodies come whole, up to 10 MB. Zyte MCP lists 34 tools at once, 26 of them for Scrapy Cloud (15 of 25). No pagination applies to a single-URL call. Search takes `maxResults` from 10 to 100, and the Stats API pages and filters (14 of 20). Errors are problem+json with a stable `type` path, and the docs say which to retry and which to fix (20). Calls are reads, failed and rate-limited requests are free, and retries are safe. We could not read the MCP tool annotations, which need a sign-in (14 of 20). A call needs only `url` and one output flag. The only official client is Python, with a Scrapy plugin (9 of 15).",
          "maintenance": "Zyte MCP launched on 30 September 2026 and the Agentic Web Data plugin reached 0.4.0 on 5 October (30). Dated releases in the last 90 days are plugin 0.3.0, 0.3.1 and 0.4.0 (17 and 22 September, 5 October) and `python-zyte-api` 0.11.0 on 23 July (20). There is no public API changelog. Support runs through tickets and a Discord server, and we did not read GitHub issues (8 of 15 for a closed service). `python-zyte-api` is current, with Python 3.10 or later, and covers one language. We could not reach the MCP registry (12 of 15). The client repository has test and publish workflows and merged a dependency update on 8 October 2026. We did not see CI results (7 of 10).",
          "payments": "The official Python client documents x402 against `api-x402.zyte.com`, but our one unauthenticated request there on 9 October 2026 returned 401 with no 402 challenge, and the main docs and pricing page don't mention it, so we score the line as not established (0 of 40). Per-1,000 prices for all five site tiers, screenshots and extraction are public, though a given site's tier needs the dashboard's cost estimator (20). $5 of credit for the first billing month, with no card per the site (20). A person signs up in a browser, and the MCP route needs a browser sign-in too (0).",
          "reliability": "Graded as a hosted API. status.zyte.com runs on Atlassian Statuspage with ten components and incident history (20). In the 90 days to 9 October 2026 it lists two Zyte API incidents, both degraded browser rendering with higher latency and 520 errors, on 10 to 11 September and 13 September, neither marked as an outage, plus two Scrapy Cloud scheduling incidents (20 of 30). Rate limits are published as 3,000 requests a minute per key on standard plans and 10,000 on Enterprise, though per-site limits aren't (15). 429, 503 and 520 carry `Retry-After`, and the docs give a backoff table and say which responses to retry (15). Enterprise plans list service level agreements for support response times. No uptime SLA is published (5 of 10). Zyte API is generally available, and Zyte MCP launched on 30 September 2026 with no beta label (10).",
          "schema": "The reference prints an OpenAPI 3.0.3 document for `POST /v1/extract`, though the Search API's `/v1/search` is documented in tables outside it (25). docs.zyte.com has an llms.txt and Markdown twins of its pages (10). The operation description states which output fields can be combined and which can't, and field descriptions give defaults (17 of 20). Inputs are typed, with 51 enums and required fields marked. `customAttributes` takes a free-form schema (13 of 15). The spec has a dozen request examples, and each error status has a problem+json example (15). The path is versioned `/v1` and the spec says 1.0.0, but we found no dated changelog for the API in the docs sitemap of 150 pages (5 of 15).",
          "security": "API keys are revocable, an organisation can hold several, and none travels in a URL. Keys carry no permission scopes. Zyte MCP signs in over OAuth and works through its own key, `mcp_access_key` (22 of 30). An owner can set a blocking spending limit per key. We found no read-only mode, and the MCP docs warn that the agent can delete schedules and collections with no undo, leaving approval to the MCP client (8 of 20). The API returns untrusted web content, and the only guidance found is to review what the agent asks to do (2 of 15). The Stats API and dashboard break usage down by key, domain and request type, requests can be tagged, and each response has a `request-id`. No per-request log for the operator was found (10 of 15). ISO 27001 certification per the trust centre, a responsible disclosure programme with a hall of fame and no rewards, penetration test reports under NDA, and no security.txt (13 of 20).",
          "transparency": "A closed service with terms last updated on 22 September 2026 that name Zyte Group Limited and contain a Zyte API section. The Python client is BSD 3-Clause (15 of 30). The privacy policy (30 August 2024), a DPA and a sub-processor list are public, with retention stated for support tickets (4 years) and invoices (7 years). Retention of request data and scraped content isn't stated, and the terms let Zyte use Service Data for product development and product training (17 of 30). Site tier changes get two weeks' notice and the Smart Proxy Manager retirement was announced with a date, but there is no standing API deprecation policy and the terms allow changes with or without notice (10 of 20). The sub-processor list names 36 companies with addresses and purposes, and the privacy policy names the United States and Ireland as processing locations (16 of 20)."
        },
        "sources": [
          {
            "what": "docs index for agents",
            "url": "https://docs.zyte.com/llms.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "API reference with the OpenAPI document",
            "url": "https://docs.zyte.com/zyte-api/usage/reference.md",
            "seen": "2026-10-09"
          },
          {
            "what": "error handling and retries",
            "url": "https://docs.zyte.com/zyte-api/usage/errors.md",
            "seen": "2026-10-09"
          },
          {
            "what": "rate limits",
            "url": "https://docs.zyte.com/zyte-api/usage/rate-limit.md",
            "seen": "2026-10-09"
          },
          {
            "what": "pricing rules, plans and spending limits",
            "url": "https://docs.zyte.com/zyte-api/pricing.md",
            "seen": "2026-10-09"
          },
          {
            "what": "tier prices",
            "url": "https://www.zyte.com/pricing/",
            "seen": "2026-10-09"
          },
          {
            "what": "Zyte MCP documentation",
            "url": "https://docs.zyte.com/zyte-web-data/mcp.md",
            "seen": "2026-10-09"
          },
          {
            "what": "Zyte MCP launch post",
            "url": "https://www.zyte.com/blog/introducing-zyte-mcp/",
            "seen": "2026-10-09"
          },
          {
            "what": "MCP OAuth resource metadata",
            "url": "https://mcp.zyte.com/.well-known/oauth-protected-resource",
            "seen": "2026-10-09"
          },
          {
            "what": "status page",
            "url": "https://status.zyte.com/",
            "seen": "2026-10-09"
          },
          {
            "what": "incident history feed",
            "url": "https://status.zyte.com/history.atom",
            "seen": "2026-10-09"
          },
          {
            "what": "terms of service",
            "url": "https://www.zyte.com/terms-policies/terms-of-service/",
            "seen": "2026-10-09"
          },
          {
            "what": "acceptable use policy",
            "url": "https://www.zyte.com/terms-policies/acceptable-use-policy/",
            "seen": "2026-10-09"
          },
          {
            "what": "privacy policy",
            "url": "https://www.zyte.com/terms-policies/privacy-policy/",
            "seen": "2026-10-09"
          },
          {
            "what": "data processing agreement",
            "url": "https://www.zyte.com/terms-policies/dpa/",
            "seen": "2026-10-09"
          },
          {
            "what": "sub-processor list",
            "url": "https://www.zyte.com/terms-policies/subprocessor/",
            "seen": "2026-10-09"
          },
          {
            "what": "trust centre",
            "url": "https://www.zyte.com/trust-center/",
            "seen": "2026-10-09"
          },
          {
            "what": "responsible disclosure programme",
            "url": "https://www.zyte.com/terms-policies/responsible-disclosure-program/",
            "seen": "2026-10-09"
          },
          {
            "what": "Python client source, tags, changelog and x402 docs",
            "url": "https://github.com/zytedata/python-zyte-api",
            "seen": "2026-10-09"
          },
          {
            "what": "Agentic Web Data plugin source and changelog",
            "url": "https://github.com/zytedata/skills",
            "seen": "2026-10-09"
          },
          {
            "what": "PyPI downloads for zyte-api",
            "url": "https://pypistats.org/api/packages/zyte-api/recent",
            "seen": "2026-10-09"
          },
          {
            "what": "domain registration",
            "url": "https://rdap.verisign.com/com/v1/domain/zyte.com",
            "seen": "2026-10-09"
          }
        ],
        "openQuestions": [
          "Whether the x402 route works. The Python client documents `api-x402.zyte.com`, and our one unauthenticated request got 401 and no 402. We sent no further requests",
          "unchecked: the MCP tool definitions and annotations, which need a Zyte sign-in. The count of 34 comes from the docs table",
          "unchecked: the official MCP registry. registry.modelcontextprotocol.io timed out twice",
          "unchecked: the PyPI project pages, which returned a short page with no release data. Versions and dates come from the repository tags",
          "unchecked: GitHub stars and issue responsiveness for zytedata/python-zyte-api",
          "unchecked: the ISO 27001 certificate page and the security policies and controls pages linked from the trust centre",
          "Whether an uptime SLA exists for Enterprise plans. The docs describe support response times only"
        ]
      },
      "negative": 0,
      "verdict": "One POST endpoint with an OpenAPI 3 contract picks proxies, browser rendering and extraction per site, bills only successful responses, and sends problem+json errors with Retry-After. Prices vary by target site across five tiers, so cost per request isn't known before the site is assigned one, and no dated API changelog was found.",
      "bestFor": "An agent or pipeline that fetches protected pages and wants the service to choose proxy and browser per site and to bill only success, and teams already on Scrapy.",
      "strengths": [
        "OpenAPI 3.0.3 contract for `/v1/extract` printed in the reference, with 51 enums and request examples, plus llms.txt and Markdown twins of the docs pages",
        "Only successful responses are billed. Rate-limited, banned and failed requests are free, per the pricing page and the terms",
        "429, 503 and 520 responses carry `Retry-After`, and the docs publish a backoff table for each retry",
        "Blocking spend limits can be set per API key, and the MCP server uses its own key, `mcp_access_key`, signed in over OAuth",
        "Status page with ten components and incident history, ISO 27001 certification and a list of 36 sub-processors with addresses"
      ],
      "weaknesses": [
        "Request price depends on the target site's tier, from $0.13 to $1.27 per 1,000 HTTP requests and $1.01 to $16.08 with a browser on pay-as-you-go",
        "No dated changelog or deprecation policy for the API was found in the 150-page docs sitemap, and the terms allow changes with or without notice",
        "The terms let Zyte use Service Data, data feeds and code from the services for product development and product training",
        "The official client documents x402 at `api-x402.zyte.com`, but our one unauthenticated request there on 9 October 2026 got 401 and no payment challenge",
        "Zyte MCP lists 34 tools, 26 of them for Scrapy Cloud, and some delete schedules and collections with no undo",
        "No security.txt, no paid bug bounty, and one official client language (Python)"
      ],
      "agentNotes": [
        "Send the API key as the Basic auth username with an empty password to `https://api.zyte.com/v1/extract`. Set only one of `httpResponseBody` or `browserHtml`, or one extraction field",
        "Ask for `httpResponseBody` before `browserHtml`. Browser requests cost about eight to thirteen times more per tier",
        "Retry 429, 503 and 520 after the `Retry-After` seconds, with backoff. They aren't billed. Don't retry 400, 401, 422 or 451",
        "Read `statusCode` in a 200 response. A target site's 404 comes back as a successful, billed Zyte API response",
        "Have the owner set a blocking spending limit on the key you use. A 403 `/auth/account-suspended` means the limit or the trial month ended"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "B",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 69.7
        }
      ],
      "editorialScores": {
        "ergonomics": 72,
        "maintenance": 77,
        "payments": 40,
        "reliability": 85,
        "schema": 85,
        "security": 55,
        "transparency": 58
      },
      "provenanceScore": 73
    },
    "connect": {
      "install": "pip install zyte-api",
      "http": "curl \\\n    --user YOUR_ZYTE_API_KEY: \\\n    --header 'Content-Type: application/json' \\\n    --data '{\"url\": \"https://toscrape.com\", \"httpResponseBody\": true}' \\\n    --compressed \\\n    https://api.zyte.com/v1/extract",
      "claudeCode": "claude mcp add --transport http zyte https://mcp.zyte.com/v1/mcp",
      "config": {
        "mcpServers": {
          "zyte": {
            "type": "http",
            "url": "https://mcp.zyte.com/v1/mcp"
          }
        }
      }
    },
    "letme": {
      "capability": "https://letme.dev/web.scrape",
      "tool": "https://letme.dev/zyte"
    },
    "notable": [
      "Zyte MCP launched on 30 September 2026 as a hosted Streamable HTTP server at `https://mcp.zyte.com/v1/mcp`, with OAuth sign-in and no separate fee (https://www.zyte.com/blog/introducing-zyte-mcp/, https://docs.zyte.com/zyte-web-data/mcp.md)",
      "The terms, last updated 22 September 2026, say use of the services or account creation by an automated system, an AI agent included, is acceptance of the terms by the person who operates it (https://www.zyte.com/terms-policies/terms-of-service/)",
      "The terms let Zyte use Service Data, data feeds, code and other data from the services for product development and product training (https://www.zyte.com/terms-policies/terms-of-service/)",
      "The acceptable use policy forbids scraping LinkedIn, sites whose terms the customer has explicitly agreed to and that prohibit the access, and reselling the service or its data to third parties (https://www.zyte.com/terms-policies/acceptable-use-policy/)",
      "`python-zyte-api` documents x402 payment at `https://api-x402.zyte.com/v1/` since 0.8.0 (7 August 2025). One unauthenticated POST there on 9 October 2026 returned 401 `/auth/not-valid`, not a 402 challenge (https://github.com/zytedata/python-zyte-api/blob/main/docs/use/x402.rst)",
      "Site tiers are reviewed quarterly and affected customers get two weeks' notice of a tier change (https://docs.zyte.com/zyte-api/pricing.md)",
      "The `CHANGELOG.md` and `LICENSE.md` files in the `zytedata/skills` repository open with a line telling the reader how many lines the file has and to read all of them. We recorded it and did not act on it (https://github.com/zytedata/skills)",
      "status.zyte.com lists two Zyte API incidents in the 90 days to 9 October 2026, both degraded browser rendering, on 10 to 11 September and 13 September (https://status.zyte.com/history.atom)"
    ],
    "area": "web-data",
    "details": [
      {
        "label": "Endpoints",
        "value": "`POST https://api.zyte.com/v1/extract` (HTTP body, browser HTML, screenshot, automatic extraction), `POST https://api.zyte.com/v1/search`, proxy mode at `api.zyte.com:8011`, a CDP headless browser, and a Stats API at `zyte-api-stats.zyte.com`"
      },
      {
        "label": "MCP server",
        "value": "Hosted at `https://mcp.zyte.com/v1/mcp`, Streamable HTTP, OAuth sign-in, 34 tools (8 for Zyte API and the account, 26 for Scrapy Cloud). Launched 30 September 2026"
      },
      {
        "label": "Free trial",
        "value": "$5 credit for the first billing month on signup. The site says no credit card. The account is suspended afterwards until a spending limit is set"
      },
      {
        "label": "Plans",
        "value": "Pay-as-you-go with a $100 monthly spending limit, or a commitment of $100, $200, $350 or $500 a month for a 25, 40, 48 or 52 per cent discount. Enterprise by sales"
      },
      {
        "label": "Rate limits",
        "value": "3,000 requests a minute per key on standard plans, 10,000 on Enterprise, plus per-site and per-account-per-site limits that aren't published. Stats requests through MCP are limited to 20 a minute"
      },
      {
        "label": "Errors",
        "value": "application/problem+json with a `type` path such as `/limits/over-user-limit`. 429, 503 and 520 carry `Retry-After`. 520 is a ban that could not be avoided, 521 a permanent download error"
      },
      {
        "label": "Extraction",
        "value": "article, articleList, articleNavigation, forumThread, jobPosting, jobPostingNavigation, pageContent, product, productList, productNavigation and serp, plus custom attributes described in a schema and filled by an LLM"
      },
      {
        "label": "Limits",
        "value": "Request body 5 MiB. `browserHtml` and `httpResponseBody` are cut at 10 MB. Geolocation by country only. Server timeout 200 seconds per the client"
      },
      {
        "label": "Clients",
        "value": "`python-zyte-api` 0.11.0 (23 July 2026, BSD 3-Clause, Python 3.10+) with a `zyte-api` command, and `scrapy-zyte-api` for Scrapy. No official client in another language found"
      },
      {
        "label": "Agent plugin",
        "value": "Agentic Web Data, a free plugin of five skills for Claude Code, Codex CLI, GitHub Copilot CLI and other coding agents, version 0.4.0 of 5 October 2026, under Zyte's own end-user licence"
      },
      {
        "label": "Certifications",
        "value": "ISO 27001 per the trust centre. Penetration test reports on request under NDA. No SOC 2 claim found"
      },
      {
        "label": "Status",
        "value": "status.zyte.com on Atlassian Statuspage, components for Zyte API, Web Dashboard, Scrapy Cloud, Smart Proxy Manager and Support Centre"
      },
      {
        "label": "SLA",
        "value": "Enterprise plans list service level agreements for support response (1 hour on weekdays, 8 hours at weekends). No uptime SLA is published"
      }
    ],
    "unitPrices": [
      {
        "item": "HTTP request, tier 1 site, pay-as-you-go",
        "unit": "1k-requests",
        "usd": 0.13,
        "note": "Tiers 2 to 5 cost $0.23, $0.44, $0.70 and $1.27"
      },
      {
        "item": "HTTP request, tier 5 site, pay-as-you-go",
        "unit": "1k-requests",
        "usd": 1.27,
        "note": "Only successful responses are billed"
      },
      {
        "item": "Browser request, tier 1 site, pay-as-you-go",
        "unit": "1k-requests",
        "usd": 1.01,
        "note": "Tiers 2 to 5 cost $2.01, $4.02, $8.04 and $16.08"
      },
      {
        "item": "Browser request, tier 5 site, pay-as-you-go",
        "unit": "1k-requests",
        "usd": 16.08,
        "note": "Actions and network capture cost extra"
      },
      {
        "item": "Screenshot, added to a browser request",
        "unit": "1k-requests",
        "usd": 1.34,
        "note": "Pay-as-you-go price"
      },
      {
        "item": "HTTP request, tier 1 site, $500 commitment",
        "unit": "1k-requests",
        "usd": 0.06,
        "note": "52 per cent volume discount"
      }
    ],
    "provenance": {
      "legalEntity": "Zyte Group Limited",
      "domain": "zyte.com",
      "domainRegistered": "1999-02-22",
      "endpointOnVendorDomain": true,
      "terms": "https://www.zyte.com/terms-policies/terms-of-service/",
      "privacy": "https://www.zyte.com/terms-policies/privacy-policy/",
      "statusPage": "https://status.zyte.com",
      "changelog": "",
      "securityTxt": "none",
      "checked": "2026-10-09",
      "notes": [
        "The terms of service (last updated 22 September 2026) define Zyte as Zyte Group Limited, an Irish company, number 492771, with a notice address at 12 South Mall, Cork. They contain a Zyte API Terms section, so they govern the API.",
        "The privacy policy is dated 30 August 2024 and covers the websites and the services. It says it does not apply to personal data a customer collects with the services.",
        "www.zyte.com/.well-known/security.txt returned 404. Reports go through the responsible disclosure programme page, which pays no rewards.",
        "No dated changelog for the API was found. The Python client and the agent plugin each keep one in their repository.",
        "RDAP at Verisign gives a registration date of 1999-02-22 for zyte.com.",
        "The API answers at api.zyte.com and the MCP server at mcp.zyte.com. Its OAuth metadata names auth.app.zyte.com as the authorisation server."
      ],
      "score": 73,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Zyte Group Limited",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "zyte.com, registered 1999-02-22 (27 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "api.zyte.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 5 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 4.3,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 6 of the 8 things a reader expects",
          "points": 8.5,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "status.zyte.com",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.zyte.com/terms-policies/terms-of-service/",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-09-22",
          "words": 8230,
          "points": 4.3,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last Updated: September 22, 2026",
              "says": "Last updated 2026-09-22"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "If you are located within the United States, these Terms shall be governed by, construed, and interpreted in accordance with the laws of the State of New York, without regard to principles of conflict of laws.",
              "says": "The law of the State of New York"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "…TERMS OR OTHERWISE IN CONNECTION WITH ANY SUBSCRIPTION TO, OR USE OR EMPLOYMENT OF THE SERVICE, SHALL IN NO EVENT EXCEED THE FEES FOR SUCH SERVICE PAID BY YOU DURING THE TWELVE (12) MONTHS PRIOR TO THE FIRST EVENT OR OCCURRENCE GIVING RISE TO SUCH LIABILITY, OR $1,000 USD IF YOU ARE USING THE SERVICE FOR FREE.",
              "says": "Capped at the fees paid in the 12 months before the claim or $1,000"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "Suspension We may, in our reasonable discretion, temporarily or permanently suspend your access to and use of the Services: (i) during planned upgrades and maintenance to the Services, of which we will use commercially reasonable efforts to notify you in advance through the Site and/or a notice to your Account owner a…"
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": false
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "If you do not agree to these Terms, you may not use the Services."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "training",
              "label": "Says it may use customer content to train or improve models, and no opt-out was found",
              "found": true,
              "quote": "Zyte may utilize Service Data, Data Feeds, code, content, and all other data from the Services for product development and product training purposes.",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "Modifications We reserve the right to modify our Services or Site at any time, with or without notice.",
              "costsPoints": true
            },
            {
              "key": "terms.arbitration",
              "label": "Requires arbitration or waives class actions",
              "found": true,
              "quote": "Any dispute, controversy or claim dispute arising out of or relating to these Terms or any breach of these Terms shall be submitted to and decided by binding arbitration."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Use or account creation by an automated system, including an AI agent, counts as acceptance of the terms by the person who developed, deployed or operates it.",
              "quote": "Use of the Services or creation of an Account by any automated system (including, without limitation, an AI agent or scripted process) constitutes acceptance of these Terms by the natural or legal person who developed, deployed, or operates such system"
            },
            {
              "date": "2026-10-08",
              "text": "A request to end an agreement during its term is at Zyte's discretion and may carry a fee of at least 50 per cent of the remaining value.",
              "quote": "In the event that you request to terminate your Agreement during its term, Zyte shall consider such requests in its sole discretion and reserves the right to charge a termination fee of at least 50% of the remaining value of the Agreement."
            },
            {
              "date": "2026-10-08",
              "text": "Zyte owns code and other data generated through the services unless an agreement says otherwise.",
              "quote": "Unless otherwise provided for in an applicable Agreement, Zyte shall own all rights, title, and interest in any code or other data generated through the Services."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.zyte.com/terms-policies/privacy-policy/",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2024-08-30",
          "words": 4122,
          "points": 8.5,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "EFFECTIVE DATE: August 30, 2024",
              "says": "Last updated 2024-08-30"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "This Privacy Policy will inform you as to how we collect, store, use, and disclose your personal data."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "Your data will typically be held as long as you are a customer and for a short period thereafter, with the exception of support tickets which are deleted after 4 years.",
              "says": "Names a period of 4 years"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "How do we share and disclose information to third parties?"
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": false
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "Protection of Zyte and Others: We reserve the right to access, read, preserve, and disclose any information as necessary to comply with law or court order;"
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": false
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "We may also transfer your Personal Data outside of the European Economic Area (EEA) to help us provide the products and Services to you."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "A customer found to be a joint controller or processor with Zyte agrees to indemnify Zyte for expenses, fees and fines linked to the customer's processing of personal data.",
              "quote": "you agree to indemnify Zyte for the expenses and fees (including any legal fees or fines) it occurs in connection with your control or processing of Personal Data."
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/zyte.json",
    "live": {
      "slug": "zyte",
      "probe": {
        "target": "https://api.zyte.com/v1/extract",
        "method": "get",
        "lastAt": "2026-10-09T10:14:34.195419099Z",
        "lastOk": true,
        "lastStatus": 405,
        "lastMs": 344,
        "authRequired": false,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 346,
        "p95ms24h": 382,
        "samples24h": 28,
        "samples30d": 28,
        "days": [
          {
            "date": "2026-10-09",
            "probes": 28,
            "ok": 28
          }
        ]
      },
      "vendorStatus": {
        "page": "https://status.zyte.com",
        "indicator": "none",
        "summary": "All Systems Operational",
        "checkedAt": "2026-10-09T10:11:26.366707558Z"
      },
      "updatedAt": "2026-10-09T10:14:34.195419099Z"
    }
  }
}
