Developer API · v1

Uptime monitoring you can script

Create monitors from your deploy pipeline, open a maintenance window before a release and close it after, and pull daily uptime into your own dashboards. Plain REST and JSON. API keys on every plan.

Quick start

Create an API key on the Configure page (scroll to API keys), then:

# Your monitors, with live status
curl https://cj0dxr3cke.execute-api.eu-west-2.amazonaws.com/v1/monitors \
  -H "Authorization: Bearer uc_live_YOUR_KEY"

# Create one
curl -X POST https://cj0dxr3cke.execute-api.eu-west-2.amazonaws.com/v1/monitors \
  -H "Authorization: Bearer uc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Checkout","type":"https","target":"https://shop.example.com/checkout","tags":["production"],"slowMs":2000}'

Keys are shown once. UpConduit stores only a hash, so a lost key has to be replaced, not recovered. Read-only keys can list and read but never create, edit or delete — use one for dashboards and integrations that only need to look.

Authentication and limits

Endpoints

EndpointWhat it does
GET/v1/accountPlan, monitor usage against your cap, check interval, speed-test quota.
GET/v1/monitorsEvery monitor with current status, last latency, 24-hour uptime and average, certificate days left, tags.
POST/v1/monitorsCreate a monitor. Same fields and validation as the dashboard: name, type, target, optional tags, slowMs, HTTP expectations, DNS record type, dependsOn.
GET/v1/monitors/{id}One monitor.
PUT/v1/monitors/{id}Edit name, tags or slowMs (null clears the threshold).
DELETE/v1/monitors/{id}Delete a monitor.
GET/v1/monitors/{id}/daily?days=30Daily roll-ups: checks, uptime %, average and worst latency, incidents, approximate downtime. Up to 400 days; today is marked partial.
GET/v1/maintenanceMaintenance windows, each with active: true|false.
POST/v1/maintenanceOpen a window: one-off (mode:"once", start, durationMin) or weekly (days, time, tz). Empty monitorIds means all monitors.
DELETE/v1/maintenance/{id}Close a window early.

Full request and response schemas: openapi.json (OpenAPI 3.0 — generate a client in your language).

Recipes

Silence alerts during a deploy

Open a 20-minute window for everything before the release starts. It closes itself; if the deploy leaves something broken, the very next checks after the window will page you.

curl -X POST …/v1/maintenance -H "Authorization: Bearer $UC_KEY" -H "Content-Type: application/json" \
  -d "{\"name\":\"Deploy $GIT_SHA\",\"mode\":\"once\",\"start\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"durationMin\":20}"

Monitor every preview environment

When CI creates a preview, register a monitor tagged with the branch; delete it when the branch merges. Tag filters in the dashboard keep them out of the way.

curl -X POST …/v1/monitors -H "Authorization: Bearer $UC_KEY" -H "Content-Type: application/json" \
  -d "{\"name\":\"preview $BRANCH\",\"type\":\"https\",\"target\":\"https://$BRANCH.preview.example.com/\",\"tags\":[\"preview\"]}"

Uptime for your own reporting

Pull 90 days per monitor with a read-only key and render it however you like.

curl "…/v1/monitors/$ID/daily?days=90" -H "Authorization: Bearer $UC_READONLY_KEY"

CLI, SDKs and Terraform

Everything the API does, in the shape your team already works in. All zero-dependency, all in the open.

Command line

export UC_API_KEY=uc_live_YOUR_KEY
uc monitors                                      # table of monitors with status
uc monitors add "Checkout" https https://shop.example.com/checkout --tags production --slow 2000
uc maint open "Deploy $GIT_SHA" 20                # silence alerts for 20 minutes
uc daily mabc123 --days 30

JavaScript

import { UpConduit } from "@upconduit/sdk";
const uc = new UpConduit(process.env.UC_API_KEY);
const { monitors } = await uc.monitors.list();
await uc.maintenance.open({ name: "Deploy", durationMin: 20 });

Python

from upconduit import UpConduit
uc = UpConduit(os.environ["UC_API_KEY"])
uc.monitors.create(name="Checkout", type="https", target="https://shop.example.com/checkout", slow_ms=2000)

Terraform

resource "upconduit_monitor" "checkout" {
  name    = "Checkout"
  type    = "https"
  target  = "https://shop.example.com/checkout"
  tags    = ["production"]
  slow_ms = 2000
}

Install the CLI with npm install -g @upconduit/cli, the JavaScript SDK with npm install @upconduit/sdk, and the Python SDK with pip install upconduit. The Terraform provider is on the public Registry as upconduit/upconduit — terraform init fetches it.

Heartbeats, status pages and webhooks