Integrations: Works With Anything That Sends HTTP
There is no SDK and no agent. If your tool can make a POST request, it can report to SensaCat, which covers almost everything.
SensaCat has no SDK, no agent and no language-specific library. Reporting in is a single HTTP POST, which means anything capable of making a web request can integrate in about a minute.
That is a deliberate design choice rather than a gap. An SDK is one more dependency to version, audit and update, and a monitoring integration that breaks because a library went out of support is worse than no integration.
The whole interface
Ingest is dual-authenticated: the token identifies the resource, the header authenticates the account. Both must match, so a token appearing in a log file or a shared script is not on its own enough to forge pings.
Where this fits, by platform
| Platform | How you report in | Guide |
|---|---|---|
| Bash, cron | One curl line at the end of the script | Cron jobs |
| Laravel | Built-in thenPing on the scheduler | Laravel |
| Django, Python | requests or urllib in a try/finally | Django |
| Node.js | fetch with AbortSignal.timeout | Node.js |
| Go | http.Client in a deferred function | Go |
| Ruby, Rails | Net::HTTP in an ensure block | Rails |
| GitHub Actions | A curl step with if: success() | GitHub Actions |
| AWS Lambda | urllib in a finally block | Lambda |
| Zapier | Webhooks by Zapier as the final action | Zapier |
| Make.com | HTTP module as the final module | Make |
| n8n | HTTP Request node, plus an Error Trigger workflow | n8n |
No-code platforms are first-class here
Zapier, Make and n8n all ship a generic HTTP action, so they integrate exactly like code does. Put the request as the final step and it only fires when every preceding step succeeded.
This covers the case those platforms handle worst, which is a workflow that stops being triggered entirely. An inactive Zap produces no runs, no errors and no history, so the platform has nothing to alert on. An external monitor expecting a regular ping notices the silence.
Two rules worth following everywhere
Put the ping where the work actually completes, not where the request is received. A webhook handler that returns 200 and queues the work should ping from the queue worker, because the 200 is exactly the thing that can be true while nothing happens.
Never let the ping break the job. Set a short timeout and swallow its errors. Monitoring failing should never be the reason a working process reports a failure.
Webhook providers
For inbound webhooks from Stripe, Shopify, PayPal and similar, the pattern is the same but the placement matters more. Guides for each: Stripe, Shopify, PayPal.
Credentials and domains need no integration at all. Those are dates you enter, checked by us, with no code on your side.
Getting the token
Creating a monitor or a business flow shows a setup modal with a ready-made curl command containing your token and key. Copy it, paste it into your script, and the first ping registers immediately.
Start free: the Free tier includes two monitors, two credentials and a domain, which is enough to wire up a real job and see it working.