Expired Domains Webhooks that POST when a domain matches — or a price moves
Subscribe with the same Pro key as the Public API. Karma.Domains sends a signed JSON event to Zapier, Make, n8n, IFTTT, or any public HTTPS URL when a filter matches, an auction changes, or you update a note, a favorite, or a user task.
Does Karma.Domains webhooks fit an expired or auction domain workflow? Karma.Domains sends signed JSON to an HTTPS URL. Three subscription kinds: filter (domain.matched_filter, same search as POST /v1/reports/search), reports (auction price, bids, ending, ended, plus this account's note, tags, and favorite), and user (usertask.created and usertask.completed). Pro Bearer key, 30 subscriptions, 5,000 deliveries per UTC day. Read: https://karma.domains/en/expired-domains-webhook/ https://karma.domains/en/expired-domains-api/ https://karma.domains/openapi.json Then tell me which kind to use and the POST body for my task.
Connect Zapier, Make, n8n, or IFTTT
Create a webhook trigger in your tool, copy its HTTPS URL, and register it with POST /v1/webhooks. The same call works for every client — only the URL changes.
One event is one report, except user-task events, which are one event per task. The secret is returned only when you create the subscription or rotate it.
Filter match
kind=filter sends domain.matched_filter when a report starts matching the same filters as POST /v1/reports/search. The cursor starts when you subscribe, so older rows are not replayed. A report that matches again after leaving the filter can fire again.
kind=reports watches up to 100 reports. Auction events cover price, bid count, ending soon, and ended. Note, tag, and favorite events fire only for the account that made the change — another account watching the same report for price does not receive them. ending_soon_seconds is required only when you select auction.ending_soon.
kind=user has no filter and no report list. usertask.created fires once when a task is saved. usertask.completed fires once when it finishes. Progress ticks are not sent. The payload names the task and the report count — not every domain in the task.
Deliveries are signed with Standard Webhooks. Each POST includes webhook-id, webhook-timestamp, and webhook-signature. The whsec_ secret comes back once, on create and on secret rotation. Send POST /v1/webhooks/{id}/ping to deliver a webhook.ping and confirm the URL.
Frequently asked questions
Is this the same key as the Public API?
Yes. One Pro key from Profile → Developer for REST, MCP, and webhooks. Creating and updating subscriptions counts toward the shared 60 requests per minute.
What are the webhook limits?
30 subscriptions per account and 5,000 deliveries per UTC day. Past the daily cap the subscription becomes quota_paused until the next UTC day. You can pause a subscription yourself with PATCH.
Which events can I subscribe to?
kind=filter accepts only domain.matched_filter. kind=reports accepts auction.price_changed, auction.bid_count_changed, auction.ending_soon, auction.ended, report.note_changed, report.tags_changed, and report.favorite_changed. kind=user accepts usertask.created and usertask.completed.
Why is Majestic (or another metric) missing from the event?
Report data arrives in the background, not in one shot. A filter that does not require a metric can match before that metric exists. A low-priority report may never receive it.
Should I put a required metric in the filter?
Yes, if you only want reports that already have it. That narrows the set and can delay the event until the metric is collected. On expired domains the delay matters — the name can leave the feed while you wait. If you need the earliest signal, leave the metric out and check it after the POST.
In what order do metrics usually appear?
Auction data, then Karma Metric, then Karma Score and archive content, then SEO metrics (Majestic, Moz, Ahrefs, and the rest), then Google data. There is no fixed wait. A later step can be skipped.
Do note and favorite events go to everyone watching that report?
No. Those events go only to subscriptions owned by the account that changed the note, tags, or favorite. A watch used for price updates on the same report stays on auction events.
Where is the request schema?
Types and a try-it console are in Swagger UI. The Public API page covers search, reports, and the rest of REST.
Same inventory as the app — pushed to your URL
Register an HTTPS endpoint and start receiving events
One Pro key. 30 subscriptions. 5,000 deliveries per day.