Jul 22
Improved
Sitewide friction sweep: docs page restored, honest error states everywhere
A full audit pass across the console, docs, and auth flow. The API reference at /api is reachable again (a routing regression had it redirect-looping). The dashboard now surfaces real error text instead of failing silently (playground, IP-lookup tool, CSV export, rules tab), quota 429s send a real Retry-After, the docs’ copy-paste examples were fixed end-to-end, invite and OTP flows gained honest recovery paths, and the mobile keyboard finally lets you type an IP in the lookup field.
Jul 19
Privacy
Google Ads measurement returned — cookieless, consent-denied
The Google Ads conversion tag is back on public marketing pages, in Consent Mode v2 with all storage permanently denied: no cookies, no consent UI, aggregated modeled conversions only. The Cookie Policy (§2.3) documents exactly what this does and does not collect.
Jul 19
New
GET /v1/usage, webhook event IDs with retries, and rule backtesting
New GET /v1/usage returns the calling key’s quota position — key_type, hourly_limit, used_this_hour, remaining, resets_at, plus lifetime total_evaluations and limit_hits. It works for both live and test keys (each reports its own bucket) and the call itself is free — it never consumes quota; the in-window counters are advisory (in-memory, per-process, reset on deploy). Webhook payloads now carry a unique event_id (32-hex, test events included, echoed in an X-Maskbreak-Event-Id header on every delivery), and failed deliveries are retried: up to 3 attempts per event at roughly 1 and 8 minutes, best-effort in-process, with the same event_id on every attempt — so receivers dedupe on event_id instead of guessing from timestamps, and the Events log stays the source of truth. Also today: rules can be backtested in the dashboard — see how a rule would have decided your recent traffic before saving it — the status page’s per-service breakdown gained uptime history, and the antidetect detection guides were rewritten from scratch.
Jul 19
New
Webhook delivery log, multi-account investigation, and histories across the console
Threat-alert webhooks now keep a rolling 30-day delivery log — event type, HTTP outcome, and any error string, never payloads and never end-user IPs — in the dashboard's Tools drawer, so a silently failing endpoint is diagnosable at a glance. False-positive reports gained a status loop: each report is tracked open → resolved or dismissed, readable back via GET /api/fp-reports, so filing one is no longer a black hole. New GET /api/device-accounts lists devices seen across multiple of your accounts (account count, first/last seen) for multi-account investigation — per-customer and hash-only, as always. Settings adds email preferences (product notes and the monthly usage digest are individually switchable; security notices stay on) and org invite history; the Security page shows the sign-in browser history behind new-browser alerts. The status page's 90-day uptime bar now breaks down per service, /v1/evaluate adds device.first_seen (additive) so a brand-new device is distinguishable from a returning one, and the OpenAPI spec lands at 1.3.0 with the signed-webhooks delivery contract documented as a first-class webhooks section.
Jul 18
New
Shareable links to any filtered view or single event
The Events view now lives in the URL: filters (range, decision, signal, threats-only, search, visitor) are encoded in the hash as you work, so a refresh keeps your place and the address bar is always a handoff-ready link. Every event's detail panel gains a copy-link button — the link opens that exact event, drawer and all, for any member of your org (backed by an additive ?id= on /api/lookups, still strictly account-scoped). Changing any filter returns you to the full log.
Jul 18
Improved
Console refresh + rate-limit headers, request IDs, and a docs catch-up
The Events tab gained an at-a-glance stat strip, decision and signal filters (?decision= / ?signal= on /api/lookups and the CSV export, additive), a one-click Export button, keyboard navigation (rows open with Enter, ↑/↓ steps through events in the detail panel), and honest failure states — a failed load now shows a retry instead of an eternal “Loading…”, and a failed Rules load disables Save so it can never wipe your policy with defaults. Every keyed API response now carries X-RateLimit-Limit / -Remaining / -Reset so you can back off before a 429, plus an X-Request-Id to quote to support. The docs page finally documents GET /v1/lookup/{ip}, the per-account test key, the hosted MCP server, and the exact webhook payload.
Jul 18
New
Exceptions: pin an IP or visitor to always allow or always block
Alongside signal rules you can now pin a specific IP address or visitor: an explicit “always allow 203.0.113.7” beats a generic “VPN → block.” Pins are managed in the Rules tab or straight from any event's detail panel, apply to /v1/evaluate and /v1/lookup, and report themselves additively — decision_source: "exception" with the matched pins in a new exception_matched field, the engine's own verdict preserved in engine_decision, and webhook deliveries labeled Customer exception (…). Test tokens obey pins too, so one cURL verifies a pin before it ever touches live traffic.
Jul 18
New
Per-account test keys: the full pipeline with zero footprint
Every account now has its own sk_test_… key (Settings → API Key). Unlike the public sandbox it runs the complete live pipeline — real tokens, device intelligence, your rules and pins included — but events are badged as test in the console, excluded from usage and stats, and never fire webhooks or limit emails. Responses carry "test": true, the key has its own hourly bucket, and it rotates without a password. Safe for CI and staging by construction.
Jul 18
Security
API-key IP allowlist
Restrict live-key calls to your own server addresses (exact IPv4/IPv6 or IPv4 CIDR, canonicalized on save): anything else gets a 403 that names the calling IP in its hint. Enforced on /v1/evaluate, /v1/lookup, and the hosted MCP endpoint; the test key and the console are deliberately exempt, and every allowlist change emails a security notice. Configure it in Settings → API Key Security.
Jul 18
New
Report false positives from the event drawer
Every event's detail panel now has a “Report false positive” button — one click files the event's full context with our team (deduped per event) so wrong verdicts feed detection tuning instead of a support back-and-forth. Reported IPs follow the same 7-day hashing schedule as evaluation logs, and reports are deleted with your account.
Jul 18
Improved
Email you can actually opt out of — and a monthly usage digest
Onboarding emails now carry a real unsubscribe link (RFC 8058 one-click for mail clients, a confirm page for humans — and the link no longer trips corporate mail-scanner prefetch). Suppression is honored at the recipient query, not at send time. New: a monthly summary of your own account's traffic — evaluations, threats, and the signal breakdown — sent only to accounts with real activity, with the same unsubscribe. Security and billing notices remain transactional and unaffected.
Jul 17
New
Passkeys
Sign in with a passkey (WebAuthn) instead of a password — enrol from the Security page, with re-authentication required to add one and a security notice on every add or removal. Passkey sign-in gets its own rate bucket so it can never lock out password login.
Jul 16
New
Unified SDK: device + network in one embed
The whole point of Maskbreak is device and network intelligence — but the old client SDK captured only the network token, leaving device signals as a separate manual integration. The new sentinel.js loads both layers from a single <script> and injects both tokens (monocle for network, sentinel_fp for device) into your forms. Call Sentinel.collect() to get { token, fingerprintEventId } and forward both to /v1/evaluate — the endpoint accepts sentinel_fp as an alias, so device+network is now the default integration, not an opt-in. The quickstart, SDK READMEs, and AI-agent guide were all reframed around it; the dashboard’s “Test your browser” now exercises both layers. If a hardened browser blocks the device layer, evaluation continues network-only.
Jul 16
New
Decision rules: your policy, enforced on the API
A new Rules tab lets you decide what each signal does: set VPN to Review, antidetect browsers to Block, disposable email to Allow — whatever fits your risk appetite. The decision field then returns your action (most-severe rule wins when several match), and your backend routes on it. The engine's own risk verdict is preserved in the additive engine_decision field, with decision_source and rule_matched alongside. Test tokens obey your rules too, so curl … test_vpn verifies a rule before you ship it. Also new: a “Test your browser” button in Events runs a real evaluation of your own connection through the live pipeline and streams the result into the log; the event detail panel gained a self-hosted world map (no third-party map tiles) marking the request's country; and the Overview chart-render bug from the Events-first change is fixed — it no longer blows up when the tab is opened from a background state.
Jul 16
Improved
Events is now the console's home — live-updating, with a rebuilt Overview
The console now lands on the Events log: new events stream in automatically every 20 seconds (with a Live indicator, manual refresh, and a highlight on arrivals — no page reloads), visitor IDs are clickable to filter to that visitor, and the detail panel gains a “Back to events” control. The Overview was rebuilt around it: the daily chart now has a fixed height with rounded bars (it previously stretched to match the signal column and dwarfed low-volume accounts), signal composition sits in a compact three-column band — Outcome, Network, and Device side by side — and the old Recent Activity table is gone in favor of the full event log.
Jul 16
New
Events: a Fingerprint-style identification log with per-visitor detail
New Events tab in the console: every evaluation your key ran as a row — time, pseudonymous visitor ID, IP + country, browser/OS, signal chips, and the allow/review/block decision — filterable by range, threats-only, IP or visitor search. Click any row for the full picture: visitor history (events, threats, first/last seen, one-click filter to that visitor), the Spur network verdict with service name, the Fingerprint device layer, and a copyable event record. Evaluation rows now persist a coarse browser/OS label, network service, risk score, decision, and a one-way-hashed visitor key (raw device identifiers are still never stored — privacy policy §1 updated). Events without a device layer say exactly how to enable it. The overview's daily chart is also capped at a sane height and the breakdown explains itself when the fingerprint layer hasn't fired yet.
Jul 16
New
Dashboard: device signals everywhere, geo & time-of-day intelligence, CI tooling on the integration tab
The overview now shows the full signal taxonomy — network (VPN, proxy, datacenter, anonymous) and device (bot/automation, antidetect/tampering, incognito, disposable email) — with 30-day windows and vs-prior-period deltas, plus a fourth Device Flags stat tile. New sections: Geo Intelligence (top countries with per-country threat counts; country is kept as an aggregate while raw IPs still hash out at 7 days), Time of Day (weekday×hour heatmap and hourly clean-vs-threat composition, UTC), and auto-computed insight cards that stay hidden until your sample is large enough to be statistically honest. The API & Integration tab gains a Test & Ship section: the sk_test_sandbox CI recipe, deterministic test tokens, and the official Node/Python SDK installs. Powered by additive aggregates on /api/dashboard-init — nothing about existing fields changed.
Jul 16
New
Growth founding price, CI sandbox key, stop-fraud playbooks, and a self-serve trust surface
Pricing now shows a concrete middle tier: Growth at €49/month (5,000 req/hr, priority support) — a founding price locked for everyone who signs up during beta, with billing starting only after 30 days' notice when beta ends, and overage always throttled (429) rather than billed. Developers get a public
sk_test_sandbox key that answers the deterministic
test_* tokens with documented shapes, no account needed — wired for CI. New content surfaces: six
/stop playbooks (account takeover, fake signups, card testing, bonus abuse, trial abuse, multi-accounting), a
glossary, and
live-tracked hosting-provider range pages. Procurement can now self-serve the
security whitepaper (PDF included) and the
sub-processor list with a dated change log. The homepage gained an honest live-stats band fed by real production counts, and the API docs open with task-based entry points and a freshness stamp.
Jul 15
Trust
Trust, privacy, and accuracy documentation pass
A security and compliance review swept every claim on the trust, privacy, and API pages against what the code actually does. We corrected the security-controls descriptions to match reality, documented alert-webhook and newsletter data categories and a 72-hour breach-notification commitment, clarified that arbitrary-IP lookups use network reputation (not the full live-session analysis), documented the API's fail-open behaviour, and tightened two internal data-scoping details. No customer action needed.
Jul 15
New
Dashboard redesign: honest charts, live quota, alert health
The traffic chart now draws real per-day columns with integer axis labels instead of a smoothed curve that invented shapes at low volume. Stat tiles suppress noisy week-over-week percentages on small samples, the plan card shows your actual hourly quota with a live this-hour meter, an Alerts chip reports whether your webhook is delivering (or failing), one-click Simulate buttons fire the new test tokens from the Playground, burner-email hits are tagged in Recent Activity, and an API-status chip answers "is it me or Maskbreak?" without leaving the console.
Jul 15
New
Test tokens, email intelligence, and error hints on /v1/evaluate
Deterministic test tokens (test_clean, test_vpn, test_proxy, test_datacenter, test_tor) exercise your allow/review/block handling from a terminal — never billed or stored. Pass an email to get email.disposable back from our 8,000-domain burner feed (adds the disposable_email reason and escalates allow to review). And 401/400 errors now carry hint + docs fields that name the actual mistake.
Jul 15
Feature
Real uptime history and an investigable activity log
Uptime probes now persist per-day, so the status page's 90-day bar shows genuine daily percentages with sample counts — days before tracking began render as "no data" instead of invented green. The dashboard's Recent Activity gained IP search, a threats-only filter, and pagination via new /api/lookups query params.
Jul 15
New
Live scanner got a skeleton loader and a seamless reveal
The homepage Live Risk Assessment now loads as a skeleton preview of the final panel — real row labels with shimmering placeholders exactly where each value lands — so results materialize in place instead of replacing a separate loading screen. The whole handoff is faster and steadier, and honors reduced-motion preferences.
Jul 15
SDK
Multi-accounting detection now works through the official SDKs
The Node SDK's evaluate() forwards accountId (it was previously dropped before reaching the API) and its TypeScript definitions gained the device multi-accounting and times-seen fields plus the full reason-code list. The Python SDK accepts account_id.
Jul 15
Docs
API reference audited line-by-line against the implementation
Every documented endpoint, field, limit, and error code was re-verified against the live API. Corrections: isSuspicious semantics spelled out (route on decision — Tor and datacenter drive it, not the legacy flag), the real per-IP backstop (50,000/hr) replaces an understated figure, the 403 suspended-account response is documented, two missing reason codes (high_activity_device, multi_account_device) were added everywhere, and the OpenAPI status schema now matches the actual response.
Jul 15
Console
Plan label consistent across the whole console
Settings, Security, and Members now show your actual plan in the sidebar and topbar, matching the dashboard — previously they hardcoded "Free" regardless of the plan on your account.
Jul 14
Change
Dashboard network feed shows real numbers
The "Maskbreak Network" feed on the dashboard now reports genuine 24-hour totals instead of seeded baseline figures, matching the honesty policy the public threat feed already follows. The unused /api/device-seen endpoint was retired (410 Gone).
Jul 14
Feature
Scanner score card tints with the verdict
The Live Risk Assessment's score panel now shifts color with the outcome — soft red on threat, amber on routing anomaly, green on clean — so the verdict reads at a glance.
Jul 12
Privacy
Non-essential tracking removed; legal notices rebuilt
Microsoft Clarity, Google Ads conversion tags, and the third-party blog embed no longer load on public pages. The Cookie and Privacy notices now match actual storage, profiling, retention, complaint, and transfer behaviour; Terms are explicitly business-only and align deletion timelines. The Ads tag returned 19 July in permanently consent-denied, cookieless mode — see the 19 July entry.
Jul 12
Editorial
Blog claims audited and reading tools improved
Unsupported percentage guarantees were replaced with measurable rollout guidance, an unsubstantiated named-network article now redirects to the residential-proxy guide, heading hierarchy was repaired, reading times calculate from the article, and code blocks gained copy controls.
Jul 5
Change
Enterprise conversations get a calendar
The Enterprise plan and contact page now offer a direct
book-a-15-min-call link alongside the contact form — pick a slot instead of waiting on an email thread.
Jul 5
New
Look up any IP — single or bulk — on the free IP Lookup tool
The
IP Lookup tool now checks any public IPv4 or IPv6 address, not just your own connection: live allow/review/block verdict, risk score, VPN/proxy/Tor/datacenter/anonymity signals, and network attribution. The bulk tab checks up to 20 IPs at once with CSV export — free, work email required.
Jul 5
Feature
New API endpoint: GET /v1/lookup/{ip}
Programmatic verdicts for arbitrary IPs with your API key — same signal language as
/v1/evaluate, shares the per-key 1,000/hour quota, documented in the
OpenAPI spec. Lookups appear in your dashboard alongside session evaluations.
Jul 5
New
Maskbreak MCP server — IP intelligence inside Claude, Cursor, and any MCP client
A Model Context Protocol server (@sentinelsup/mcp) that gives AI assistants two tools: lookup_ip for live fraud verdicts on any IP, and service_status for API health. One-line setup with a free API key — or use the hosted endpoint at https://maskbreak.com/mcp with no install at all.
Jul 5
Feature
The Fraud Brief now actually ships monthly
Subscribers get a welcome issue immediately and a monthly digest of the newest research, compiled automatically from the blog. Every email carries a one-click unsubscribe (RFC 8058) and a signed unsubscribe link — no login, no dark patterns.
Jul 5
Feature
Fraud Brief capture extended across the whole content library
The monthly Fraud Brief signup now appears on the blog index, every case study, all comparison pages, and the industry landing pages — not just individual blog posts. Same promise as always: one technical email a month on what fraudsters changed, no spam, unsubscribe anytime.
Jul 5
Reliability
Operational alerting upgrade
The platform now notifies the team immediately when server-side error rates spike or the process hits an unexpected fault, on top of the existing uptime probes on
/status. Faster detection, faster fixes.
Jul 4
Feature
IP Lookup redesigned with a two-phase scan
The free
IP Lookup tool now paints your connection identity (IP, country, browser) instantly and fills deep signals — VPN, proxy, datacenter, Tor, device intelligence — as the full verdict arrives. No more staring at a spinner while everything resolves at once.
Jul 4
Performance
Scanner first response now answered at the Cloudflare edge
The homepage scanner's first-pass identity check is now served by an edge worker in roughly 20–60 ms instead of round-tripping to origin. The scanner paints its first result near-instantly on every continent; full verdicts continue through the origin pipeline.
Jul 4
Performance
Third parties moved off the homepage critical path
Analytics and session-replay tags now load on idle or first interaction instead of competing with the hero render. Motion CSS deferred the same way. Faster first paint on slow connections, identical behavior after load.
Jul 4
SEO
One canonical spelling per URL
Duplicate URL variants (.html suffixes, trailing slashes) now 301-redirect to a single canonical form on every page, consolidating link equity and eliminating duplicate-content ambiguity.
Jul 4
Content
Homepage comparison table expanded from 5 to 11 feature rows
The capability comparison on the homepage now covers antidetect-browser detection, residential-proxy classification, device intelligence, AI-agent detection, latency, free-tier depth, and more — so the differences are visible without leaving the page.
Jul 3
Security
Signups are now screened by Maskbreak itself
New-account creation runs through our own verdict pipeline: per-network signup caps plus server-side anonymizer screening. Maskbreak dogfooding Maskbreak — the same signal set we sell now protects our own front door.
Jul 3
Security
Password changes instantly revoke all previous sessions
Changing or resetting your password now bumps a per-user token epoch, invalidating every previously issued session token immediately — on all devices, with no logout lag.
Jul 3
Change
Cookie banner removed
The consent banner is gone. Non-essential storage defaults to denied under Consent Mode, and ad personalization is permanently disabled — so there is nothing to ask about. Less friction, same privacy posture, faster page.
Jul 2
New
Maskbreak goes light — full-site redesign
Every page — homepage, console, docs, blog, case studies, all 95 public pages — converted from the dark editorial theme to a clean light shell with lime accents. New site-wide motion layer, unified pill navigation, an editorial blog reading experience, redesigned case studies with live counting metrics, and Senti, the scanner mascot that reacts to your verdict.
Jul 2
Feature
Dashboard reorganized: Overview and API & Integration tabs
The console now splits at-a-glance monitoring (traffic chart, threat log, recent activity) from integration work (API key, playground, webhooks, quick-start). Device-intelligence results are now persisted and shown in dashboard lookups, so past sessions keep their full signal detail.