Uptime says the endpoint is up.
Events say what's breaking inside it.
Send errors and events from your app with a single API call — no SDK, no agent to run. Triage them in your dashboard, or let your AI agent pull and acknowledge them over MCP. It lives right next to the uptime checks and status pages you already have.
Free uptime monitoring included. Event tracking on Pro.
# from your server — never the browser
curl -X POST https://api.uptimesignal.io/events \
-H "Authorization: Bearer $UPTIMESIGNAL_INGEST_KEY" \
-d '{"project":"my-app","level":"error",
"type":"PaymentFailed",
"message":"Stripe charge declined for order 4821"}'
error my-app · PaymentFailed just now
warn my-app · SlowQuery 2m ago
info worker · Deploy acknowledged
Create a key, send an event, triage it. That's the whole thing.
A write-only key that can only send events — it can't read or delete anything. Safe to put in your server's env.
One JSON request with project, level, type, and message. Drop it in your error handler.
Filter by level, project, or type in the dashboard — or let your AI agent do it over MCP. Acknowledge what's handled.
Your coding agent can wire up event reporting for you, and triage the results in chat. No SDK means there's nothing for an agent to misconfigure — just an endpoint and a key.
Add UptimeSignal event reporting to this app.
POST events to https://api.uptimesignal.io/events
with header "Authorization: Bearer $UPTIMESIGNAL_INGEST_KEY"
(read the key from env, server-side only).
JSON body: { project, level, type, message, tags?, stack?, source? }
- level: "error" | "warn" | "info"
Hook it into the existing error-handling paths so unhandled
exceptions report as level "error". Make it fire-and-forget
and don't add a dependency — use the built-in HTTP client.
{
"mcpServers": {
"uptimesignal": {
"command": "npx",
"args": ["uptimesignal-mcp"],
"env": { "UPTIMESIGNAL_API_KEY": "us_..." }
}
}
}
Tools: list_events, list_event_types, ack_event.
"Pull my UptimeSignal events from the last 24h, group by type, and flag what's urgent."
Already exploring AI-native monitoring? See UptimeSignal for AI agents & MCP →
Most "send us your data" APIs hand you one all-powerful key. If it leaks from your server logs or a stray commit, an attacker owns your account.
UptimeSignal ingest keys are write-only. They can send events and nothing else — they can't list, read, or delete your monitors or events. The blast radius of a leak is "someone sends junk events," and those are rate-limited.
Write-only ingest keys, scoped to POST /events
Per-account rate limiting on ingestion
Events scoped to your account — your projects, isolated
Payload caps on message, tags, and stack traces
Your app reports errors and notable events to UptimeSignal with a single HTTP POST — a project, a level (error/warn/info), a type, and a message, plus optional tags, stack, and source. Uptime monitoring tells you an endpoint is reachable from outside; event tracking tells you what's actually going wrong inside it.
It's deliberately lightweight — no SDK, no auto-instrumentation. You send events with one API call, or have your coding agent wire it up. It's a simple error and event log next to your uptime monitoring, not a full APM/tracing suite. Ideal if you want one tool for uptime, status pages, and a clear feed of your app's errors.
Create a write-only ingest key in Settings. It can only send events — never read or delete anything — so a leak means junk events (rate-limited), not account takeover. Always send from server-side code; never ship a key to a browser or client app.
Yes. Paste the provided prompt into Claude Code, Cursor, or Windsurf and it instruments your error handlers. To triage, add the uptimesignal-mcp server — it exposes list_events, list_event_types, and ack_event so your agent can pull, group, and acknowledge errors in chat.
Event tracking is a Pro feature. Pro is $10/month billed annually (or $15/month monthly) and also includes unlimited monitors, 1-minute checks, 90-day history, and all integrations. See pricing →
Any language that can make an HTTP request. The endpoint is a plain JSON POST — curl, JavaScript (fetch), Python (requests), Go, Ruby, PHP, anything — with no dependency. Copy-paste snippets are in the dashboard setup guide.
Start with free uptime monitoring. Add error & event tracking when you upgrade to Pro — one tool for uptime, status pages, and your app's events.
No credit card required. The free tier is the trial.