{
 "schema_version": 1,
 "source": "https://nativeport.ai/evals.json",
 "latest_run": "2026-06-22",
 "methodology": "One fixed task corpus per capability, identical for every provider; scorecards carry their run dates. Weak scores stay published, and the gateway's flat top-up fee means the ranking earns nothing from steering you toward pricier providers. Details: https://nativeport.ai/methodology/",
 "gateway": {
  "base_url": "https://api.nativeport.ai",
  "auth": "Authorization: Bearer <your NativePort API key>",
  "route_rule": "/{provider}/{provider-native-path} — forwarded to the provider's native API, response returned unmodified",
  "empty_balance": "HTTP 402 until credits are added (deterministic; optional auto-top-up)",
  "sign_up": "https://accounts.nativeport.ai/sign-up",
  "panel": "https://panel.nativeport.ai",
  "docs": "https://docs.nativeport.ai",
  "pricing": "https://nativeport.ai/pricing/"
 },
 "verbs": {
  "search": {
   "label": "Search",
   "description": "Web search: a query in, ranked result links out"
  },
  "scrape": {
   "label": "Scrape",
   "description": "Fetch one URL as clean content/markdown, anti-bot handled"
  },
  "crawl": {
   "label": "Crawl",
   "description": "Enumerate and fetch many pages across a site"
  },
  "extract_ai": {
   "label": "Extract · AI/schema",
   "description": "Structured fields pulled from a page against an AI/natural-language schema"
  },
  "extract_rules": {
   "label": "Extract · CSS rules",
   "description": "Structured fields pulled from a page via CSS/XPath rules"
  },
  "answer": {
   "label": "Answer",
   "description": "A question in, a synthesized answer with cited sources out"
  },
  "screenshot": {
   "label": "Screenshot",
   "description": "Rendered image of a URL"
  },
  "scrape_domain": {
   "label": "Scrape-domain",
   "description": "Purpose-built scrapers for hard, high-value domains (e-commerce, social)"
  },
  "act": {
   "label": "Act · declarative",
   "description": "Declarative in-page interactions (click, fill, scroll) in one call"
  },
  "act_agent": {
   "label": "Act · NL-agent",
   "description": "A natural-language goal handed to an autonomous browser agent"
  },
  "serp": {
   "label": "SERP verticals",
   "description": "Google SERP verticals (web, news, images, places, scholar) as structured JSON"
  },
  "parse": {
   "label": "Parse · PDF/doc",
   "description": "PDF/document to text, with OCR where the provider supports it"
  },
  "watch": {
   "label": "Watch",
   "description": "Change detection / monitoring on a URL"
  }
 },
 "providers": {
  "serper": {
   "name": "Serper",
   "group": "Search",
   "category": "Google SERP scrape",
   "tier": "T1",
   "route": "/serper",
   "call": "https://api.nativeport.ai/serper/<native-path>",
   "docs": "https://docs.nativeport.ai/serper",
   "page": "https://nativeport.ai/providers/serper/",
   "pricing_entry": "$1.00 → $0.30 / 1k",
   "latency_note": "~0.6–1.7s",
   "provider_mcp": "community",
   "summary": "Google search results across web, news, images, places, maps and scholar verticals, plus an endpoint for scraping webpages.",
   "choose_if": "Pick it when the goal is the lowest-cost, fastest Google grounding and you'll synthesize the results on your own.",
   "avoid_if": "Not the pick if you require coverage beyond Google, richer SERP elements, or content extraction out of the box.",
   "evals": [
    {
     "verb": "serp",
     "label": "SERP verticals",
     "composite": 9.56,
     "rank": 1,
     "of": 4,
     "top": true,
     "measured": "2026-06-22",
     "note": "Lowest cost and latency; Google only.",
     "metrics": [
      {
       "key": "quality",
       "label": "Quality",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1003.8,
       "value": "1.0 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.0003,
       "value": "$0.0003 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 7.24,
     "rank": 3,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.569,
       "value": "0.57"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1480.8,
       "value": "1.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.000527,
       "value": "$0.00053 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "serpapi": {
   "name": "SerpApi",
   "group": "Search",
   "category": "Multi-engine SERP scrape",
   "tier": "T1",
   "route": "/serpapi",
   "call": "https://api.nativeport.ai/serpapi/<native-path>",
   "docs": "https://docs.nativeport.ai/serpapi",
   "page": "https://nativeport.ai/providers/serpapi/",
   "pricing_entry": "~$15 → $9 / 1k",
   "latency_note": "~1.7–2.0s",
   "provider_mcp": "official",
   "summary": "Google plus 80+ additional search engines as structured results — key handling is taken off your plate.",
   "choose_if": "The right call for compliance-sensitive teams, for breadth across many engines, or as the drop-in default in LangChain.",
   "avoid_if": "Skip it when queries are Google-only and price matters — Serper undercuts it there.",
   "evals": [
    {
     "verb": "serp",
     "label": "SERP verticals",
     "composite": 9.0,
     "rank": 3,
     "of": 4,
     "top": false,
     "measured": "2026-06-22",
     "note": "Every tested vertical is covered.",
     "metrics": [
      {
       "key": "quality",
       "label": "Quality",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1424.3,
       "value": "1.4 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.015,
       "value": "$0.015 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 6.1,
     "rank": 9,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.588,
       "value": "0.59"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2826.2,
       "value": "2.8 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.015307,
       "value": "$0.015 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "searchapi": {
   "name": "SearchAPI.io",
   "group": "Search",
   "category": "Multi-engine SERP scrape",
   "tier": "T2",
   "route": "/searchapi",
   "call": "https://api.nativeport.ai/searchapi/<native-path>",
   "docs": "https://docs.nativeport.ai/searchapi",
   "page": "https://nativeport.ai/providers/searchapi/",
   "pricing_entry": "$1.00–$4.00 / 1k",
   "latency_note": "real-time",
   "provider_mcp": "official",
   "summary": "One endpoint serving search results from 80-plus engines, Google, Bing and YouTube among them.",
   "choose_if": "Reach for it if you're after SerpApi-compatible JSON, cheaper, and billed only per successful search.",
   "avoid_if": "The catch: since Sept-2025 the num parameter is silently capped at 10, so large Google result pages are out.",
   "evals": [
    {
     "verb": "serp",
     "label": "SERP verticals",
     "composite": 9.02,
     "rank": 2,
     "of": 4,
     "top": false,
     "measured": "2026-06-22",
     "note": "Widest vertical coverage, with SerpApi-compatible JSON.",
     "metrics": [
      {
       "key": "quality",
       "label": "Quality",
       "raw": 0.985,
       "value": "0.98"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1930.0,
       "value": "1.9 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.004,
       "value": "$0.004 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 6.44,
     "rank": 8,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.574,
       "value": "0.57"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2485.2,
       "value": "2.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.006968,
       "value": "$0.007 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "brave": {
   "name": "Brave Search",
   "group": "Search",
   "category": "Independent crawler index",
   "tier": "T1",
   "route": "/brave",
   "call": "https://api.nativeport.ai/brave/<native-path>",
   "docs": "https://docs.nativeport.ai/brave",
   "page": "https://nativeport.ai/providers/brave/",
   "pricing_entry": "$5 / 1k",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "A 30B+ page search index built independently, spanning news, video, image and web verticals.",
   "choose_if": "Pick it when independence from Google and Bing matters, along with a privacy posture and grounding for AI.",
   "avoid_if": "Skip it when a single query has to return more than roughly 200 results.",
   "evals": [
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 7.02,
     "rank": 5,
     "of": 7,
     "top": false,
     "measured": "2026-06-21",
     "note": "Accurate answers, though per-query cost far exceeds peers.",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.279,
       "value": "0.28"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2388.4,
       "value": "2.4 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.06,
       "value": "$0.06 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 6.99,
     "rank": 4,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.639,
       "value": "0.64"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1271.4,
       "value": "1.3 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.007826,
       "value": "$0.0078 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "youcom": {
   "name": "You.com",
   "group": "Search",
   "category": "Own crawl index + Research API",
   "tier": "T2",
   "route": "/youcom",
   "call": "https://api.nativeport.ai/youcom/<native-path>",
   "docs": "https://docs.nativeport.ai/youcom",
   "page": "https://nativeport.ai/providers/youcom/",
   "pricing_entry": "$5 / 1k",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Own-index web search with an accompanying Research API that cites sources, aimed at grounding LLMs.",
   "choose_if": "For teams that want soft domain-boosting on an independent index, with a Research API that returns cited answers.",
   "avoid_if": "Not the pick if a flat response shape matters: results sit nested in results.web[] with snippets[], so an adapter is required.",
   "evals": [
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 7.79,
     "rank": 2,
     "of": 7,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.51,
       "value": "0.51"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4341.7,
       "value": "4.3 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.02,
       "value": "$0.02 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 7.41,
     "rank": 2,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.653,
       "value": "0.65"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1357.0,
       "value": "1.4 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.00766,
       "value": "$0.0077 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "dataforseo": {
   "name": "DataForSEO",
   "group": "Search",
   "category": "SEO & SERP data platform",
   "tier": "T2",
   "route": "/dataforseo",
   "call": "https://api.nativeport.ai/dataforseo/<native-path>",
   "docs": "https://docs.nativeport.ai/dataforseo",
   "page": "https://nativeport.ai/providers/dataforseo/",
   "pricing_entry": "$0.60 async / $2 live / 1k",
   "latency_note": "~5s std / ~6s live",
   "provider_mcp": "official",
   "summary": "SERP and SEO intelligence — keywords, rankings, backlinks — with the deepest taxonomy of SERP elements.",
   "choose_if": "Reach for it if the job is bulk asynchronous SERP scraping with webhooks and the fullest SERP-feature taxonomy.",
   "avoid_if": "The catch: responses nest deeply (tasks[].result[].items[]) and latency isn't low, which is genuine friction.",
   "evals": [
    {
     "verb": "serp",
     "label": "SERP verticals",
     "composite": 8.09,
     "rank": 4,
     "of": 4,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "quality",
       "label": "Quality",
       "raw": 0.929,
       "value": "0.93"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 8214.0,
       "value": "8.2 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.002,
       "value": "$0.002 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 7.1,
       "value": "7%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 5.86,
     "rank": 10,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.588,
       "value": "0.59"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2903.3,
       "value": "2.9 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.003402,
       "value": "$0.0034 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "tavily": {
   "name": "Tavily",
   "group": "Search",
   "category": "Agent-native search index",
   "tier": "T1",
   "route": "/tavily",
   "call": "https://api.nativeport.ai/tavily/<native-path>",
   "docs": "https://docs.nativeport.ai/tavily",
   "page": "https://nativeport.ai/providers/tavily/",
   "pricing_entry": "$8 (basic) / $16 (adv) / 1k",
   "latency_note": "~1.0s",
   "provider_mcp": "official",
   "summary": "A search index native to agents and RAG, returning snippets with relevance scores and an optional answer.",
   "choose_if": "Pick it when you're building the typical agent or RAG stack and want relevance scores plus an optional answer from a single call.",
   "avoid_if": "Not the pick if per-result dates matter, or if a documented SLA/compliance posture is required.",
   "evals": [
    {
     "verb": "crawl",
     "label": "Crawl",
     "composite": 8.38,
     "rank": 3,
     "of": 5,
     "top": false,
     "measured": "2026-06-22",
     "note": "Performs well through its /map variant.",
     "metrics": [
      {
       "key": "coverage",
       "label": "Coverage",
       "raw": 0.78,
       "value": "0.78"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 174.1,
       "value": "174 ms"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.013846,
       "value": "$0.014 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 7.13,
     "rank": 4,
     "of": 7,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.243,
       "value": "0.24"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1375.6,
       "value": "1.4 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.008,
       "value": "$0.008 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 6.66,
     "rank": 7,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.583,
       "value": "0.58"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2094.1,
       "value": "2.1 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.013714,
       "value": "$0.014 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "exa": {
   "name": "Exa",
   "group": "Search",
   "category": "Neural + keyword index",
   "tier": "T1",
   "route": "/exa",
   "call": "https://api.nativeport.ai/exa/<native-path>",
   "docs": "https://docs.nativeport.ai/exa",
   "page": "https://nativeport.ai/providers/exa/",
   "pricing_entry": "$7 / 1k (+content $1/1k)",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Semantic search driven by neural embeddings, offering find-similar, clean extraction and an integrated answer endpoint.",
   "choose_if": "Reach for it if the task is semantic discovery, find-similar lookups, research, or using its built-in /answer endpoint.",
   "avoid_if": "Skip it when full keyword/SERP parity is required; content and summary are billed per page and per type, and those charges stack.",
   "evals": [
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 7.9,
     "rank": 1,
     "of": 7,
     "top": true,
     "measured": "2026-06-21",
     "note": "Citation faithfulness ranks highest.",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.485,
       "value": "0.48"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1514.9,
       "value": "1.5 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.005,
       "value": "$0.005 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 6.7,
     "rank": 6,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.606,
       "value": "0.61"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1597.6,
       "value": "1.6 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.014015,
       "value": "$0.014 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "linkup": {
   "name": "Linkup",
   "group": "Search",
   "category": "Own crawl index",
   "tier": "T2",
   "route": "/linkup",
   "call": "https://api.nativeport.ai/linkup/<native-path>",
   "docs": "https://docs.nativeport.ai/linkup",
   "page": "https://nativeport.ai/providers/linkup/",
   "pricing_entry": "$5 / 1k",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "A search alternative that stays ToS-clean, offering sourced answers natively, structured JSON output, and markdown via /fetch.",
   "choose_if": "The right call when compliance matters and you want a SERP alternative that returns sourced answers and structured JSON natively.",
   "avoid_if": "The catch: no relevance scores, no per-result dates, and no geo controls are exposed.",
   "evals": [
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 6.91,
     "rank": 6,
     "of": 7,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.16,
       "value": "0.16"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2520.3,
       "value": "2.5 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.005,
       "value": "$0.005 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 5.47,
     "rank": 11,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.394,
       "value": "0.39"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 3246.3,
       "value": "3.2 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.012706,
       "value": "$0.013 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "parallel": {
   "name": "Parallel",
   "group": "Search",
   "category": "Agent-optimized search index",
   "tier": "T2",
   "route": "/parallel",
   "call": "https://api.nativeport.ai/parallel/<native-path>",
   "docs": "https://docs.nativeport.ai/parallel",
   "page": "https://nativeport.ai/providers/parallel/",
   "pricing_entry": "$5 (base) / $9 (pro) / 1k",
   "latency_note": "P50 <1s",
   "provider_mcp": "official + no-key MCP",
   "summary": "An agent-optimized index where the ranking follows a natural-language objective; results arrive as pre-compressed excerpts.",
   "choose_if": "Pick it for the least in-loop friction: a Search MCP that needs no key, with P50 under a second.",
   "avoid_if": "Not the pick if the Search response itself must include full content, relevance scores, or an answer already synthesized.",
   "evals": [
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 7.58,
     "rank": 3,
     "of": 7,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.485,
       "value": "0.48"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 16300.9,
       "value": "16.3 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.01,
       "value": "$0.01 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 6.76,
     "rank": 5,
     "of": 11,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.644,
       "value": "0.64"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2654.4,
       "value": "2.7 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.006216,
       "value": "$0.0062 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "jina": {
   "name": "Jina",
   "group": "Search",
   "category": "Search + read-to-markdown",
   "tier": "T2",
   "route": "/jina",
   "call": "https://api.nativeport.ai/jina/<native-path>",
   "docs": "https://docs.nativeport.ai/jina",
   "page": "https://nativeport.ai/providers/jina/",
   "pricing_entry": "~token-based",
   "latency_note": "low RPM",
   "provider_mcp": "official",
   "summary": "A URL-to-markdown Reader that benchmarks at the top of its class, plus search that hands back full-page markdown in a single call.",
   "choose_if": "Reach for it if a URL needs to become clean, LLM-ready markdown, or you want search and read combined in one call.",
   "avoid_if": "Skip it when high search RPM or lots of results per query matter — the default is ≤5 results and RPM runs low.",
   "evals": [
    {
     "verb": "parse",
     "label": "Parse · PDF/doc",
     "composite": 8.43,
     "rank": 2,
     "of": 3,
     "top": false,
     "measured": "2026-06-22",
     "note": "No OCR: scanned PDFs come back empty.",
     "metrics": [
      {
       "key": "text_accuracy",
       "label": "Text accuracy",
       "raw": 0.78,
       "value": "0.78"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 262.8,
       "value": "263 ms"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.0,
       "value": "$0 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "search",
     "label": "Search",
     "composite": 7.69,
     "rank": 1,
     "of": 11,
     "top": true,
     "measured": "2026-06-20",
     "note": "First across all three query classes.",
     "metrics": [
      {
       "key": "recall_at_10",
       "label": "Recall@10",
       "raw": 0.602,
       "value": "0.60"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1392.5,
       "value": "1.4 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.000332,
       "value": "$0.00033 / useful result"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "answer",
     "label": "Answer",
     "composite": 6.61,
     "rank": 7,
     "of": 7,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "answer_correctness",
       "label": "Correctness",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "citation_faithfulness",
       "label": "Citation faithfulness",
       "raw": 0.108,
       "value": "0.11"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2619.0,
       "value": "2.6 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.02,
       "value": "$0.02 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "scraperapi": {
   "name": "ScraperAPI",
   "group": "Scraping & Crawling",
   "category": "Single-call scraping API",
   "tier": "T1",
   "route": "/scraperapi",
   "call": "https://api.nativeport.ai/scraperapi/<native-path>",
   "docs": "https://docs.nativeport.ai/scraperapi",
   "page": "https://nativeport.ai/providers/scraperapi/",
   "pricing_entry": "~$0.49 / 1k (credit ×mult 1→75)",
   "latency_note": null,
   "provider_mcp": "none",
   "summary": "General scraping behind a single GET, with proxy rotation and automatic retries handled.",
   "choose_if": "The right call when the simplest unblocking request wins and MCP-native discovery isn't on your list.",
   "avoid_if": "The catch: credit multipliers make costs hard to see upfront, and there's no first-party MCP.",
   "evals": [
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 7.78,
     "rank": 5,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 0.875,
       "value": "0.88"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 27445.9,
       "value": "27.4 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.0049,
       "value": "$0.0049 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 12.5,
       "value": "12%"
      }
     ]
    },
    {
     "verb": "scrape_domain",
     "label": "Scrape-domain",
     "composite": 7.26,
     "rank": 4,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "value_accuracy",
       "label": "Accuracy",
       "raw": 0.733,
       "value": "0.73"
      },
      {
       "key": "field_fill",
       "label": "Field fill",
       "raw": 0.778,
       "value": "0.78"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2270.2,
       "value": "2.3 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.006685,
       "value": "$0.0067 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 6.53,
     "rank": 10,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.625,
       "value": "62%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 4.4,
       "value": "4.4 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2360.6,
       "value": "2.4 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.010192,
       "value": "$0.01 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 37.5,
       "value": "38%"
      }
     ]
    }
   ]
  },
  "firecrawl": {
   "name": "Firecrawl",
   "group": "Scraping & Crawling",
   "category": "Scrape + crawl + extract",
   "tier": "T1",
   "route": "/firecrawl",
   "call": "https://api.nativeport.ai/firecrawl/<native-path>",
   "docs": "https://docs.nativeport.ai/firecrawl",
   "page": "https://nativeport.ai/providers/firecrawl/",
   "pricing_entry": "~$0.83 / 1k (credit/page)",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "LLM-ready markdown that tops the benchmarks, plus schema-driven extraction, asynchronous crawling and an official MCP.",
   "choose_if": "Pick it for the top-scoring scrape and markdown quality, with crawl, scrape, screenshot and extract on one surface.",
   "avoid_if": "Skip it when hard targets meet a tight budget: stealth plus JSON output stacks to about 5–9 times the base credit.",
   "evals": [
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 9.81,
     "rank": 1,
     "of": 10,
     "top": true,
     "measured": "2026-06-20",
     "note": "Class-leading result; every anti-bot vendor cleared.",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 1.0,
       "value": "100%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 9.62,
       "value": "9.6 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 962.2,
       "value": "962 ms"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.002094,
       "value": "$0.0021 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 9.5,
     "rank": 1,
     "of": 8,
     "top": true,
     "measured": "2026-06-21",
     "note": "Highest rate of valid images.",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1258.3,
       "value": "1.3 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.001,
       "value": "$0.001 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "parse",
     "label": "Parse · PDF/doc",
     "composite": 8.82,
     "rank": 1,
     "of": 3,
     "top": true,
     "measured": "2026-06-22",
     "note": "Scanned-PDF OCR sets it apart.",
     "metrics": [
      {
       "key": "text_accuracy",
       "label": "Text accuracy",
       "raw": 0.907,
       "value": "0.91"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 293.2,
       "value": "293 ms"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.001103,
       "value": "$0.0011 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "extract_ai",
     "label": "Extract · AI/schema",
     "composite": 8.81,
     "rank": 2,
     "of": 4,
     "top": false,
     "measured": "2026-06-21",
     "note": "On the precision test it hallucinated a null field.",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 0.957,
       "value": "0.96"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 1795.9,
       "value": "1.8 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.005225,
       "value": "$0.0052 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "crawl",
     "label": "Crawl",
     "composite": 8.61,
     "rank": 1,
     "of": 5,
     "top": true,
     "measured": "2026-06-22",
     "note": "Leads for clean, path-scoped enumeration.",
     "metrics": [
      {
       "key": "coverage",
       "label": "Coverage",
       "raw": 0.92,
       "value": "0.92"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 16260.6,
       "value": "16.3 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.023913,
       "value": "$0.024 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "watch",
     "label": "Watch",
     "composite": 8.33,
     "rank": 1,
     "of": 1,
     "top": true,
     "measured": "2026-06-21",
     "note": "Uniquely offers synchronous change detection.",
     "metrics": [
      {
       "key": "classification_accuracy",
       "label": "Class. accuracy",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "diff_quality",
       "label": "Diff quality",
       "raw": 0.5,
       "value": "0.50"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2987.6,
       "value": "3.0 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.001,
       "value": "$0.001 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "act",
     "label": "Act · declarative",
     "composite": 7.41,
     "rank": 3,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 0.8,
       "value": "0.80"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4845.8,
       "value": "4.8 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.005,
       "value": "$0.005 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "act_agent",
     "label": "Act · NL-agent",
     "composite": 5.66,
     "rank": 2,
     "of": 2,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 0.667,
       "value": "0.67"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 70171.1,
       "value": "70.2 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.05,
       "value": "$0.05 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "scrapingbee": {
   "name": "ScrapingBee",
   "group": "Scraping & Crawling",
   "category": "Single-call scraping API",
   "tier": "T2",
   "route": "/scrapingbee",
   "call": "https://api.nativeport.ai/scrapingbee/<native-path>",
   "docs": "https://docs.nativeport.ai/scrapingbee",
   "page": "https://nativeport.ai/providers/scrapingbee/",
   "pricing_entry": "~$0.98 / 1k (JS)",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "A single REST surface: JS rendering, residential and stealth proxies, extraction via AI or CSS, markdown out.",
   "choose_if": "For teams that want stealth, rendering, declarative actions and extraction consolidated into one endpoint.",
   "avoid_if": "The catch: costs climb quickly — JS rendering defaults to on at 5 credits, and stealth runs 75.",
   "evals": [
    {
     "verb": "extract_rules",
     "label": "Extract · CSS rules",
     "composite": 9.23,
     "rank": 1,
     "of": 3,
     "top": true,
     "measured": "2026-06-22",
     "note": "Top-ranked rule-based extractor, at a fraction of AI-extract cost.",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2740.9,
       "value": "2.7 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.00098,
       "value": "$0.00098 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "act",
     "label": "Act · declarative",
     "composite": 8.72,
     "rank": 1,
     "of": 6,
     "top": true,
     "measured": "2026-06-22",
     "note": "Declarative browser actions: strongest showing.",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 5505.1,
       "value": "5.5 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.006,
       "value": "$0.006 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 8.57,
     "rank": 3,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 0.875,
       "value": "0.88"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2658.3,
       "value": "2.7 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.0028,
       "value": "$0.0028 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 12.5,
       "value": "12%"
      }
     ]
    },
    {
     "verb": "scrape_domain",
     "label": "Scrape-domain",
     "composite": 8.19,
     "rank": 3,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "value_accuracy",
       "label": "Accuracy",
       "raw": 0.895,
       "value": "0.90"
      },
      {
       "key": "field_fill",
       "label": "Field fill",
       "raw": 0.947,
       "value": "0.95"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 3591.4,
       "value": "3.6 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.01095,
       "value": "$0.011 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "extract_ai",
     "label": "Extract · AI/schema",
     "composite": 8.14,
     "rank": 3,
     "of": 4,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 0.893,
       "value": "0.89"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 3784.0,
       "value": "3.8 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.006719,
       "value": "$0.0067 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 7.45,
     "rank": 5,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.875,
       "value": "88%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 4.14,
       "value": "4.1 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 8929.9,
       "value": "8.9 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.005735,
       "value": "$0.0057 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "scrapfly": {
   "name": "Scrapfly",
   "group": "Scraping & Crawling",
   "category": "Single-call scraping API",
   "tier": "T1",
   "route": "/scrapfly",
   "call": "https://api.nativeport.ai/scrapfly/<native-path>",
   "docs": "https://docs.nativeport.ai/scrapfly",
   "page": "https://nativeport.ai/providers/scrapfly/",
   "pricing_entry": "~$3.37–4.13 / 1k",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Strong anti-bot bypass behind a single flag (asp=true), markdown and AI output, and a per-response cost breakdown.",
   "choose_if": "Pick it when anti-bot bypass that leads the benchmark, paired with the top measured AI-extraction accuracy, is the priority.",
   "avoid_if": "Not the pick if crawling or credit rollover matters; expect hard targets to cost around 30 credits per request.",
   "evals": [
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 9.48,
     "rank": 2,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "Passes each anti-bot vendor with the single asp=true flag.",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 1.0,
       "value": "100%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 9.62,
       "value": "9.6 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4500.6,
       "value": "4.5 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.002475,
       "value": "$0.0025 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "extract_ai",
     "label": "Extract · AI/schema",
     "composite": 8.96,
     "rank": 1,
     "of": 4,
     "top": true,
     "measured": "2026-06-21",
     "note": "Extraction accuracy ranks first among the set.",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4508.4,
       "value": "4.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.002,
       "value": "$0.002 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 8.56,
     "rank": 4,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 11967.6,
       "value": "12.0 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.002,
       "value": "$0.002 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "act",
     "label": "Act · declarative",
     "composite": 7.01,
     "rank": 4,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 0.8,
       "value": "0.80"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 17445.6,
       "value": "17.4 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.002,
       "value": "$0.002 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "zenrows": {
   "name": "ZenRows",
   "group": "Scraping & Crawling",
   "category": "Scraper API + CDP browser",
   "tier": "T2",
   "route": "/zenrows",
   "call": "https://api.nativeport.ai/zenrows/<native-path>",
   "docs": "https://docs.nativeport.ai/zenrows",
   "page": "https://nativeport.ai/providers/zenrows/",
   "pricing_entry": "~$1.40 / 1k (JS)",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "One key spans a scraper API together with a CDP scraping browser; heavy anti-bot sits behind a lone flag.",
   "choose_if": "Reach for it if a full scraping browser plus a scraper API under a single key, billed on success, fits your setup.",
   "avoid_if": "Skip it when your targets sit on its blocklist — in the corpus it produced heavy errors on *.toscrape.com.",
   "evals": [
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 7.31,
     "rank": 6,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.625,
       "value": "62%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 9.4,
       "value": "9.4 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4776.8,
       "value": "4.8 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.004704,
       "value": "$0.0047 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 25.0,
       "value": "25%"
      }
     ]
    },
    {
     "verb": "act",
     "label": "Act · declarative",
     "composite": 6.89,
     "rank": 5,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 0.8,
       "value": "0.80"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 10132.8,
       "value": "10.1 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.005,
       "value": "$0.005 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "extract_rules",
     "label": "Extract · CSS rules",
     "composite": 5.51,
     "rank": 3,
     "of": 3,
     "top": false,
     "measured": "2026-06-22",
     "note": "Every *.toscrape.com domain is blocklisted — an openly stated gap.",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 0.5,
       "value": "0.50"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4492.7,
       "value": "4.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.0028,
       "value": "$0.0028 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 50.0,
       "value": "50%"
      }
     ]
    },
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 2.47,
     "rank": 8,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "books.toscrape blocks it — a gap openly noted.",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 0.25,
       "value": "0.25"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 23258.2,
       "value": "23.3 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.0014,
       "value": "$0.0014 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 75.0,
       "value": "75%"
      }
     ]
    }
   ]
  },
  "crawlbase": {
   "name": "Crawlbase",
   "group": "Scraping & Crawling",
   "category": "Single-call + managed crawl",
   "tier": "T2",
   "route": "/crawlbase",
   "call": "https://api.nativeport.ai/crawlbase/<native-path>",
   "docs": "https://docs.nativeport.ai/crawlbase",
   "page": "https://nativeport.ai/providers/crawlbase/",
   "pricing_entry": "$3 / 1k std (success ×complexity)",
   "latency_note": null,
   "provider_mcp": "community",
   "summary": "Structured scrapers and markdown output alongside a managed asynchronous crawl queue; billing follows success, scaled by domain complexity.",
   "choose_if": "The right call when a managed crawl queue with success-based billing, priced by domain complexity, is what the job needs.",
   "avoid_if": "The catch: behavior is hard to predict — separate Normal and JS tokens, plus a body field whose type varies.",
   "evals": [
    {
     "verb": "scrape_domain",
     "label": "Scrape-domain",
     "composite": 7.17,
     "rank": 5,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "Instagram's anti-bot triggers non-deterministic behavior.",
     "metrics": [
      {
       "key": "value_accuracy",
       "label": "Accuracy",
       "raw": 0.711,
       "value": "0.71"
      },
      {
       "key": "field_fill",
       "label": "Field fill",
       "raw": 0.877,
       "value": "0.88"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 4684.1,
       "value": "4.7 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.002813,
       "value": "$0.0028 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 7.15,
     "rank": 6,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 0.625,
       "value": "0.62"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 3742.8,
       "value": "3.7 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.0015,
       "value": "$0.0015 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 25.0,
       "value": "25%"
      }
     ]
    },
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 7.08,
     "rank": 8,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.75,
       "value": "75%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 4.0,
       "value": "4.0 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 3543.2,
       "value": "3.5 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.006,
       "value": "$0.006 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 25.0,
       "value": "25%"
      }
     ]
    }
   ]
  },
  "oxylabs": {
   "name": "Oxylabs",
   "group": "Scraping & Crawling",
   "category": "Scraping API + proxy network",
   "tier": "T2",
   "route": "/oxylabs",
   "call": "https://api.nativeport.ai/oxylabs/<native-path>",
   "docs": "https://docs.nativeport.ai/oxylabs",
   "page": "https://nativeport.ai/providers/oxylabs/",
   "pricing_entry": "~$0.80–1.00 / 1k",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Enterprise scraping backed by a proxy network in 195-plus countries, dedicated parsers, and success-only billing.",
   "choose_if": "Pick it for enterprise-grade scraping, parsers dedicated to Amazon and Google, or its NL-agent mode, which leads the eval.",
   "avoid_if": "Not the pick if crawl enumeration scoped to a path is needed — the AI-prompt crawler cannot deliver that.",
   "evals": [
    {
     "verb": "scrape_domain",
     "label": "Scrape-domain",
     "composite": 8.74,
     "rank": 1,
     "of": 6,
     "top": true,
     "measured": "2026-06-22",
     "note": "Leading scraper, though official first-party APIs win where available.",
     "metrics": [
      {
       "key": "value_accuracy",
       "label": "Accuracy",
       "raw": 0.93,
       "value": "0.93"
      },
      {
       "key": "field_fill",
       "label": "Field fill",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2838.0,
       "value": "2.8 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.002151,
       "value": "$0.0022 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "extract_rules",
     "label": "Extract · CSS rules",
     "composite": 8.52,
     "rank": 2,
     "of": 3,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 9603.9,
       "value": "9.6 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.0012,
       "value": "$0.0012 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "act_agent",
     "label": "Act · NL-agent",
     "composite": 7.99,
     "rank": 1,
     "of": 2,
     "top": true,
     "measured": "2026-06-22",
     "note": "Front-runner in autonomous NL-agent mode.",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 47261.3,
       "value": "47.3 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.05,
       "value": "$0.05 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 7.1,
     "rank": 7,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.75,
       "value": "75%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 4.0,
       "value": "4.0 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 10534.3,
       "value": "10.5 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.001267,
       "value": "$0.0013 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "crawl",
     "label": "Crawl",
     "composite": 3.18,
     "rank": 5,
     "of": 5,
     "top": false,
     "measured": "2026-06-22",
     "note": "Path-scoped enumeration is beyond the AI-prompt crawler.",
     "metrics": [
      {
       "key": "coverage",
       "label": "Coverage",
       "raw": 0.265,
       "value": "0.27"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 35526.2,
       "value": "35.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.127358,
       "value": "$0.13 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 50.0,
       "value": "50%"
      }
     ]
    }
   ]
  },
  "brightdata": {
   "name": "Bright Data",
   "group": "Scraping & Crawling",
   "category": "Web Unlocker + Scraper API",
   "tier": "T1",
   "route": "/brightdata",
   "call": "https://api.nativeport.ai/brightdata/<native-path>",
   "docs": "https://docs.nativeport.ai/brightdata",
   "page": "https://nativeport.ai/providers/brightdata/",
   "pricing_entry": "~$1.30–1.50 / 1k",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Measured strongest against anti-bot — 98% success on the hardest sites — with pre-built structured scrapers and a top compliance posture.",
   "choose_if": "The right call when the toughest anti-bot targets are in scope and the strongest measured unblocker plus a serious compliance posture matter.",
   "avoid_if": "The catch: no crawl link-discovery — the url_collection dataset comes back with the seed URL alone.",
   "evals": [
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 7.82,
     "rank": 4,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.75,
       "value": "75%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 5.08,
       "value": "5.1 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 3852.7,
       "value": "3.9 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.001933,
       "value": "$0.0019 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "scrape_domain",
     "label": "Scrape-domain",
     "composite": 6.66,
     "rank": 6,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "value_accuracy",
       "label": "Accuracy",
       "raw": 0.722,
       "value": "0.72"
      },
      {
       "key": "field_fill",
       "label": "Field fill",
       "raw": 0.75,
       "value": "0.75"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 8126.9,
       "value": "8.1 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.003463,
       "value": "$0.0035 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 25.0,
       "value": "25%"
      }
     ]
    },
    {
     "verb": "crawl",
     "label": "Crawl",
     "composite": 4.47,
     "rank": 4,
     "of": 5,
     "top": false,
     "measured": "2026-06-22",
     "note": "No link discovery: url_collection hands back just the seed.",
     "metrics": [
      {
       "key": "coverage",
       "label": "Coverage",
       "raw": 0.1,
       "value": "0.10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 6530.6,
       "value": "6.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.01,
       "value": "$0.01 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "spider": {
   "name": "Spider",
   "group": "Scraping & Crawling",
   "category": "Crawl / AI-focused platform",
   "tier": "T2",
   "route": "/spider",
   "call": "https://api.nativeport.ai/spider/<native-path>",
   "docs": "https://docs.nativeport.ai/spider",
   "page": "https://nativeport.ai/providers/spider/",
   "pricing_entry": "~$0.03 / 1k (usage-based)",
   "latency_note": null,
   "provider_mcp": "official (22 tools)",
   "summary": "Recursive crawling at speed, markdown that comes back clean, and per-page USD costs reported inside the response.",
   "choose_if": "For teams that value crawl speed, clean markdown, and per-page pricing with no multipliers to decode.",
   "avoid_if": "Skip it when declarative actions matter — clicks no-op in live runs — or when usage-based billing must be forecastable.",
   "evals": [
    {
     "verb": "crawl",
     "label": "Crawl",
     "composite": 8.54,
     "rank": 2,
     "of": 5,
     "top": false,
     "measured": "2026-06-22",
     "note": "Quick at recursive crawling.",
     "metrics": [
      {
       "key": "coverage",
       "label": "Coverage",
       "raw": 0.771,
       "value": "0.77"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2888.4,
       "value": "2.9 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 6.2e-05,
       "value": "$6.2e-05 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "parse",
     "label": "Parse · PDF/doc",
     "composite": 6.99,
     "rank": 3,
     "of": 3,
     "top": false,
     "measured": "2026-06-22",
     "note": "Scanned PDFs yield raw bytes.",
     "metrics": [
      {
       "key": "text_accuracy",
       "label": "Text accuracy",
       "raw": 0.6,
       "value": "0.60"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 2006.3,
       "value": "2.0 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 3.8e-05,
       "value": "$3.8e-05 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 6.73,
     "rank": 9,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 0.5,
       "value": "50%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 9.62,
       "value": "9.6 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 12120.0,
       "value": "12.1 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.00013,
       "value": "$0.00013 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 5.03,
     "rank": 7,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 0.5,
       "value": "0.50"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 0.5,
       "value": "0.50"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 8410.0,
       "value": "8.4 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.001,
       "value": "$0.001 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 37.5,
       "value": "38%"
      }
     ]
    },
    {
     "verb": "act",
     "label": "Act · declarative",
     "composite": 1.5,
     "rank": 6,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "Live declarative clicks do nothing.",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 0.0,
       "value": "0.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 35091.3,
       "value": "35.1 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.001,
       "value": "$0.001 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "zyte": {
   "name": "Zyte",
   "group": "Scraping & Crawling",
   "category": "Single-endpoint extraction",
   "tier": "T1",
   "route": "/zyte",
   "call": "https://api.nativeport.ai/zyte/<native-path>",
   "docs": "https://docs.nativeport.ai/zyte",
   "page": "https://nativeport.ai/providers/zyte/",
   "pricing_entry": "$0.13–$1.27 / 1k (HTTP)",
   "latency_note": null,
   "provider_mcp": "community",
   "summary": "A single endpoint pairing automatic ban-management with AI extraction typed for product, article and job pages.",
   "choose_if": "Pick it when ban-management should be automatic and product, article or job pages need typed AI extraction.",
   "avoid_if": "Not the pick if extraction must include custom fields; the schema is fixed and won't accommodate them.",
   "evals": [
    {
     "verb": "screenshot",
     "label": "Screenshot",
     "composite": 9.04,
     "rank": 2,
     "of": 8,
     "top": false,
     "measured": "2026-06-21",
     "note": "",
     "metrics": [
      {
       "key": "valid_image_rate",
       "label": "Valid image",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "full_page_support",
       "label": "Full-page",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 5874.5,
       "value": "5.9 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.001,
       "value": "$0.001 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "scrape",
     "label": "Scrape",
     "composite": 8.63,
     "rank": 3,
     "of": 10,
     "top": false,
     "measured": "2026-06-20",
     "note": "Gets past every anti-bot vendor.",
     "metrics": [
      {
       "key": "block_bypass_success_rate",
       "label": "Anti-bot bypass",
       "raw": 1.0,
       "value": "100%"
      },
      {
       "key": "markdown_cleanliness",
       "label": "Markdown clean",
       "raw": 4.25,
       "value": "4.2 / 10"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 6518.4,
       "value": "6.5 s"
      },
      {
       "key": "cost_per_successful_page_usd",
       "label": "Cost",
       "raw": 0.000687,
       "value": "$0.00069 / success"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "act",
     "label": "Act · declarative",
     "composite": 8.5,
     "rank": 2,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "task_success",
       "label": "Task success",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 11846.7,
       "value": "11.8 s"
      },
      {
       "key": "cost_per_call_usd",
       "label": "Cost",
       "raw": 0.001,
       "value": "$0.001 / call"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    },
    {
     "verb": "extract_ai",
     "label": "Extract · AI/schema",
     "composite": 5.7,
     "rank": 4,
     "of": 4,
     "top": false,
     "measured": "2026-06-21",
     "note": "Custom fields aren't possible under its fixed schema.",
     "metrics": [
      {
       "key": "field_accuracy",
       "label": "Field accuracy",
       "raw": 0.55,
       "value": "0.55"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 6503.6,
       "value": "6.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.001818,
       "value": "$0.0018 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "apify": {
   "name": "Apify",
   "group": "Browser Automation",
   "category": "Actor marketplace",
   "tier": "T2",
   "route": "/apify",
   "call": "https://api.nativeport.ai/apify/<native-path>",
   "docs": "https://docs.nativeport.ai/apify",
   "page": "https://nativeport.ai/providers/apify/",
   "pricing_entry": "varies (CU + rental + result)",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Scraping and automation via a 7,000+ Actor marketplace, consolidated on one key and one bill.",
   "choose_if": "Reach for it if an Actor already exists for your target site or task and building a scraper can be skipped.",
   "avoid_if": "The catch: there is no universal response schema, since every Actor defines its own item shape.",
   "evals": [
    {
     "verb": "scrape_domain",
     "label": "Scrape-domain",
     "composite": 8.23,
     "rank": 2,
     "of": 6,
     "top": false,
     "measured": "2026-06-22",
     "note": "",
     "metrics": [
      {
       "key": "value_accuracy",
       "label": "Accuracy",
       "raw": 0.95,
       "value": "0.95"
      },
      {
       "key": "field_fill",
       "label": "Field fill",
       "raw": 1.0,
       "value": "1.00"
      },
      {
       "key": "latency_p50_ms",
       "label": "Latency p50",
       "raw": 8533.8,
       "value": "8.5 s"
      },
      {
       "key": "cost_per_useful_usd",
       "label": "Cost",
       "raw": 0.003158,
       "value": "$0.0032 / useful"
      },
      {
       "key": "error_rate_pct",
       "label": "Errors",
       "raw": 0.0,
       "value": "0%"
      }
     ]
    }
   ]
  },
  "browserbase": {
   "name": "Browserbase",
   "group": "Browser Automation",
   "category": "Browser-as-a-service",
   "tier": "T2",
   "route": "/browserbase",
   "call": "https://api.nativeport.ai/browserbase/<native-path>",
   "docs": "https://docs.nativeport.ai/browserbase",
   "page": "https://nativeport.ai/providers/browserbase/",
   "pricing_entry": "$0.12 / browser-hr (+ GB)",
   "latency_note": null,
   "provider_mcp": "official (Stagehand)",
   "summary": "Cloud headless browser sessions, driven through Playwright or Puppeteer, suited to auth-walled and multi-step flows.",
   "choose_if": "The right call when flows are stateful, multi-step or behind a login, and driving the browser yourself is the plan.",
   "avoid_if": "Not the pick for a one-shot URL-to-content call: what comes back is a session handle rather than content.",
   "evals": [],
   "gated": [
    {
     "verbs": [
      "act",
      "act_agent",
      "screenshot"
     ],
     "label": "Act / Screenshot",
     "note": "Evaluated but unscored: Browserbase hands you a CDP browser session to drive, not a synchronous goal-in/content-out REST call, so the request/response corpora can't exercise it without a stateful adapter."
    }
   ]
  },
  "browserless": {
   "name": "Browserless",
   "group": "Browser Automation",
   "category": "Stateless browser processing",
   "tier": null,
   "route": "/browserless",
   "call": "https://api.nativeport.ai/browserless/<native-path>",
   "docs": "https://docs.nativeport.ai/browserless",
   "page": "https://nativeport.ai/providers/browserless/",
   "pricing_entry": "$0.004 / accepted forwarded attempt",
   "latency_note": "≤30s bound per call",
   "provider_mcp": "none",
   "summary": "One call in, a rendered result out: screenshot, PDF, HTML, or a CSS-selector scrape from a single page load.",
   "choose_if": "Reach for it when the job is a single page — grab a screenshot, PDF, rendered HTML, or a structured CSS-selector scrape — and there's no session to keep alive.",
   "avoid_if": "Not the pick for a multi-step, stateful flow: driving a Playwright/Puppeteer session yourself, logins, or anything spanning more than one page load sits outside this route.",
   "evals": [],
   "gated": [
    {
     "verbs": [
      "screenshot",
      "extract_rules"
     ],
     "label": "Screenshot / Extract · CSS rules",
     "note": "Not yet benchmarked: the newly added Browserless fixed REST surface has not entered the current benchmark snapshot, so no score is published yet."
    }
   ]
  },
  "steel": {
   "name": "Steel",
   "group": "Browser Automation",
   "category": "Stateless browser processing",
   "tier": null,
   "route": "/steel",
   "call": "https://api.nativeport.ai/steel/<native-path>",
   "docs": "https://docs.nativeport.ai/steel",
   "page": "https://nativeport.ai/providers/steel/",
   "pricing_entry": "$0.005 / forwarded call",
   "latency_note": null,
   "provider_mcp": "official (steel-mcp-server, drives Steel's own CDP sessions — not this route)",
   "summary": "Three fixed actions — scrape to Markdown/HTML, screenshot, or PDF — one page load in, one response out.",
   "choose_if": "Reach for it when the job is one URL and the output is page content, a screenshot, or a PDF — no session to keep alive, and no query-string configuration to get right.",
   "avoid_if": "Not the pick for a stateful flow: logins, multi-step interaction, a live session to drive, or Steel's own proxy/CAPTCHA handling all sit outside this route.",
   "evals": [],
   "gated": [
    {
     "verbs": [
      "scrape",
      "screenshot"
     ],
     "label": "Scrape / Screenshot",
     "note": "Not yet benchmarked: the newly added Steel Browser Tools surface has not entered the current benchmark snapshot, so no score is published yet."
    }
   ]
  },
  "elevenlabs": {
   "name": "ElevenLabs",
   "group": "Voice & Audio",
   "category": "Text-to-speech & voice",
   "tier": null,
   "route": "/elevenlabs",
   "call": "https://api.nativeport.ai/elevenlabs/<native-path>",
   "docs": "https://docs.nativeport.ai/elevenlabs",
   "page": "https://nativeport.ai/providers/elevenlabs/",
   "pricing_entry": "see ElevenLabs pricing",
   "latency_note": null,
   "provider_mcp": "official",
   "summary": "Wildcard routing exposes the complete ElevenLabs REST surface for voice and text-to-speech.",
   "choose_if": "Pick it when voice cloning or high-quality text-to-speech should run on the key you already use.",
   "avoid_if": null,
   "evals": []
  },
  "fishaudio": {
   "name": "Fish Audio",
   "group": "Voice & Audio",
   "category": "TTS, transcription & voice design",
   "tier": null,
   "route": "/fishaudio",
   "call": "https://api.nativeport.ai/fishaudio/<native-path>",
   "docs": "https://docs.nativeport.ai/fishaudio",
   "page": "https://nativeport.ai/providers/fishaudio/",
   "pricing_entry": "$15/1M UTF-8 bytes TTS / $0.36/audio-hr ASR / $0.01/req voice-design",
   "latency_note": null,
   "provider_mcp": "community",
   "summary": "Four fixed routes reach Fish Audio's text-to-speech, transcription, and from-a-description voice-design models, each metered on the exact unit Fish Audio itself bills — bytes, audio-hours, or a flat per-call rate.",
   "choose_if": "Pick it for production text-to-speech with expressive, natural-sounding output, real speech-to-text, or building a new voice from a written description, all landing on the same key and balance as everything else here.",
   "avoid_if": "Skip it for persistent voice-clone models or account-balance visibility: Fish Audio's model-management and wallet endpoints aren't mounted, since a shared gateway key would let one customer see or reuse another's saved models and balance. Per-request zero-shot cloning still works on a single `/v1/tts` call, and Fish Audio's WebSocket streaming endpoint isn't proxied either — its chunked, timestamped HTTP streaming route covers the same low-latency case instead.",
   "evals": []
  },
  "openai": {
   "name": "OpenAI",
   "group": "Model Inference",
   "category": "Chat, embeddings & moderation API",
   "tier": null,
   "route": "/openai",
   "call": "https://api.nativeport.ai/openai/<native-path>",
   "docs": "https://docs.nativeport.ai/openai",
   "page": "https://nativeport.ai/providers/openai/",
   "pricing_entry": "$0.02 → $45 / 1M tokens (gpt-5.6 family: Sol/Terra/Luna, cache- & context-tiered; embeddings/moderation cheaper or free)",
   "latency_note": null,
   "provider_mcp": "none",
   "summary": "OpenAI's Responses, Chat Completions, embeddings and moderation endpoints, metered per token against the same balance as the rest of the catalog, with gpt-5.6's cache- and context-tiered Standard rates read straight from each response.",
   "choose_if": "Pick it when the task calls for an OpenAI model by name and per-token spend should land on the one ledger you already watch.",
   "avoid_if": "Skip it for anything outside the gateway's admitted surface: only a fixed, maintained model list and a closed set of request fields are reachable, and everything else is rejected before it reaches OpenAI.",
   "evals": []
  },
  "anthropic": {
   "name": "Anthropic",
   "group": "Model Inference",
   "category": "Claude Messages API",
   "tier": null,
   "route": "/anthropic",
   "call": "https://api.nativeport.ai/anthropic/<native-path>",
   "docs": "https://docs.nativeport.ai/anthropic",
   "page": "https://nativeport.ai/providers/anthropic/",
   "pricing_entry": "$1 → $25 / 1M tokens (per model, cache-tiered)",
   "latency_note": null,
   "provider_mcp": "none",
   "summary": "Claude's Messages API behind the same policed-route pattern as the OpenAI proxy, cache-tier pricing included.",
   "choose_if": "Pick it for Claude's models specifically, with prompt-cache pricing tiers read straight from each response and billed to the one balance.",
   "avoid_if": "Skip it for anything outside the gateway's admitted surface: only a fixed, current Claude model list and a closed set of request fields are admitted here.",
   "evals": []
  },
  "grok": {
   "name": "Grok",
   "group": "Model Inference",
   "category": "xAI's Grok chat & Responses API",
   "tier": null,
   "route": "/grok",
   "call": "https://api.nativeport.ai/grok/<native-path>",
   "docs": "https://docs.nativeport.ai/grok",
   "page": "https://nativeport.ai/providers/grok/",
   "pricing_entry": "$1 → $12 / 1M tokens (per model, context-tiered; dollar-direct metering)",
   "latency_note": null,
   "provider_mcp": "none",
   "summary": "xAI's Grok chat and Responses API, billed from the dollar cost each response reports rather than a maintained price table.",
   "choose_if": "Pick it for Grok's models specifically, where the real per-call cost rides in the response itself instead of a separately kept price list.",
   "avoid_if": "Skip it for anything outside the gateway's admitted surface: only a fixed model list and a closed set of request fields are reachable, same as the other model-inference routes here.",
   "evals": []
  },
  "huggingface": {
   "name": "Hugging Face",
   "group": "Model Inference",
   "category": "Multi-provider chat inference router",
   "tier": null,
   "route": "/huggingface",
   "call": "https://api.nativeport.ai/huggingface/<native-path>",
   "docs": "https://docs.nativeport.ai/huggingface",
   "page": "https://nativeport.ai/providers/huggingface/",
   "pricing_entry": "$0.05 → $4.40 / 1M tokens (per model+provider pin, pass-through)",
   "latency_note": null,
   "provider_mcp": "none",
   "summary": "Hugging Face's Inference Providers router, fanned out across competing serving providers behind one chat-completions endpoint.",
   "choose_if": "Pick it to reach open models served by whichever backing provider is cataloged for them, without separate accounts or price lists per provider.",
   "avoid_if": "The leanest of the model-inference routes: no files, batches or fine-tuning surface, and no access to the router's own fastest/cheapest/preferred routing — chat completions only, pinned to specific cataloged (model, provider) pairs.",
   "evals": []
  }
 }
}
