Skip to content

Add doc samples for verified sources batches 6 to 14 (205 providers) - #75

Merged
garethx merged 2 commits into
mainfrom
feature/samples-verified-sources-batches-6-14
Oct 27, 2026
Merged

garethx merged 2 commits into
mainfrom
feature/samples-verified-sources-batches-6-14

Conversation

@garethx

@garethx garethx commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Requested by Gareth · project thread

Before: hookdeck/webhook-registry#109, #110, #113, #115, #116, #117 and #118 (verified sources batches 6 to 14, all merged) added 387 provider rows (386 new, plus the Ampersand upgrade) and exported doc examples for 205 of them to the registry's samples-doc/ tree. None of the 205 had a directory here.

After: 205 new provider directories with 1,473 doc-sourced samples. providers.json goes from 293 to 498 providers. The other 182 rows get no directory because they have no published example body; they're listed per batch below. No existing file is changed.

Batch Registry PR Rows With samples Samples
6 hookdeck/webhook-registry#109 48 28 145
7 hookdeck/webhook-registry#110 44 17 122
8 hookdeck/webhook-registry#113 17 3 83
9 hookdeck/webhook-registry#118 51 34 183
10 hookdeck/webhook-registry#118 58 34 228
11 hookdeck/webhook-registry#116 42 29 351
12 hookdeck/webhook-registry#116 38 18 138
13 hookdeck/webhook-registry#115 45 19 93
14 hookdeck/webhook-registry#117 44 23 130
Total 387 205 1,473

Rows with no published example body, so no directory:

  • Batch 6 (20): absorb-lms, agentline, anarlog, athenahealth, autotask, basin, circleback, companycam, fullenrich, glean, hail, holded, huntress, live-tennis-api, plain, prive, rocketreach, theirstack, vimeo, zigpoll
  • Batch 7 (27): acumatica, axiom, clickhouse, cloudentity, datto-rmm, demodesk, dynatrace, grist, halo-psa, jamf-pro, jamie, jobadder, lessonly, meilisearch, metabase, nexthink, pax8, people-data-labs, pingone, procore, quickbase, rapidapi, roller, streak, swoogo, torii, tripletex
  • Batch 8 (14): ampersand, beehiiv, egnyte, emarsys, knowbe4, lumos, safebase, sap-successfactors, simpro, tanium, timify, ukg-ready, webinarjam, youmail
  • Batch 9 (17): agora, checkout-page, column, convex, hyperswitch, idenfy, katana, mailcoach, oxapay, paypercut, referralhero, returnless, socotra, sonarqube, taskade, terra-api, texture
  • Batch 10 (24): bump-sh, delivereasy, deliverect, dojah, fingerprint, formspree, freemius, hackerone, hifi, learnhouse, medplum, memberful, morta, preczn, root-platform, sahha, sendx, thought-industries, tokity, top-gg, uploadcare, vivenu, xtremepush, zitadel
  • Batch 11 (13): celitech, cerebrum, clemta, doubleword, epilot, flexprice, general-translation, memos, nextpay, trunk, vern, versive, webiny
  • Batch 12 (20): argil, camel-ai, chargeblast, dots, hexclave, hirehive, layerswap, monerium, origami, pganalyze, prividium, runa, sajn, salad-cloud, salsa, spacebring, supertab, terminal-telematics, tolt, trackstar
  • Batch 13 (26): argo-cd, aurora-solar, celcoin, clickatell, estuary, gc-notify, govuk-notify, honeycomb, hostaway, incode, kibana, measureone, mighty-networks, palmetto-finance, particle, payrix-pro, plunk, prometheus-alertmanager, ship24, smtp2go, swan, tabby, trendyol, vellum, ventrata, zoop
  • Batch 14 (21): bamboohr, bugsmash, campfire, charitystack, chatim, chili-piper, configcat, featurebase, greenshades, lodgix, magic-hour, openrouter, paynow-gg, podium, quicknode, schematic, spree, tidio, twenty, typefully, ultravox

Ampersand (batch 8) already has a captured v1 directory here, and the registry exports no doc samples for it, so it's untouched.

