API reference

A small REST API over HTTPS. JSON in, JSON out.

  • Base URL: https://api.scmon.io
  • Auth: Authorization: Bearer scmon_… on every endpoint except account registration.
  • Rate limit: 120 requests/minute per client (tighter per-key limits apply at higher tiers).
  • Errors: non-2xx responses return { "error": "code", "details"?: … }.

Authentication

Register an account to get your first key, then send it as a Bearer token. Keys are shown once at creation — store them securely. You can mint additional keys, each optionally locked to an IP allowlist.

Accounts & keys

MethodPathAuthDescription
POST/v1/accountsRegister {email, password} (password ≥ 10 chars). Returns the account and first API key. 409 if the email exists.
GET/v1/accountYour profile: plan, max_watches, credit_balance, webhook_secret.
POST/v1/keysMint a key. Optional { "ipAllowlist": ["1.2.3.4", "10.0.0.0/24"], "scopes": [] }.
GET/v1/keysList your keys (prefixes only — never the secret).
DELETE/v1/keys/:idRevoke a key (204).

Watches

MethodPathAuthDescription
POST/v1/watchesCreate a watch. 402 at your plan’s watch limit.
GET/v1/watchesList watches.
GET/v1/watches/:idFetch one.
PATCH/v1/watches/:idUpdate fields or toggle active.
DELETE/v1/watches/:idDelete (204).

IP allowlisting

A key created with an ipAllowlist is rejected unless the request’s source IP matches one of its entries (single IPs or CIDR ranges). SCMon reads the real client IP at the Cloudflare edge, so a request needs both a valid key and an allowed IP.