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.

  • Free config generator
  • No account or card to try it
  • Pricing published in full

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

Pick authentication, region, client and limits. Copy a config and client snippet that run, with the latency they imply. 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 config generator, free for good.

Free
forever
  • Free config generator
  • No credit card
  • Core features included
  • Community support
Start free

ProPopular

For engineering teams of 3 to 50 people.

$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

    Try the free config generator

    Pick your options, and copy a working config straight away. No account, no card, no call.

  2. 2

    Put SendAlert to work

    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 config generator runs without an account, a card or a call.

What does it cost?

The free tier is free forever. Paid plans start at $5 per month.

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 cannot get budget for the enterprise tool.

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 route alerts to a chat channel that nobody sees at 3am, or to an email that nobody reads.

Can I get my data out?

Yes. You can download everything as a JSON file from your account settings at any time, and deleting your account deletes your data.

Why should I trust the result?

The config is built from the options you pick, and it lists anything in it that will misbehave under load before you copy it.

Copy a config that actually runs

Pick authentication, region, client and limits. Copy a config and client snippet that run, with the latency they imply. Runs in your browser. No account, no card, no call.

Open the free tool

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