Discover/Peet API
live

Peet APItls.peet.ws

Get JA3, JA4, Akamai HTTP/2, and PeetPrint fingerprint hashes plus full TLS cipher/extension data for any HTTP client via the tls.peet.ws API.

Endpoint health
verified 20h ago
get_tls
get_all
get_fingerprints
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the Peet API?

The tls.peet.ws API exposes 3 endpoints that return live TLS and HTTP/2 fingerprint data for the calling client, including JA3, JA4, Akamai, and PeetPrint hashes. The get_all endpoint returns the full picture: cipher suites, TLS extensions, HTTP/2 frames, TCP/IP packet details, client IP, HTTP method, user agent, and all fingerprint strings in a single response object.

Try it

No input parameters required.

api.parse.bot/scraper/146dfd2e-1372-4c03-b84c-ba2a6b10e352/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/146dfd2e-1372-4c03-b84c-ba2a6b10e352/get_all' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace tls-peet-ws-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: TLS Peet fingerprinting SDK — analyze your connection's TLS profile."""
from parse_apis.tls_peet_ws_fingerprinting_api import TlsPeet, UpstreamError

client = TlsPeet()

# Quick fingerprint summary — lightweight, returns just the hashes.
summary = client.fingerprintsummaries.get()
print(f"JA3 Hash: {summary.ja3_hash}")
print(f"JA4: {summary.ja4}")
print(f"Akamai Hash: {summary.akamai_hash}")
print(f"PeetPrint Hash: {summary.peetprint_hash}")
print(f"HTTP Version: {summary.http_version}")

# Full connection profile — includes TLS, HTTP/2, TCP/IP, and user agent.
profile = client.connectionprofiles.get()
print(f"IP: {profile.ip}")
print(f"User Agent: {profile.user_agent}")
print(f"TLS Version: {profile.tls.tls_version_negotiated}")
print(f"Ciphers offered: {len(profile.tls.ciphers)}")
print(f"Akamai HTTP/2 fingerprint: {profile.http2.akamai_fingerprint_hash}")
print(f"Dst Port: {profile.tcpip.dst_port}")

# TLS-only profile — no HTTP/2 frames, focused on cipher/extension analysis.
try:
    tls_only = client.tlsprofiles.get()
    print(f"TLS Record Version: {tls_only.tls.tls_version_record}")
    print(f"PeetPrint: {tls_only.tls.peetprint_hash}")
except UpstreamError as exc:
    print(f"TLS endpoint unavailable: {exc}")

print("exercised: fingerprintsummaries.get / connectionprofiles.get / tlsprofiles.get")
All endpoints · 3 totalmissing one? ·

Retrieve the complete TLS fingerprint data including all TLS details, HTTP/2 frames, TCP/IP info, request headers, user agent, and all fingerprint hashes (JA3, JA4, Akamai, PeetPrint). Returns a single object with all connection analysis data. No input parameters required — the server analyzes the incoming connection itself.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "ip": "string - Client IP address and port",
    "tls": "object - TLS details including ciphers, extensions, tls_version_record, tls_version_negotiated, ja3, ja3_hash, ja4, ja4_r, peetprint, peetprint_hash, client_random, session_id",
    "http2": "object - HTTP/2 details including akamai_fingerprint, akamai_fingerprint_hash, sent_frames array",
    "tcpip": "object - TCP/IP details including cap_length, dst_port, src_port, ip, tcp sub-objects",
    "donate": "string - Donation message",
    "method": "string - HTTP method used",
    "user_agent": "string - User agent string sent in request",
    "http_version": "string - HTTP version used (e.g. h2)"
  }
}

About the Peet API

What the API Returns

Each endpoint reflects the TLS connection properties of whichever HTTP client makes the request. get_all returns the most complete response: a tls object with cipher suites, extensions, negotiated TLS version, and fingerprints (ja3, ja3_hash, ja4, ja4_r, peetprint, peetprint_hash); an http2 object with akamai_fingerprint, akamai_fingerprint_hash, and the raw sent_frames array; a tcpip object with source/destination ports and IP-level packet details; plus the client ip, user_agent, method, and http_version.

Fingerprint-Only and TLS-Only Variants

get_fingerprints returns just the nine hash and fingerprint string fields — ja3, ja3_hash, ja4, ja4_r, akamai, akamai_hash, peetprint, peetprint_hash, and http_version — without the full extension list, raw frames, or TCP/IP breakdown. Use it when you only need to identify or compare a client's fingerprint profile. get_tls sits between the two: it returns the full tls object (ciphers array, extensions array, all fingerprints) but leaves ip, method, http_version, and donate as empty strings, and returns empty sub-objects for TCP/IP.

No Input Parameters

None of the three endpoints accept query parameters or request bodies. The fingerprint data is derived entirely from the incoming connection, so the caller's HTTP client configuration — TLS library, cipher order, extension list, HTTP/2 settings frames — determines what gets returned. This makes the API useful as a mirror for verifying how a client appears to anti-bot or CDN systems.

Fingerprint Standards Covered

JA3 is an MD5 hash of TLS client-hello fields widely used in network security tooling. JA4 is a newer, structured alternative designed to be more stable across TLS library versions. The Akamai HTTP/2 fingerprint captures HTTP/2 SETTINGS and WINDOW_UPDATE frame ordering, which CDN and WAF systems use to distinguish browser traffic from scripted clients. PeetPrint is an extended fingerprint that incorporates additional TLS handshake signals beyond what JA3 covers.

Reliability & maintenanceVerified

The Peet API is a managed, monitored endpoint for tls.peet.ws — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tls.peet.ws changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official tls.peet.ws API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
20h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Verify that a headless browser or HTTP client produces a browser-like JA3/JA4 hash before deploying it against bot-protected endpoints
  • Compare akamai_fingerprint values across different HTTP libraries to understand how CDN WAFs distinguish them
  • Audit TLS cipher suite ordering in a custom TLS stack using the tls.ciphers array from get_tls
  • Build a regression test that asserts a client's peetprint_hash does not change after upgrading TLS dependencies
  • Log and compare sent_frames from the http2 object to debug HTTP/2 SETTINGS negotiation differences between environments
  • Confirm that a proxy or VPN preserves the original client's TLS fingerprint by comparing ja4 before and after routing
  • Identify client TLS extension order using the tls.extensions array to diagnose mismatches with server-side fingerprint blocklists
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does tls.peet.ws have an official developer API?+
tls.peet.ws is itself a public fingerprinting service with no separately documented developer API or SDK. The endpoints available here expose its fingerprint data in a structured, machine-readable form.
What is the difference between `get_all`, `get_fingerprints`, and `get_tls`?+
get_all returns every field: full TLS cipher/extension arrays, HTTP/2 frames, TCP/IP packet details, client IP, user agent, and all fingerprint hashes. get_fingerprints returns only the nine fingerprint hash and string fields with no raw arrays. get_tls returns the full tls object including ciphers and extensions, but omits HTTP/2 frames and leaves IP, method, and http_version as empty strings.
Does the API return historical or stored fingerprint data for a given IP address?+
No. Every response reflects the live connection made at request time. There is no stored history, lookup by IP, or comparison across past requests. You can fork this API on Parse and revise it to add a persistence or comparison layer if historical tracking is needed.
Does the API expose TLS certificate details from the server side, such as the server's certificate chain?+
Not currently. The API covers client-side TLS handshake signals — cipher suites, extensions, and fingerprint hashes — as seen from the server's perspective. Server certificate data is not included. You can fork the API on Parse and revise it to add an endpoint targeting server certificate inspection if that data is needed.
Are there quirks in what `get_tls` returns compared to `get_all`?+
Yes. On get_tls, the ip, method, http_version, and donate fields are always empty strings, and the tcpip object contains empty ip and tcp sub-objects. If you need those fields, use get_all instead. This is expected behavior, not a data gap.
Page content last updated . Spec covers 3 endpoints from tls.peet.ws.
Related APIs in Developer ToolsSee all →
crt.sh API
Search for SSL/TLS certificates across public transparency logs by domain, fingerprint, serial number, or public key, and retrieve detailed certificate information including issuer, validity dates, and certificate chain details. Monitor certificate issuance for domains you care about to track security changes and detect unauthorized certificates.
api-public-docs.cs-prod.leetify.com API
Access CS2 player statistics, match history, and individual game performance data from Leetify's competitive database. Look up player profiles by Steam64 ID or Leetify user ID and retrieve comprehensive match details including per-round metrics and performance breakdowns.
teepublic.com API
Search and browse products from TeePublic's print-on-demand marketplace, discover artists and their designs, and explore product types and featured creators. Get detailed information about specific products, artist profiles, and curated collections to find the perfect custom apparel and merchandise.
solscan.io API
solscan.io API
quickref.me API
Search and retrieve quick reference guides for hundreds of developer tools, languages, and frameworks from quickref.me. Browse all available cheatsheets, search by keyword, or fetch full content for any topic to instantly access the commands, syntax, and usage notes you need.
csgo.steamanalyst.com API
Track CS2 skin prices in real-time, search for specific skins, and analyze market trends with historical pricing data and top gainers. Compare marketplace listings across different weapons and collections to make informed trading decisions.
textures.com API
Search and browse millions of textures by category or keyword to find high-resolution texture maps with detailed pricing and specifications. Discover the latest content additions, explore free samples, and access complete metadata including available resolutions and texture maps for your projects.
etherscan.io API
etherscan.io API