Products API & Data Search Coverage Property History Alerts For Contractors Data Exports
Solutions Solar & Energy Roofing HVAC Real Estate Insurance Lenders & CRE Contractors
Pricing Refer & Earn API Docs Sign In Get Started
Alternatives

PermitStack vs SignedOff.io

Both are permit-data tools that can push you events when permits change. The difference is scope: SignedOff.io is webhook-first across a small set of jurisdictions, while PermitStack pairs webhooks with broad national coverage, a free tier, and a lower price floor.

Free → $29/mo
PermitStack — webhooks from $79, no card to start
vs
Free → $49 / $149
SignedOff.io (published on signedoff.io, verified 2026-09-09)

No sales call. API key in 2 minutes. Cancel anytime.

The short answer

SignedOff.io is a legitimate webhook-first peer. If permit-status webhooks across its roughly 44 jurisdictions are exactly what you need, it does that job well. PermitStack also offers webhooks — plus a permit_events delta feed and an /alerts/ product — on top of 8,000+ cities across 48 states and DC and 118M+ permit records, with most sources refreshed nightly. So the real question is breadth: if you need event coverage across many metros, a free tier to prototype, or a $29 price floor, PermitStack is the wider net. If you only need those ~44 jurisdictions, either works.

The short version

Webhooks

Both offer them — fairly

SignedOff.io is built around permit status webhooks; that's its core feature, and we won't pretend otherwise. PermitStack offers webhooks (POST /v1/webhooks) plus a permit_events delta feed and an /alerts/ product — event-driven, just across far more jurisdictions.

Coverage

887 vs ~44 jurisdictions

SignedOff.io advertises webhooks across 44 jurisdictions in 8 states, 35 of them in California (re-verified against signedoff.io/cities on 11 September 2026). PermitStack covers 8,000+ U.S. cities across 48 states and DC via 893 active data sources — plus 73 historical-archive jurisdictions — totaling 118M+ records.

Price floor

Free tier, then $29/mo

PermitStack starts free (100 requests/day, no card) and paid plans begin at $29/month. SignedOff.io publishes a free tier too, and its paid plans start at $49/month. Webhooks are included from PermitStack's $79 Developer tier; SignedOff.io includes them lower, on its $0 Free plan. The difference is breadth — roughly 44 jurisdictions there against 790 active sources here.

How they compare

Side-by-side on the factors that matter when you're choosing an event-driven permit feed. SignedOff.io figures are publicly reported re-verified against signedoff.io/cities on 11 September 2026.

Feature PermitStack SignedOff.io
Permit webhooks ✓Yes (POST /v1/webhooks) ✓Yes — core feature
Status-change events ✓permit_events delta feed + /alerts/ ✓Permit status events
U.S. jurisdiction coverage 8,000+ cities / 48 states and DC ~44 jurisdictions
Total permit records 118M+ Not published
Entry price Free → $29/mo (Indie) Free → $49/mo (vendor-published)
Free tier ✓100 requests/day, no card ✓200 lookup credits/mo
Volume at $149/mo 100,000 requests/day (Business) 25,000 lookup credits/mo (Pro); a forced refresh costs 10 credits
How the data is refreshed Pre-ingested nightly from each jurisdiction, queried instantly Cached, falling back to a live scrape of the source portal on demand
Webhooks included from $79/mo (Developer) — plus permit_events on every paid tier $0 Free plan (1 webhook); $49/mo Developer (5)
Data refresh Nightly for most sources (ingest 03:00 UTC) Event-driven (not published)
Full search API ✓zip, city, state, address, radius, category, status, value, contractor —Webhook-focused
CSV export ✓GET /v1/permits/export —Not published
Per-address history ✓GET /v1/property/history —Not published
Permit categories ~20 (solar, roofing, HVAC, electrical…) Not published
Honest data labeling ✓data_status per jurisdiction (active / archive / frozen) —Not published
Self-serve, no sales call ✓Stripe, email verification Not published

SignedOff.io pricing, jurisdiction count, and feature details are publicly reported re-verified against signedoff.io/cities on 11 September 2026; "Not published" means we found no public figure and chose not to invent one. PermitStack figures reflect live platform metrics on 2026-09-30. PermitStack is an independent company and is not affiliated with SignedOff.io. All trademarks belong to their respective owners.

Where PermitStack pulls ahead

Four reasons teams that started with a webhook-only tool end up wanting more.

1

Events across 893 jurisdictions, not ~44

Webhooks are only as useful as the geography they cover. If your prospects, properties, or projects span more than a handful of cities, ~44 jurisdictions runs out fast. PermitStack's permit_events delta feed and webhooks operate across 8,000+ cities in 48 states and DC — including statewide solar feeds like CA (~2.1M permits) and NY (~466K).

2

A free tier to prototype your pipeline

You shouldn't have to pay before you've confirmed the data fits. PermitStack's free tier gives you 100 requests/day with no credit card — enough to build and test your event-handling code, validate field mappings, and prove the use case before you spend a dollar.

3

Webhooks and a full data API

Events tell you what changed; a real search API tells you everything else. PermitStack pairs webhooks with GET /v1/permits/search (zip, city, state, address, lat/lng radius, category, status, contractor, value), CSV export, and per-address history — so you can backfill, enrich, and reconcile, not just react to pushes.

4

Honest labeling, nightly refresh, no sales call

