Technical post
How Diff turns Secretary of State filings into webhooks
Diff compares each company to the last known snapshot and pushes only the change — INSERT, UPDATE, or DELETE — to your webhook, authenticated with a shared secret.
Get credentialsFrom filing to event
1. Filings land as company snapshots
Diff ingests normalized Secretary of State filings — entity status, Franchise Tax Board standing, registered agent standing, and the other fields that matter. You never parse provider columns yourself.
2. Each company is compared to the last snapshot
If nothing material changed, Diff stays quiet. Unchanged fields do not become events. You are not flooded with full-file replays.
3. Real changes become INSERT, UPDATE, or DELETE
INSERT means a new company. UPDATE means fields that moved — only those fields. DELETE means the company was removed from the feed you watch.
4. Your webhook gets a minimal payload
Diff posts JSON authenticated with a shared secret. Verify the signature, then act. No scrape loop, no home-grown diff engine.
What an UPDATE looks like
Only the fields that moved. Standing collapsed; everything else stayed off the wire.
{
"entity_id": "B20260240102",
"action": "UPDATE",
"after": {
"status": "Suspended",
"standing_ftb": "Not Good",
"suspension_date": "2026-08-15"
}
}