webscrape.dev

HTTP/2 Fingerprinting

HTTP/2 fingerprinting identifies a client by how it sets up and drives the connection rather than by what it puts in the headers. Four inputs are usually combined into one signature: the parameters in the client's opening SETTINGS frame, the increment on its first connection-level WINDOW_UPDATE, the stream priority tree it declares, and the order in which it emits the request pseudo-headers. The combined form is commonly called the Akamai fingerprint, after the notation that popularized it.

The values differ between stacks because the specification leaves them open. RFC 9113 defines six SETTINGS parameters with defaults (HEADER_TABLE_SIZE 4,096 octets, ENABLE_PUSH 1, INITIAL_WINDOW_SIZE 65,535 octets, MAX_FRAME_SIZE 16,384 octets, and no initial limit on MAX_CONCURRENT_STREAMS or MAX_HEADER_LIST_SIZE; read on rfc-editor.org 2026-07-27), and a client may override any subset, in any order, or none. Pseudo-headers work the same way. The spec requires that they precede regular field lines but sets no ordering among :method, :scheme, :authority and :path (RFC 9113 section 8.3, read on httpwg.org 2026-07-27). Every implementation therefore picks a sequence and keeps it. Browsers emit one; most client libraries emit another, and the difference is a single stable string. The HTTP/1.1 equivalent is header casing and order: field names are case-insensitive, so libraries canonicalize them (Go's net/http rewrites to Title-Case) and write them in an order no browser produces.

This is why a TLS impersonation fix often only half works. A client can replay a byte-perfect Chrome ClientHello and then announce a Go or Python HTTP/2 stack one frame later. The two checks are independent, they run at different layers, and passing one says nothing about the other. When JA3 or JA4 work moves a target from blocked to intermittently blocked, the HTTP/2 layer is the next place to look.

Capture your own traffic before guessing at values. The second practical consequence is that the fingerprint is not entirely yours to control. Any service that terminates TLS and re-originates HTTP/2 presents its own SETTINGS and pseudo-header order to the target. For managed products like Scrapfly, ZenRows, ScrapeNinja and Scrappey that is the product, and it is what you are paying for. It is a surprise inside a proxy tier you assumed was a plain CONNECT tunnel. Ask any vendor which of the two their endpoint does, because that answer decides whether your fingerprint work reaches the target at all.

Tools that handle http/2 fingerprinting

4 tools in the webscrape.dev directory are commonly used for http/2 fingerprinting workflows, spanning web scraping apis. Each is reviewed independently with pricing and editorial assessment.

Scrapfly

Scrapfly is an API-first web scraping and browser automation platform built around a single endpoint that handles anti-bot bypass (including Cloudflare, Akamai, DataDome, and PerimeterX), JavaScript rendering, and rotating residential and datacenter proxies across 190+ countries. It returns HTML, Markdown, plain text, JSON, or screenshots. The product line extends beyond the core scraping API to a Cloud Browser, an LLM-powered Extraction API, a Crawler API, an AI Browser Agent, and an MCP server for Claude, Cursor, and Cline. Scrapfly was founded in 2017 for internal use and opened to the public in 2020. It is operated by Joam Intelligence, LLC, a bootstrapped company, and ships SDKs for Python, TypeScript, Go, Rust, and Scrapy.

Freemium
ZenRows

ZenRows is a web scraping API company based in Spain, initially bootstrapped and later seed-funded. Its Universal Scraper API returns page HTML or structured data from a single call and handles premium proxy rotation, anti-bot and CAPTCHA bypass, and headless JS rendering. The product line also includes a cloud-hosted Scraping Browser for teams running their own Puppeteer or Playwright automation, plus a residential proxy network with more than 55 million IPs and geotargeting.

Freemium
ScrapeNinja

ScrapeNinja is a web scraping API run by developer Anthony Sidashin. It has a fast raw-request endpoint (/scrape) with Chrome fingerprint emulation to bypass bot detection and Cloudflare, plus a full headless-browser endpoint (/scrape-js) with JavaScript evaluation for dynamic pages. Rotating datacenter proxies span six regions, with optional paid premium proxies, automatic retries based on response codes and timeouts, and JavaScript-based extractors that turn HTML into structured JSON. A browser-based sandbox lets you build and test scrapers without code, and the API ships with an OpenAPI spec and an official n8n integration node.

Freemium
Scrappey

Scrappey is a web scraping API that pulls publicly available web data through direct HTTP requests or full browser automation in Chrome and Firefox. It handles JavaScript rendering, CAPTCHA challenges, and Cloudflare verification flows. Requests route through a pool of more than 50 million residential IPs across 195+ countries, and output comes back as HTML, JSON, cookies, or markdown formatted for LLM input. It supports over 30 browser automation actions and charges per request rather than by subscription; failed requests are not billed.

Freemium

Browse by category

Web Scraping APIs Managed endpoints that fetch and parse pages for you, handling proxies, browsers, and anti-bot defenses.