Changelog
2026.10.01
Groups
We're happy to introduce a new concept: Groups. Groups allow you to track the organization, company, team, or workspace each of your identities is associated with. Dregs will then make use of group relationships to do better scoring and analysis.
The group type defaults to organization, or you can use your own word such as team, workspace, or clinic. Identities can belong to multiple groups. A particular user might be associated with multiple companies in your application, or a user might be part of both a team and a larger company.
To associate an identity with a group using the Dregs tracking script, first identify the user and then the group the current user belongs to:
dregs.identify('user_12345', { name: 'Jane Cooper', email: 'jane@example.com' });
dregs.group('organization', 'org_678', { name: 'Acme Inc', plan: 'enterprise' });
See Groups in the manual for more details.
Public OpenAPI specifications
You can explore the customer API, generate a client, or point an assistant at a real
spec, without reverse-engineering the calls. A curated OpenAPI 3 document is publicly
fetchable at
GET /api/openapi.json
(dregs.com/api/openapi.json).
It covers the customer API you call with a secret key
(sk_): track events, identities, scores and analysis, devices,
escalations, channels, datasets, and mappings. Sign-in, billing, team admin,
and trainer routes stay out of the document.
2026.09.30
Invalid signup payloads return 400
A bad body on POST /api/auth/registration used to come back as HTTP 500
Unexpected Error. It now returns HTTP 400. The message names each field and
the constraint that failed: missing, not an email, too short, too long, or the wrong JSON
type. Passwords stay out of the response. A missing or malformed body is a short 400. A
complete payload still registers, and a duplicate username still returns HTTP 409.
Unrecognized secret keys get a clear API error
An unrecognized API secret key (sk_) on the REST API used to come back as an
MCP error about requiring an MCP token. It now returns HTTP 401 with a clear
unrecognized-secret-key message in the message field the server SDKs already
read. The MCP endpoints, /mcp and /mcp/trainer, still answer with the
MCP discovery challenge.
2026.09.25
SMS pumping escalation
When Dregs corroborates SMS pumping, it already applies the Pumping Suspected badge. New customers now get a default escalation for that badge, so your application can hear about it and slow or stop further sends. Existing customers got the same rule if they did not already have it. It stays in the dashboard unless you add a notification channel.
2026.09.24
Server SDKs for Python, Node, Java, Ruby, and PHP
You can install official server SDKs to track events, read scores, and verify webhooks
from your backend with a secret key (sk_). Python is
pip install dregs, Node is npm install @dregs/sdk, Java is
com.dregs:dregs-sdk, Ruby is bundle add dregs, and PHP is
composer require dregs/dregs-sdk. On npm, the unscoped dregs
package is the browser tracker, not the server SDK. Browser tracking stays
dregs.js with the public key. See the
server SDKs chapter.
MCP OAuth consent shows the current account
After you switch dashboard accounts, restarting an MCP OAuth connect was showing the previous account on the consent screen. It now shows the account you are signed in as.
2026.09.21
Agent-assisted onboarding
The onboarding steps for tracking and identify now offer tabs for Claude Code, Codex, Cursor, and Manual. Each agent tab includes your team's public key. The agent proposes changes for you to review and never sees the secret key. Manual keeps the existing snippet, and the steps still complete once events arrive.
MCP OAuth works again for local assistants
Connecting an assistant that redirects to localhost was failing during sign-in. Those connections work again.
Optional event ids use id
POST /api/events treats id as the optional event id you supply.
trackedEventId still works as an alias. When a request sends both, id
is the one that is kept.
Rate-limited ingestion returns 429
When a credential crosses the ingestion rate limit, POST /api/events now answers
HTTP 429. An event from a disallowed origin, or one with a malformed device signature, still
returns 200 with a null id.
Scores omit empty observations
GET /api/identities/{id}/scores no longer includes an empty observations list.
The observations behind a score stay on GET /api/identities/{id}/analysis.
Webhook event types match the API
The webhooks manual now lists the event types the API sends:
IDENTITY_SCORED, IDENTITY_BADGES_CHANGED,
ESCALATION_OPENED, and ESCALATION_CLOSED.
2026.09.18
Track accepts a null disregarded flag
Track requests that sent a null disregarded on the identity were failing.
Those requests succeed now. Mark disregarded through the identity API as before.
Name-structure scoring works again
Name-structure scoring had stopped running. It scores again, so name-based authenticity signals are back.
2026.09.17
AI Agents settings, revocable MCP tokens, and OAuth
Settings has an AI Agents tab for the MCP URL, connection snippets, connections, and tokens. MCP tokens are revocable, shown once, and limited to MCP endpoints. Assistants can also connect with OAuth 2.1 (PKCE) through an explicit consent screen that names the client and team.
More MCP tools for day-to-day work
Customer MCP tools now cover escalations (list, get, summary, acknowledge or close), escalation and badge rules (including preview), channels and delivery history, disregarding an identity, an account summary with plan limits and usage, and fetching chapters of the published manual. Writes that change rules stay admin-only.
2026.09.16
MCP at /mcp
The MCP server now lives at dregs.com/mcp, alongside the REST API. Tools have titles, identity and device lookups include a dashboard link, and assistants confirm before they write.
Customer MCP tools only
The public MCP endpoint at dregs.com/mcp now lists only the tools a dashboard user should see. The trainer and analyzer tools Dregs staff use live on a separate trainer endpoint, so an assistant connected with your team token sees only the customer set.
2026.09.15
Free email domains
Dregs now keeps a maintained list of free and public email providers (Gmail, Outlook, Proton, and the rest), separate from disposable addresses. Scoring can treat a free mailbox differently from a throwaway without mixing the two.
2026.09.11
Identity reviews test proposed analyzers
When an identity review proposes a new or changed analyzer, Dregs runs the draft against a sample of your users and shows a before/after table on the review screen. You can see whether the change actually helps before you accept it.
2026.08.24
More accurate disposable domain lists
Disposable email detection now combines the imported public list with our own additions and exclusions, so we can add domains and correct false positives without waiting for the next import. Registration blocking and authenticity checks use the combined list.
Plan limits stay in sync
Monthly operations limits and the grace period now follow the plan as billed, so a change on our side shows up in the dashboard instead of leaving a stale cap.
2026.08.19
Registration bombing escalation
New customers get a default escalation when Dregs corroborates registration bombing and applies the Registration Bombing Suspected badge. Existing customers got the same rule. It stays in the dashboard unless you add a notification channel.
2026.08.15
Authenticity Check, 0-100
The synchronous check endpoint is now POST /api/tools/authenticity-check and
returns an Authenticity score on the same 0-100 scale as the dashboard and identity API. The
older identity-check path still works as an alias.
2026.08.14
Authenticated authenticity checks work again
Signed-in authenticity checks were failing with a server error. They work again, so you can use the check as a gate before sending confirmation emails.
2026.07.27
Account takeover detection
Dregs now treats account takeover as a standard detection: activity from a new device combined with a password or profile change, and quiet when the device or network is already familiar. Corroborated cases get an Account Takeover Suspected badge and a default critical escalation. A new browser on a known network is unusual context, not an incident on its own.
2026.06.24
Disposable email checker accepts domains
The disposable email checker now accepts a bare domain, not only a full address.
2026.06.23
Disposable email checker
We shipped a free disposable email checker, backed by the same lists Dregs uses for Authenticity scoring. Paste an address to see whether it belongs to a known throwaway provider.
2026.06.10
MCP server
Coding assistants can connect to Dregs over MCP to look up live identities, events, devices, and analyzers.
Disregarded accounts stay out of matching
When you disregard an operator account, Dregs also ignores the devices, IPs, and sessions that account used, so support logins and load tests no longer look like shared infrastructure on everyone else's identities.
2026.06.06
Mappings in Settings
Team admins can connect event names and identity fields to Dregs's canonical types on the Mappings tab in Settings. The list is built from what you've already sent, with suggestions for unmapped rows.
Analyzers that understand your events
New behavior analyzers key off those canonical types (registration, login, password reset, and similar) instead of guessing at each customer's event names.
2026.05.31
Event and identity mappings
Dregs can map your event names and identity fields to a shared set of canonical types, so analyzers recognize a signup or an email address even when every product names those differently.
2026.05.27
Analyzer configs
Analyzer thresholds and similar settings have their own Configs tab in Training, with your account's values separate from the shared defaults. You can tune a detector without editing its script.
Pointer and keyboard collection
The tracking script now records clicks, mouse movement, scrolling, and similar interaction. Humanity scoring can tell a real pointer from a script that never moved the mouse.
2026.05.26
Your own copy of global resources
You can copy a global analyzer, dataset, or mapping into your account and change the copy without altering the shared default.
2026.05.24
Clearer onboarding and billing
The in-dashboard onboarding steps are easier to follow, and the billing screen shows when a subscription is set to cancel at the end of the period.
2026.05.21
Demo mode
The dashboard can mask names, emails, and other personal details so a walkthrough doesn't expose real user data.
2026.04.30
Test an analyzer before you save it
You can run a draft analyzer against a real identity and see the observations before you activate the change.
2026.04.27
Dashboard consistency
Empty states and form controls are more consistent across lists and settings.
2026.04.24
Slack notifications
You can connect a Slack workspace and send escalations there, including through Slack's app install flow.
Alerts are now escalations
We renamed Alerts to Escalations. The dashboard list and rules are the same idea; notifications still go through channels. Escalations remain visible in the dashboard even when no channel is attached.
2026.04.22
Tighter account protections
Passwords must be at least 12 characters. After several failed logins, the account locks for a few minutes, and longer if the failures continue. Confirmation codes stop accepting guesses after too many tries; requesting a new code starts over.
2026.04.16
Promo codes at checkout
Stripe Checkout accepts promo codes, and a few billing labels and buttons are clearer.
2026.04.15
A home dashboard that fits your volume
The home view adapts to how much data you have: a simple layout when you're starting out, and date ranges, items that need attention, and rule activity once you have volume. A persistent banner appears when you hit a plan limit.
2026.04.14
Secret key API access
Most API endpoints accept your secret key, so server-side integrations don't have to mint a user session first.
Retention is a window, not a delete
Older events stay stored. Lists and scoring only use activity inside your plan's retention window, and scores are left alone when an identity has nothing in that window.
2026.04.10
Score history
Each identity has a score history graph, so you can see how Humanity, Authenticity, Uniqueness, and Behavior moved over time and open the observations behind a point. Alert emails use the same templates as the rest of our mail, and the alerts table is easier to scan.
2026.04.09
Account email
Confirmation, password reset, and the other account messages are HTML emails rather than bare text.
2026.04.08
Self-service billing
You can pick a plan, check out with Stripe, and manage billing from the dashboard. The pricing page matches what's in the product. We dropped the beta banner.
2026.04.06
Broader scoring coverage
Scoring covers more of the abuse patterns on our use-case pages. Analyzers can look up related identities, devices, and lists while they run, so a single signal is less likely to be the whole story.
2026.03.31
Self-service signup
You can create an account, accept the terms, and start a trial without waiting on us. Profile, password, and account deletion live on the Account page. When a trial ends, scoring pauses through a grace period while events still land.
2026.03.27
Trainer access
Dregs staff can work in your account as trainers: review identities, adjust analyzers, and improve scoring for you and for everyone, without using your password.
2026.03.26
Dataset overlays
You can add or exclude entries on top of a global dataset (a domain, an IP, and similar) without replacing the whole list.
2026.03.25
Search that understands scores
Lists of identities, events, and devices have a search bar that mixes free text with filters
such as humanity:10-40, so you can find a band of suspicious accounts without
exporting a spreadsheet.
2026.03.23
Disregard a device or identity
Mark a device or identity as disregarded when it's yours: support staff, load tests, or an office shared browser. Dregs skips it in scoring and in other users' relationship matching.
2026.03.18
Identity review and datasets
You can request an AI review of an identity; it may suggest analyzer changes. Datasets are versioned lists that analyzers can look up, so publishing a new list doesn't interrupt scoring mid-cycle.
2026.03.16
Editable analyzers
Analyzers are JavaScript you can view and edit in the dashboard. Dregs can also send an identity for review and take suggested rules from that review.
2026.02.23
Alert rule previews
Creating an alert rule now shows who would currently match, and each alert carries more of the detail you need to act on it.
2026.02.17
Alert rules you can time and keep
An alert rule can start from an effective date so it doesn't fire on old identities the moment you save it. Email alerts that hadn't been sending now go out. Deleted rules are kept for history instead of disappearing from past alerts.
2026.02.07
Notification channels
Notifications go through channels. The first channel type is webhooks, so your application can hear about alerts without polling the dashboard.
2026.02.05
Badges and alerts
Identities can carry badges, applied by analyzers or by rules you write. Alerts fire when scores or badges match conditions you set, so the cases that need a look don't wait for someone to open the identity list.
2026.02.03
Identity relationships
Dregs records when identities look related (same device, similar email, shared IP, and similar) and shows those links on the identity page and in the API. That's the difference between one odd account and a small crowd sharing infrastructure.
2026.01.29
The dashboard is live
The Dregs dashboard is generally available. Add the tracking snippet and Dregs starts scoring the people on your site across Humanity, Authenticity, Uniqueness, and Behavior. Identities, devices, and events show up as they arrive.
The home view charts activity and score mix, so you can see the shape of your user base without opening every record. Onboarding walks through API credentials and the first snippet, so the empty state has a next step.