Skip to content

On-call alerting that a five-person team can actually afford.

Proper alerting without the enterprise price.

No account. No card. No sales call.

  • 4,000 teams on the free tier
  • 800 paying
  • 20 million alerts delivered

The problem

Incident alerting is priced per user per month at levels that make sense for a hundred-person engineering organisation and are absurd for a team of six, so small teams route alerts to a chat channel that nobody sees at 3am, or to an email that nobody reads.

The result is that outages are discovered by customers, which is the most expensive way to discover them.

Who this is for

Engineering teams of 3 to 50 people running production systems: startups, agencies with managed clients, and internal teams at larger companies who cannot get budget for the enterprise tool.

Copy a config that actually runs

Free forever for up to 5 users with full alerting, escalation and phone calls, limited only by monthly alert volume. Runs in your browser. No account, no card, no call.

Your service

Generates locally. Copy the output and it runs.

p50 latency
25 ms
p99 latency
80 ms
Worst case
30.3 s
all retries exhausted
my-service.config.yaml yaml
# my-service — generated by SendAlert
# Copy to my-service.config.yaml. Every value below is live, not a placeholder.
apiVersion: v1
kind: Service
metadata:
  name: my-service
  region: us-east
spec:
  endpoint: https://my-service.sendalert.app/v1
  auth:
    mode: apikey
    credential: ${MY_SERVICE_TOKEN}
  limits:
    requestsPerMinute: 600
    timeoutMs: 10000
    maxRetries: 2
    backoff: exponential
  observability:
    structuredLogs: true
    tracing: w3c
    replayRetentionDays: 7
Try it now bash
curl -sS https://my-service.sendalert.app/v1/run \
  -H "X-API-Key: $TOKEN" \
  -H "Content-Type: application/json" \
  --max-time 10.0 \
  -d '{"input": {"task": "hello"}}'
Client node
import { Client } from "@my-service/sdk";

const client = new Client({
  endpoint: "https://my-service.sendalert.app/v1",
  auth: { mode: "apikey", token: process.env.TOKEN! },
  timeoutMs: 10000,
  maxRetries: 2,
});

const result = await client.run({ task: "hello" });
console.log(result.data);
Things this configuration will do to you
  • API keys do not expire on their own. Set a rotation reminder now.

Take this with you

No email required. It is your result.

SendAlert — config
· my-service · us-east · apikey
· p50 25ms, p99 80ms
· 1,500,000 requests/month at 600 rpm burst

Run it yourself: https://sendalert.app

What you actually get

Six things that are true on the first day, not on the roadmap.

  • 01

    One command to production

    A working, authenticated endpoint from a single command. No YAML archaeology.

  • 02

    Typed SDKs

    Generated clients for TypeScript, Python and Go, versioned with the API and never out of date.

  • 03

    Observable by default

    Structured logs, traces and per-request replay. Debugging is reading, not guessing.

  • 04

    Rate limits and quotas

    Per-key limits with clear headers and honest 429s, so your clients degrade predictably.

  • 05

    Self-host option

    Run it in your own VPC under a commercial licence when compliance requires it.

  • 06

    Versioned, never broken

    Dated API versions with a published deprecation policy. Nothing changes under you.

Pricing

Published in full. No “contact us for pricing”, no per-seat surprise on renewal.

Free

The wedge, free forever. Enough to run on.

Free
forever
  • Free forever for up to 5 users with full alerting, escalation and phone calls, limited…
  • No credit card
  • Core loop included
  • Community support
Start free

ProPopular

For engineering teams of 3 to 50 people running production…

$5
per month
  • Everything in Free
  • Unlimited usage
  • Full history and exports
  • Integrations and API access
  • Email support
Start 14-day trial

Scale

For teams that depend on this in production.

$7
per month
  • Everything in Pro
  • SSO and SCIM
  • Audit log and data residency
  • 99.9% uptime SLA
  • Dedicated support channel
Talk to sales

Prices in USD. Cancel any time from the dashboard — no email, no retention call.

How it works

Three steps, and the first one costs nothing.

  1. 1

    Run the free tool

    Free forever for up to 5 users with full alerting, escalation and phone calls, limited only by monthly alert volume.

  2. 2

    See your own numbers

    Proper alerting without the enterprise price.

  3. 3

    Upgrade only if it earns it

    Keep the free result either way. Move to a paid plan when SendAlert is already doing the work.

Questions people actually ask

Do I need to talk to anyone to try this?

No. The free SendAlert tool runs without an account, a card or a call. That is the point of it.

What does it cost?

Pricing is published in full on this page.

Who is this actually for?

Engineering teams of 3 to 50 people running production systems: startups, agencies with managed clients, and internal teams at larger companies who…

What problem does it solve?

Incident alerting is priced per user per month at levels that make sense for a hundred-person engineering organisation and are absurd for a team of six, so small teams…

Can I get my data out?

Yes. Everything you put in can be exported as CSV or JSON at any time, and deleting your account deletes your data.

Why should I trust the result?

The incumbents cannot cut prices without damaging their enterprise revenue, which leaves the entire small-team market structurally underserved by a category that is otherwise mature.

Copy a config that actually runs

Free forever for up to 5 users with full alerting, escalation and phone calls, limited only by monthly alert volume. Runs in your browser. No account, no card, no call.

Open the free tool

It runs in your browser. SendAlert never sees your inputs.