/ api

The uptime monitoring API, on every plan

Monitors, heartbeats, maintenance windows, incidents, status page incidents and tags all have endpoints, so the daily work of uptime monitoring runs from a script. API keys are on every plan, free included. Every request needs one auth header.

Read the API reference for every endpoint, or start with the quickstart.

What the API covers

Monitors
Create, update, pause, resume and delete HTTP, ping, TCP, DNS and SSL checks, one at a time or up to 100 in one all-or-nothing call. Probe a target once before you save it, or run a check now.
Results and uptime
Read check results with the status code, error and region of each check, daily uptime, and response time by region.
Heartbeats
Give each cron job a ping URL, and get an alert when a run is late or reports a failure.
Maintenance windows
Silence alerts for a deploy or a reboot, once or on a schedule, and preview the next occurrences. From Pro.
Incidents
List incidents with the cause of each one, read one in full, and acknowledge it to stop repeat alerts.
Status page incidents
Open an incident on your public status page, post updates to it, then update or delete it.
Tags
Filter monitors and heartbeats by tag, tag up to 300 monitors at once, and rename or delete a tag everywhere.
Plan and setup
Read your plan's limits and usage, the check regions, and your notification channels.

Notification channels, status page settings, members, API keys and billing stay in the dashboard.

Authenticate with one header

Create a key in Settings → API Keys, then send it as a Bearer token: Authorization: Bearer fettle_…. A key belongs to one organization, so there is no organization header. A key has read or write scope, and write includes read. The API keys guide covers expiry, rotation and IP allow-lists.

List your monitors
curl -s https://api.fettle.sh/v1/monitors \
  -H "Authorization: Bearer fettle_your_key_here"
Create an HTTP monitor
curl -s -X POST https://api.fettle.sh/v1/monitors \
  -H "Authorization: Bearer fettle_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Docs",
        "type": "HTTP",
        "target": "https://example.com",
        "interval_seconds": 300,
        "regions": ["eu-central"]
      }'

Requests are counted per organization, per minute, across all its keys: 30 to 300 requests per minute by tier. Over the budget, the API answers 429 with a retry_after value in seconds.

The same API, for your agent

The Fettle MCP server puts these endpoints in front of Claude, Codex and any MCP client as tools, with the same key. Ask an agent what is down and why, and it reads the same incidents your scripts do. A tool call spends from the same per-minute budget.

Plans

The free plan includes the API and covers 20 monitors every 3 minutes from 1 region. Plus covers 50 monitors for $9 a month. Every plan and limit is on the pricing page, and the docs cover the API and MCP setup.

Questions

Is the Fettle API free to use?
Yes. API keys are on every plan, including the free one, which covers 20 monitors every 3 minutes from 1 region. The API can do whatever your plan allows, and nothing more.
How does the API authenticate?
With an API key sent as a Bearer token. A key belongs to one organization, so no organization header is needed. A key has read or write scope, and it can carry an expiry date and an IP allow-list.
What are the rate limits?
Requests are counted per organization, per minute, across all its keys: 30 to 300 requests per minute by tier. An MCP tool call spends from the same budget. Over it, the API answers 429 with a retry_after value in seconds.
Is there an OpenAPI document?
Yes. Every endpoint an API key may call is published as OpenAPI JSON, and as a browsable API reference.

Machine-readable: openapi.json.