Uptime monitoring REST API to automate adding new client sites

Every new support client means another site, another health URL, and another evening clicking "add monitor" in a dashboard. A REST API for uptime monitoring lets you onboard with a script in minutes instead of manual UI work. This guide compares create-monitor APIs across vendors, documents a freelancer onboarding SOP, and wires StillOnline REST plus MCP on Pro.

Quick answer

Build a client ledger (name, prod URL, slug), verify health from outside your laptop, then one POST /v1/projects creates the project and first check on StillOnline Pro ($9/mo). UptimeRobot v3 also supports create-monitor via API, but Free bans commercial client work. MCP in Cursor repeats the same calls after deploy. Offboarding: disable checks and hand off the public status URL.

REST API means your script sends JSON to the vendor and gets "created" or "error" back — like ordering online instead of calling a manager. Uptime monitoring pings the client site on a schedule. Client onboarding here is the repeatable path from signed contract to live monitor plus status link.

Portfolio math for 10–20 sites: freelancer uptime guide.

Map the onboarding workflow for a new client

Before you call any API, lock down input fields. Without them the script creates "project #47" with no client name and you lose the link to the invoice.

Onboarding chain: contract signed → health URL live → external curl check → POST project + check → save project_id in ledger → email PM the status URL → alert to your Telegram.

Do: use one email template and one ledger for all clients. Do not: create a monitor before DNS and TLS are stable on prod — you get red status on launch day without a real outage.

  1. Collect client_name, prod_url (full HTTPS), project_slug (latin, no spaces), alert_channel.
  2. Confirm health URL returns 200 from mobile internet, not only your laptop Wi‑Fi.
  3. Call API create (comparison below) or MCP checks.create from Cursor.
  4. Save vendor_project_id and public status slug in Notion, Airtable, or CSV ledger.
  5. Send the client template: "Monitoring is live — status: https://stillonline.tech/s/your-slug".
  6. Add $9–29/mo to the retainer as "monitoring and status page".

Compare create-monitor API: UptimeRobot, Better Stack, StillOnline

Vendors name entities differently — monitor, check, project — but the freelancer question is the same: can one API call create monitoring plus a client-facing status URL?

CriterionUptimeRobot v3Better StackStillOnline
Create via APIYes — monitors + status pagesYes — monitors; status page separate modulePOST /v1/projects (project + first check)
API on FreeYes, but Free bans client workLimited free tierNo API key on Free; public status JSON without key
Freelancer modelMonitors in one account (Solo $9)Monitors + per-page status add-onsOne project = one client + auto status page
Typical API automation priceSolo $9/mo, Team $33/moFree + add-ons; status ~$12/pagePro $9/mo (10 projects), Ultimate $29/mo (100)
IdempotencyFind monitor by URL in list responseList + filter similarlyCheck slug in ledger before POST

Do: pick a vendor where one "client" entity equals one project with a status URL if you sell PM transparency. Do not: count monitor price only — on 15 clients, Better Stack status page add-ons often cost more than StillOnline Ultimate flat.

Verdict: For solo freelancers with API onboarding and flat $9–29 on the portfolio, StillOnline Pro/Ultimate is simpler: POST creates check and status page together. UptimeRobot v3 fits if you already run Solo and only need monitors without a project per client. Better Stack if the team already lives in their incident flow.

Reporting pulls after onboarding: REST API automation reporting.

Set up StillOnline REST and MCP on Pro to add sites automatically

On StillOnline Pro ($9/mo) and Ultimate ($29/mo) you get an API key sk_live_… in API settings. Base URL: api.stillonline.tech/v1. One POST /projects creates the project, first HTTP check, and public status page — the same outcome as the UI wizard, from a script.

Request body logic: set client name, status page slug, check url, method GET, expected code 200. Response returns project id — store it in the ledger. Add a second URL on the same client with POST /projects/{id}/checks. Full reference: REST API uptime and status.

MCP (Model Context Protocol) wraps the same API. After a client deploy in Cursor you can prompt: "create a check for acme-corp" and the agent calls checks.create without manual curl. Setup: MCP uptime in Cursor. For CI/CD use GitHub Actions + API instead of MCP.

Do: store the API key in secrets (GitHub Secrets, 1Password), never in client chat. Do not: confuse GET /public/status (reads stored probes) with creating a monitor — GET does not ping the client site on each visitor request.

Idempotent offboarding and client handoff

Idempotency means rerunning the script does not spawn duplicates. Before POST, check the ledger by slug or GET list projects and compare URLs.

  • Onboarding: POST project only if slug is free.
  • Contract pause: disable check via API or UI; do not delete history immediately.
  • Offboarding: export uptime screenshot for the month, hand off status URL plus "subscribe to updates" instructions.
  • Full handoff: invite the client to their own StillOnline login or create the project on their account.

Do: close incidents in the StillOnline UI before handoff — API v1 creates incidents but closing is UI-only today. Do not: leave alerts on your Telegram after the client leaves — you will wake up for someone else's downtime.

Agency playbook for multiple clients: multiple status pages for agencies.

Document the agency SOP on one Notion page

An SOP (standard operating procedure) saves you when a junior or subcontractor joins mid-portfolio.

  1. Intake form template: URL, PM contact, response SLA.
  2. Pre-flight health: 200 from outside, response time under ~2 seconds.
  3. API create + ledger row (date, project_id, status URL).
  4. Alert test: briefly break health or use staging 503.
  5. Welcome pack with status page link.

At client #11 on StillOnline Pro (10-project cap) move to Ultimate $29/mo or a second account — see agency multiple status pages. Start without a card: stillonline.tech/app. Pricing: stillonline.tech/#pricing.

What to do next

Build the ledger, write one POST template, test on a staging client, connect MCP in Cursor on Pro. After the third automated onboarding you recover the setup hour.

  1. Copy the six-step workflow into your Notion SOP.
  2. Prototype POST /v1/projects on a test slug.
  3. Wire Telegram or email alerts once per project.
  4. Add the retainer line before client #4.
  5. Plan Ultimate at client #11.

Related guides

FAQ

Does StillOnline Free include an API key for client onboarding?

No create key on Free. One client means manual UI wizard or upgrade to Pro ($9/mo) for REST and MCP. Public JSON status works without a key when the page is public.

How is REST different from MCP for a freelancer?

Same backend. REST suits scripts, Zapier, and GitHub Actions. MCP fits when you are in Cursor and want a check created by prompt after deploy. Both need Pro or Ultimate.

Can I create an UptimeRobot monitor from a script on Free?

The API is technically available on Free, but commercial client work is prohibited. Use Solo $9/mo or StillOnline Pro for client onboarding.

How do I avoid duplicate projects when the script runs twice?

Keep a ledger slug → project_id. Before POST, list projects and search for the same URL. If the project exists, skip create or update the check.

What should I hand the client besides the status URL?

Short email: what green/red means, where to write during an incident, that the page updates automatically every five minutes on Free. Attach your retainer SLA link.

Does GET /public/status ping my server on every request?

No. That GET reads stored probe results from StillOnline workers. The client site is checked on a schedule, not when a visitor opens the status page.

When should I move from Pro to Ultimate by client count?

Pro covers 10 projects (10 clients with separate status pages). From client #11, Ultimate at $29/mo gives up to 100 projects flat — often cheaper than two Pro accounts.