Every jurisdiction carries a data_status flag (active / historical_archive / frozen) exposed in the API and on our coverage page, so you always know how fresh a feed is. Ingestion runs nightly for most sources from 03:00 UTC, reports a data-through date for every jurisdiction and rejects future-dated records. Sign-up is self-serve via Stripe — no demo, no MSA, no rep in your inbox.

Catch changes without polling everything

Pull just the permits that were added or changed, then register a webhook to get pushed the next ones:

# 1. Poll the delta feed for newly added / changed permits. # Save next_cursor from the response, pass it back as cursor next time, # and you get only what you have not already seen -- no duplicates, no gap. curl "https://api.permit-stack.com/v1/permits/events?category=solar&state=CA" \ -H "X-API-Key: pk_your_key_here" # 2. Or register a webhook so changes are pushed to you curl -X POST "https://api.permit-stack.com/v1/webhooks/" \ -H "X-API-Key: pk_your_key_here" \ -H "Content-Type: application/json" \ -d '{"url":"https://you.example.com/hook","category":"SOLAR","state":"CA"}' # Event payload (status changed: filed -> issued) { "event": "permit.status_changed", "delivered_at": "2026-06-12T07:41:09+00:00", "data": { "permit_number": "2026-040187", "address": {"street": "2900 PECAN ST", "city": "SAN DIEGO", "state": "CA"}, "category": "SOLAR", "status": "ISSUED", "event_type": "status_change", "old_value": "FILED", "new_value": "ISSUED", "date_issued": "2026-06-11" } }

When SignedOff.io is the better fit

We're not going to pretend PermitStack wins every comparison. SignedOff.io is a legitimate, webhook-first peer in our price range, and it's clearly built by people who care about permit status events. If the 44 jurisdictions it covers happen to be exactly the ones you care about — and a tightly focused, event-only product is what you want — it's a perfectly good choice, and you may prefer its narrower surface area. One thing it does that we don't: its API can fall back to scraping the source portal live at request time, so for a single permit inside its footprint it can be fresher than our nightly ingest. If you track a handful of permits in those cities and need status the moment the city posts it, that design beats ours.

PermitStack's case is breadth without giving up events: webhooks plus a permit_events delta feed and an /alerts/ product, layered on 8,000+ cities across 48 states and DC, 118M+ records, a free tier, and a $29 price floor. If you need event coverage across many metros, want to prototype before paying, or value honest per-jurisdiction freshness labeling, that's the gap we fill. Either way, you can verify it yourself in minutes — no sales call required.

Frequently asked questions

Webhooks, coverage, pricing, and the honest trade-offs.

Does PermitStack have webhooks?

Yes. PermitStack offers permit webhooks via POST /v1/webhooks, plus a permit_events delta feed (GET /v1/permits/events) that surfaces newly added and changed permits, and an /alerts/ product for saved-search notifications. Webhooks are included on paid plans starting at $79/month (the Developer tier) — below their paid floor on our own entry plan. See our guide to real-time permit alerts and webhooks for setup.

How many jurisdictions does SignedOff.io cover?

As of 11 September 2026, SignedOff.io publicly advertises permit status webhooks across roughly 44 jurisdictions. PermitStack covers 8,000+ U.S. cities across 48 states and DC via 893 active data sources, plus 73 historical-archive jurisdictions, for a total of 118M+ permit records. Check our live coverage page to confirm a specific city.

Is there a cheaper SignedOff alternative?

PermitStack's paid plans start at $29/month (Indie), below SignedOff.io's $49/mo paid floor (they also publish a $0 Free plan) — and PermitStack also offers a free tier with 100 requests/day and no credit card. You don't give up event-driven workflows by choosing the lower floor: the permit_events delta feed is available across paid tiers, and webhooks are included from the $79 Developer plan. See full pricing.

What's the main difference between PermitStack and SignedOff.io?

SignedOff.io is a webhook-first product focused on permit status events across roughly 44 jurisdictions. PermitStack is a broad permit data platform — 8,000+ cities across 48 states and DC and 118M+ records, most sources refreshed nightly — that also offers webhooks, a permit_events delta feed, and an /alerts/ product. The trade-off is focus versus breadth: SignedOff is narrow and event-centric; PermitStack is wide-coverage with event features layered on.

Does PermitStack notify me when a permit's status changes?

Yes. GET /v1/permits/events returns deltas — permits that were newly added or whose fields (including status) changed — so you can poll for changes, and webhooks can push those events to your endpoint. Statuses tracked include filed, issued, in_progress, final, expired, cancelled, revoked, and unknown.

How fresh is PermitStack's permit data?

PermitStack re-ingests most of its sources every night, with the main ingest at 03:00 UTC. Permits that appear in a city's public portal are typically available in the API within 24 hours, and future-dated records are rejected during ingestion. Each jurisdiction also carries a data_status flag (active / historical_archive / frozen) so you always know how current a feed is.

Can I try PermitStack without talking to sales?

Yes. PermitStack is fully self-serve via Stripe. The free tier requires only email verification — no credit card and no sales call. Paid plans are month-to-month and cancellable from the Stripe Customer Portal. You can have a working API key and your first event query running in a couple of minutes.

See also

PermitStack vs Shovels.ai
Free tier & nightly refresh vs a $599 paid floor
→
PermitStack Alerts
Saved-search notifications + webhooks for new permits
→
Real-Time Permit Alerts & Webhooks
How to get pushed new and changed permits as they happen
→

Webhooks plus the whole map

Get a PermitStack API key in 2 minutes. Wire up the permit_events feed or a webhook, then watch changes roll in across 893 jurisdictions, not ~44.

100 free requests per day. No credit card. No sales call.