How: I copied samples-doc/providers/<p>/ from webhook-registry main (d6ca5080) into providers/, the same way #72, #73 and #74 did. The first commit is that copy, byte-identical to the export, index.json included. The second commit changes 22 of the 1,678 files so that every non-null topic_identifier resolves its provider's samples (see the first point below). I checked each non-null topic_identifier against the registry row's discriminator path, then ran every sample through the repo's own resolveTopic (topic.ts under node --experimental-strip-types, header first, then body, list order as requestReceiver.ts does it). Every non-null identifier resolves all of its provider's samples to their own topic. Each sample carries source.type: vendor-documentation and its page URL, and each version is marked sourced_via: docs. yarn compile passes (293 → 498 providers, and the compiled topic count equals the file count for all 205). yarn test passes 16/16.

Worth a look:

  • 22 files differ from the registry export. As exported, 7 providers' identifiers resolved none of their samples, and 2 providers' samples lacked the header their identifier reads:

    • survicate and sinch had a prose note in topic_identifier ("key-presence: …"). The registry records both as key presence: the event is which key is present, not a value. They're now null.
    • cashfree had "type (Payment Gateway, Payouts V2) | event_type (Secure ID, PPI)". It's now the list type, event_type, which is what the carrier note describes. All 5 samples resolve.
    • hitpay had hitpay-event-object, which is half of a composed topic (Hitpay-Event-Object + . + Hitpay-Event-Type), and no sample carries either header. It's now null, like copper in Add doc samples for verified sources batch 5 (21 providers) #74.
    • thinkific had the list resource, action. A list takes the first key that resolves, so all 23 samples resolved to the bare resource (course, not course.created). The topic is composed, so it's now null.
    • pine-labs had event_type, but its carrier note says the payout events use eventType. It's now the list event_type, eventType, and the two payout samples resolve.
    • requesty had X-Requesty-Event. The registry row's path is x-requesty-event, and the sample headers (and any capture through express) are lowercase. Now lowercase.
    • learnupon's 14 samples and forgejo's 1 sample now carry the topic header their identifier reads (x-webhook-type, x-forgejo-event-type), synthesized as the registry's exporter does for other header-carried topics. forgejo's sample keeps the doc's own X-Forgejo-* headers. The doc only shows X-Forgejo-Event, which is the coarser group, so the added header sits beside it.

    These should go back into the registry's samples-doc/ too, or a later copy will disagree.

  • null rows (23): 15 have no event field (the registry records absent): act-on, certn, factorial, felloh, flux-cd, fountain, khipu, meetgeek, opnform, paytabs, rebrandly, semaphore, soniox, spacelift and uppromote. fiber-ai is unknown. Five are composed: pipeline-crm (event_model + event_action), maximizer ([].Entity + [].Data.Op), redo (the return key + type), and hitpay and thinkific above. survicate and sinch are key presence. Each sample's topic comes from the doc heading, as in Add 228 doc-sourced samples for verified-sources batch 3 (30 providers) #72, Add doc samples for verified sources batch 4 (32 providers) #73 and Add doc samples for verified sources batch 5 (21 providers) #74, and a live capture would land as untitled-<hash>.

  • List forms: pine-labs and cashfree, above.

  • clickpost's carrier is an integer. clickpost_status_code is 6, 41 and so on, and the topics are "6", "41".

  • File names that differ from their topics. Topics with /, : or \ (cin7-core, qonto, loyaltylion, treet, factorial, nextcloud, bvnk, convox, infinite-giving, tiltify) get the same stem from the registry's safe-stem rule and from requestReceiver.ts. Three new cases contain spaces and don't: mailtrap soft bounce → soft.bounce.json, and document360 Article deleted and Extension token deleted. The receiver would write soft bounce.json. That's the known castle, descope, flexport and PubNub mismatch, and this PR leaves the receiver alone.

  • Versions taken from the payload or the docs:

    • From the body: roam 2026-07-07 (apiVersion; the registry also records a legacy 2026-06-01 shape with no samples), needle v1 (version), langfuse v1 (apiVersion), rewardful v1 (event.api_version), bindbee 2026.10.06 (version), linq 2026-02-03 (webhook_version).
    • From a header: learnupon 2.0 (X-LearnUpon-Version, which the samples don't carry).
    • From the docs or API path: belco v1, qonto v1 (the v1/ prefix in every type name), northpass v2, proof v2 (Webhooks V2), whoop v2 (the dashboard's model version).
  • Not re-versioned, though the body carries one version value. The README says a payload version is the directory. The registry's harvesters filed these under latest, and I've left them as exported for you to decide: rocketlane 1.0, plane v2, semaphore 1.0.0, globalstack v1, relay-messenger 2026-08-30 (the same webhook_version field linq is filed under), tensorlake 1 (integer schema version), scalekit 1 (spec_version), 100ms 2.0, leonardo-ai v1, payroc 1.0.0 (per event type), sublime-security 0, spherepay v2 (event schema version), superwall 2026-09-22 (V2 webhooks' api_version) and usesend 2026-01-18. speed, recurrente and connecteam carry more than one value across their samples, so filing them by version would split them across directories.

  • Sub-path rows resolve on their primary carrier: qonto (type, with data.event as sub-path), threads (values.field, with topic) and forgejo (with action).

Per-provider table (205)
Batch Provider Samples Version dir topic_identifier
6 agentcard 36 latest type
6 appstle 5 latest type
6 autosana 1 latest event
6 autumn 4 latest type
6 canny 1 latest type
6 certn 1 latest null
6 dentally 1 latest event
6 envoy 18 latest event
6 fiber-ai 1 latest null
6 folk 17 latest type
6 hitpay 13 latest null
6 humaans 1 latest action
6 jazzhr 1 latest x-jazzhr-event
6 jobber 1 latest data.webHookEvent.topic
6 mailtrap 11 latest events[].event
6 missive 1 latest rule.type
6 moneybird 1 latest action
6 nooks 1 latest event
6 pennylane 3 latest event
6 pipeline-crm 1 latest null
6 planning-center 1 latest data[].attributes.name
6 roam 15 2026-07-07 type
6 semble 1 latest eventType
6 teamwork 2 latest x-projects-event
6 textus 4 latest action
6 threads 1 latest values.field
6 tremendous 1 latest event
6 zenefits 1 latest type
7 8x8 4 latest eventType
7 aimfox 17 latest event_type
7 auvik 2 latest alertStatusString
7 baserow 1 latest event_type
7 bitdefender 33 latest params.events[].module
7 cin7-core 26 latest EventType
7 cyberimpact 1 latest event
7 document360 2 latest Event
7 factorial 1 latest null
7 firstbase 1 latest eventType
7 maximizer 19 latest null
7 nextcloud 6 latest event.class
7 postscript 1 latest event
7 redo 1 latest null
7 rocketlane 2 latest eventType
7 videoask 4 latest event_type
7 wiza 1 latest type
8 act-on 13 latest null
8 ingenious-build 5 latest name
8 needle 65 v1 type
9 api-video 1 latest type
9 argyle 1 latest event
9 baseten 1 latest type
9 belco 6 v1 eventName
9 bvnk 1 latest event
9 chameleon 1 latest kind
9 complycube 1 latest type
9 convox 1 latest action
9 creem 17 latest eventType
9 cryptoprocessing 9 latest type
9 flux-cd 1 latest null
9 forgejo 1 latest x-forgejo-event-type
9 fountain 2 latest null
9 khipu 1 latest null
9 komoju 2 latest type
9 langfuse 1 v1 action
9 learnupon 14 2.0 x-webhook-type
9 meetgeek 2 latest null
9 northpass 8 v2 data.type
9 onramper 1 latest status
9 optimizely 1 latest event
9 partnero 1 latest event
9 proof 7 v2 event
9 pulumi 6 latest pulumi-webhook-kind
9 qonto 15 v1 type
9 rewardful 1 v1 event.type
9 rootfi 4 latest event
9 spacelift 2 latest null
9 storylane 1 latest event
9 surveymethods 1 latest eventType
9 terminal49 36 latest data.attributes.event
9 thinkific 23 latest null
9 wistia 12 latest events[].type
9 ziina 1 latest event
10 agentset 14 latest event
10 authgear 25 latest type
10 ayrshare 2 latest action
10 bigmailer 5 latest type
10 buttondown 1 latest event_type
10 cloudsmith 1 latest meta.event_id
10 dub 15 latest event
10 felloh 4 latest null
10 gitbook 3 latest type
10 govuk-pay 1 latest event_type
10 high-mobility 1 latest event.type
10 hint-health 1 latest type
10 kolide 13 latest event
10 lettermint 15 latest event
10 logto 1 latest event
10 loyaltylion 20 latest topic
10 mews-pos 1 latest meta.eventType
10 oh-dear 1 latest type
10 opnform 1 latest null
10 payt 45 latest event.event_name
10 paytabs 1 latest null
10 plane 2 latest event
10 planetscale 21 latest event
10 qlik-cloud 2 latest type
10 reditus 1 latest event_type
10 ryft 2 latest eventType
10 semaphore 1 latest null
10 spike-api 2 latest [].event_type
10 survicate 2 latest null
10 teachfloor 2 latest type
10 treet 1 latest trigger
10 tutorcruncher 1 latest events[].action
10 uppromote 9 latest null
10 violet 11 latest x-violet-topic
11 agntix 1 latest eventType
11 airweave 11 latest event_type
11 basiq 1 latest eventTypeId
11 bayou-energy 7 latest event
11 bindbee 6 2026.10.06 event
11 crossmint 9 latest type
11 cuuro 3 latest event
11 formbricks 3 latest event
11 globalstack 7 latest event_type
11 isnap 37 latest event_type
11 junction 1 latest event_type
11 linq 56 2026-02-03 event_type
11 liveblocks 17 latest type
11 meeting-baas 8 latest event
11 nitrosend 2 latest type
11 nomod 1 latest type
11 notifuse 4 latest type
11 novu 3 latest type
11 openlayer 4 latest type
11 outhire 1 latest event
11 pine-labs 30 latest list: event_type, eventType
11 privy 67 latest type
11 relay-messenger 8 latest event_type
11 requesty 6 latest x-requesty-event
11 sohar-health 8 latest event
11 speed 24 latest event_type
11 surge 17 latest type
11 tensorlake 3 latest event_type
11 voiceflow 6 latest type
12 axilio 5 latest type
12 blindpay 1 latest webhook_event
12 dodo-payments 5 latest type
12 goody 8 latest event_type
12 helcim 2 latest type
12 justt 11 latest type
12 laso-finance 1 latest type
12 omnara 5 latest event
12 pinata 8 latest event_type
12 pipecat-cloud 6 latest event_type
12 recurrente 4 latest event_type
12 scalekit 39 latest type
12 skovik 4 latest type
12 storekit 23 latest event
12 superwall 1 latest type
12 swipelux 12 latest type
12 travtus 2 latest event_type
12 velt 1 latest event
13 100ms 1 latest type
13 arcadia 9 latest eventType
13 clickpost 11 latest clickpost_status_code
13 connecteam 35 latest eventType
13 datacake 3 latest event
13 digital-samba 1 latest eventType
13 firstpromoter 4 latest event_type
13 gumlet 2 latest type
13 harbor 10 latest type
13 leonardo-ai 1 latest type
13 mono 6 latest event
13 navattic 1 latest eventType
13 payjp 1 latest type
13 payroc 3 latest type
13 rebilly 1 latest eventType
13 rebrandly 1 latest null
13 sevalla 1 latest type
13 soniox 1 latest null
13 sublime-security 1 latest type
14 affonso 16 latest type
14 ardoq 1 latest resource-type
14 box 1 latest trigger
14 breakcold 15 latest event
14 cashfree 5 latest list: type, event_type
14 coassemble 2 latest type
14 cyera 4 latest request_type
14 hume 2 latest event_name
14 infinite-giving 2 latest event
14 lob 1 latest event_type.id
14 metronome 30 latest type
14 micetribe 1 latest meta.trigger
14 onshape 7 latest event
14 purchasely 7 latest event_name
14 remote 1 latest event_type
14 sent-dm 8 latest event
14 sinch 17 latest null
14 spherepay 2 latest type
14 tiltify 1 latest meta.event_type
14 upload-post 4 latest event
14 usesend 1 latest type
14 vitable-health 1 latest event_name
14 whoop 1 v2 type

Generated by Claude Code

Copied byte-identical from webhook-registry samples-doc/providers/ at
d6ca5080 (hookdeck/webhook-registry#109, #110, #113, #115, #116, #117, #118).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
Seven exported index.json files named an identifier that can't resolve
the provider's samples: prose in place of a key (survicate, sinch,
cashfree), a composed topic given as one part (hitpay) or as a list
(thinkific), a missing documented fallback (pine-labs) and a
capitalised header name (requesty). learnupon's and forgejo's samples
lacked the topic header their identifier reads, so it is synthesized,
as the registry exporter does for other header-carried topics.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webhook-samples Ready Ready Preview Oct 27, 2026 10:14am UTC

Request Review

@garethx garethx self-assigned this Oct 27, 2026
@garethx
garethx merged commit ead5cb6 into main Oct 27, 2026
3 checks passed
@garethx
garethx deleted the feature/samples-verified-sources-batches-6-14 branch October 27, 2026 11:23

This branch was successfully deployed

1 active deployment
Preview — c6405951 Deployed Oct 27, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants