API client with webhook inboxes
Send the request. Catch the webhook.
Wirecatch sends your API requests and gives you a public inbox for the webhooks that come back. Check the signature, replay it to localhost, and keep the tests passing.
In preview. No sign-up: it runs in your browser and keeps your work there.
The webhook inbox
Watch it arrive.
An inbox is a public URL that records every request the moment it lands. You see the body as it was sent, every header, and whether the signature is genuine, without adding a single log line to your code.
- Choose what the inbox answers, to test a provider's retries
- Forward each webhook to your local server as it arrives
- Turn any capture into a request you can edit and save
A webhook, start to finish
From payment to passing test.
The loop every payment or Git integration goes through, in one place instead of a tunnel, a log tail and a separate API client.
-
01 Catch
Every request, as it lands
Point the provider at your inbox URL. Each request appears live, with its exact bytes and headers.
-
02 Verify
Signatures, checked
Paste the signing secret and Wirecatch checks the signature and the timestamp. The secret never leaves your browser.
-
03 Replay
Again, into localhost
Send it to your own server as many times as it takes to fix the handler, or forward each one as it arrives.
-
04 Test
Then keep it passing
Save the request with pm.test checks and run the whole collection, in the app or from the command line.
The API client
Your whole API, in order.
Collections, environments, scripts and tests, organised the way API work already is. Collection files in the common v2.1 format import and run unchanged.
- Collections and folders
- Save requests, group them and share auth down the tree.
- Environments
- {{variables}} from staging, production and globals, with unset ones flagged before you send.
- Scripts
- Pre-request and test scripts with pm.test and pm.expect, plus CryptoJS and pm.sendRequest.
- OAuth 2.0
- Client credentials and password grants. Tokens are fetched before the first request and renewed when they run out.
- Code snippets
- Copy any request as cURL, JavaScript fetch, Python, Go or raw HTTP.
- Bring what you have
- Import collection and environment files in the common v2.0 and v2.1 format, or paste a cURL command.
In CI
The same tests, on every push.
wirecatch run runs a collection with its scripts and tests from the command line. It reads the same collection files you use in the app, writes JUnit for your CI, and fails the build when a test fails.
The command-line runner is in preview and not yet published to npm.
$ wirecatch run payments.json -e staging.json --folder Charges
Payments API / Charges
→ Charges / Create charge
POST https://api.example.com/v1/charges 201 8 ms
✓ charge is created
✓ payment succeeded
✓ amount matches
→ Charges / Refund charge
POST https://api.example.com/v1/refunds?charge=ch_3QxT9a2eZvKYlo2C 200 1 ms
✓ refunded
2 requests · 4 passed · 0 failed · avg 5 ms
exit 0
Careful by default
Built for the keys you can't leak.
Imported scripts wait for you
Scripts that arrive in someone else's collection are paused until you have read them and allowed them, because a script can read every variable you have.
Your work stays on your device
Collections, environments and signing secrets are kept in your browser. Inbox tokens are stored on our server only as hashes.
Private networks stay private
The hosted relay refuses localhost, private ranges and cloud metadata addresses, and checks every redirect. To reach your own machine, use the Mac app, which is not released yet.
Catch your first webhook in a minute.
Open Wirecatch, press New inbox, and paste the URL into Stripe, GitHub, Paystack, Flutterwave or Shopify.
Open Wirecatch