Uptimia

API Monitoring

13 min read Updated Sep 10, 2026

An API monitor is an ordered chain of up to 15 HTTP requests, and Uptimia replays it on a schedule from your chosen probes: log in, take the token, call the endpoint, check what came back. A failed step stops the chain. Uptimia names that step in the incident. Assertion types, value extraction and {{variable}} templating have their own reference: Assertions, Extractions and Variables.

Before You Start

  • API monitoring is included on every plan: Free and Basic get 1 API monitor, Professional 10, Enterprise 100. See Plan Limits and Quotas.
  • Creating or editing a monitor needs an Owner, Admin or Editor seat. A Read-only seat cannot.
  • The chain runs from Uptimia's public probes, so every URL must resolve to a public address. A private, loopback or link-local target is refused with blocked_url. For internal APIs, see Monitoring Behind a Firewall.

API Monitoring Is Not the Uptimia REST API

API monitoring is a monitor family. You describe a chain of requests against your API, and Uptimia runs it on a schedule under Monitoring → API in the sidebar. The Uptimia REST API is Uptimia's own interface: your code can read and create monitors, incidents and logs, and its keys live under Settings → API Keys (/cp/settings/api-keys). If you came here to pull your own data out of Uptimia, go to Getting Started with the Uptimia API.

API Monitoring or Transaction Monitoring

Both replay a multi-step flow.

API monitor Transaction monitor
Executes HTTP requests, no browser A real browser driving a page
Steps Up to 15 requests Recorded browser actions
Verifies Status code, latency, JSON fields, headers, body text Page content and element state
Fastest cadence 1 minute on every paid plan 10 minutes
Plan pool Its own API pool The shared Advanced checks pool, split with Speed monitors

Pick an API monitor when what matters is the payload: a token issued, an order created, a price field correct. Pick a transaction monitor when what matters is the page a customer sees. Choosing Between Monitor Types covers the rest of the set.

Creating an API Monitor

  1. Go to Monitoring → API.
  2. Click Create API Monitor on the API monitors page.
  3. Enter a Monitor Name. It must be unique on the account, and there is no URL to auto-fill it from.
  4. Add any monitor-level Variables in the top half of the Request chain card: a base_url, an API key marked as a secret.
  5. Click Add request step and fill in the step's name, method and URL.
  6. Repeat until the chain is complete, up to 15 steps.
  7. Click Run test in the Test & response rail and read the result.
  8. Set the check frequency, recipients and locations.
  9. Click Save Monitor.

With an API monitor already saved, the API monitors page opens that monitor instead of the create form. Use Add Monitor at the foot of the monitor panel.

The Request chain card in the API monitor editor: three monitor variables, one of them a masked secret, above a five-step request chain showing each step's method, URL and check count.

The Request Chain

Steps run in the order they appear, and a failed step leaves every later step recorded as not run rather than passing quietly. Drag a row to reorder it. To insert a step between two others, use the Add step here zone that appears on hover. Click a row to expand its editor. Step name, method and URL are always visible; everything else sits behind a three-way strip: Request, Assertions, Extract.

Field What it does Default Limits
Step name Label used in the run log, the incident reason and the alert. Empty —
Method The HTTP verb. GET GET, POST, PUT, PATCH, DELETE, HEAD
Request URL Absolute URL, {{variable}} placeholders allowed. Empty 2,048 characters
Headers Name/value pairs sent with the request. Values and names accept {{variables}}. None 20 per step
Body Request body, {{variables}} allowed. Shown for POST, PUT and PATCH only; a GET or HEAD step never sends one. Empty 65,536 bytes

A step with no assertions passes on any 2xx response. Assertions, extraction and variables are documented in Assertions, Extractions and Variables.

An expanded API request step showing its method and URL, the Request / Assertions / Extract tab strip, its assertion chips, request headers and the folded per-step Options summary.

Per-Step Options

The options fold behind a closed Options disclosure. Its summary line recaps them, for example 10 s timeout · waits 500 ms · optional · follows redirects.

Option What it does Default Limits
Timeout Fails the step if no response arrives in time. 10 seconds 1–60 seconds
Wait before this step Pauses before the request runs, so work an earlier step started has time to finish. 0 ms 0–30,000 ms
Optional step When this step fails, the chain carries on and the failure does not fail the run. Its extractions are left unset, so a later step that references them fails with undefined_variable. Off —
Follow redirects Follows redirects for this step. Uptimia re-checks each hop against the same rules. A hop that changes host or drops to plain HTTP loses the Authorization, Cookie and Proxy-Authorization headers. On 5 hops

The step footer carries Duplicate and Delete step. Once the chain holds 15 steps, Duplicate stops working.

Two whole-run ceilings apply on top of the per-step limits. Uptimia reads a response body to 1 MB, then flags it body_truncated. The chain gets 90 seconds in total. If a step crosses that ceiling, it fails with run_budget_exceeded.

Testing from the Builder

The sticky Test & response rail runs the chain you have on screen, saved or not, against a real probe and returns the full result.

  • Test from picks the probe. Random (auto-select) lets Uptimia pick the probe for you.
  • Run test runs the whole chain. Run to step N stops after the step you are inspecting. That is how you build a long chain a few steps at a time.
  • The request-log scrubber lists every step with its method, path, status code and duration. Click one to load it into the inspector, which has Body, Headers and Timing tabs plus the per-assertion pass/fail checklist underneath. Body shows pretty-printed JSON with extracted values highlighted.
  • Editing a step or a variable clears the previous verdict, so a green chip never belongs to a step you have since changed.

The API builder's Test and response rail after a failing test run: the per-step request log with the failed step selected, its JSON response, and the assertion checklist showing which assertion failed and what came back instead.

Testing a saved monitor merges your stored secret values back in, so a masked secret works without retyping it. A builder test never counts as a monitored run: it leaves the check schedule alone and can neither open nor close an incident. It does overwrite the last-run detail on the detail page.

Uptimia caps tests at 10 per minute per account. Over that the run is refused with Too many test runs — please wait a moment and try again.

Check Frequency

The Check frequency slider sits in the Notification Settings card at the foot of the Main tab. A new API monitor defaults to every 5 minutes.

Uptimia sends out API checks once a minute, so no plan can check faster than that. Basic, Professional, Enterprise and the trial all floor at 1 minute. Free is clamped further, to 5 minutes. The slider runs up to 24 hours, and its steps get coarser above 60 minutes.

Probe Locations

API monitors use the standard Locations tab: All probes, a Saved profile, or a Custom selection. A custom selection needs at least 6 probes. Saved profiles are live templates: editing one rewrites every monitor still on its previous probe set. See Location Profiles.

An account in the EU region gets the European probe set pre-selected on creation. A dismissible banner reads "Defaulted to European probes based on your account region — switch to 'All probes' any time."

Each scheduled run uses one probe, rotating through the selected set, so coverage spreads across runs rather than multiplying them.

Outage Confirmation and Alerting

Outage confirmation lives on the Advanced tab and counts differently here than on most monitor types: it is primary-inclusive, so the number you pick includes the location that failed first. The option labels say so: 3 checks total — primary + 2 other locations (recommended). A new API monitor is created at 3. The range is 1–3. At 1, 1 check — the first failed run alerts.

When a run fails, Uptimia re-runs the whole chain from other locations until the threshold is met, and the confirming runs need not fail on the same step: any failing step counts as agreement. If a confirming location passes, no incident opens. Closing is quicker: one passing run closes the incident, with no confirmation round.

Alert delay holds the alert for 0–30 minutes after confirmation. Alert when the website comes back up controls the recovery alert and is on by default.

At least one recipient is required. The editor blocks the save with "At least one alert recipient is required". An explicitly empty list sent to the API is refused with invalid_contacts ("No contacts provided"). On Professional and above, attaching an escalation policy switches the monitor to Escalate over time, and the people paged then come from the policy rather than from this list. The monitor's own list stays required as the fallback.

Reading the Detail Page

The detail page is a stack of cards under a header. The header shows the step count, the interval, the location count, and the first step's host when that step's URL starts with a literal http:// or https:// host rather than a {{variable}}. The date-range picker at the top scopes every card below it.

  • The six-stat strip: Current status, Availability, Incidents, Avg run time (with p95, the time 95 runs in 100 stayed under), Slowest step, Checks run. A monitor that has never run shows a neutral Pending pill and no data yet, not a premature Up.
  • Response time by step is a stacked area chart, one band per step. Buckets are hourly up to a 7-day window and coarser above it. The run total is the sum of the bands, and incident markers sit on the axis.
  • Step breakdown has a segmented control with two modes. N-day averages show share of run, average, p95 and change against the previous equal window. Last run is a bar chart showing when each step started, how long it took in milliseconds and how many assertions it ran.
  • Incidents lists the newest 8, each linking to its incident page.
  • Check log lists the latest 10 runs in range, newest first: when, result, steps passed of total, probe location and duration.

An API monitor's detail page: the six-stat strip with availability and average run time, above the response-time-by-step chart where each request contributes its own band to the run total.

The Step breakdown card in Last run mode: an offset waterfall showing where each request in the chain started, how long it took and how many of its assertions passed.

Click a check-log row to open the run drawer. It carries the run facts, a Steps / Passed / Not run counter strip, the failing-step banner, and one card per step, each showing status, status code, response size, assertion tally and error text. A phase bar splits the step's milliseconds across DNS, Connect, TLS, Wait and Receive.

Phases that measured no time are left out, so a step on a reused connection often shows only Connect, Wait and Receive. On a redirected step the phases sum to less than the step total, because they describe the final hop while the total is wall clock.

The full history across every monitor is at Logs in the sidebar. View all logs in the footer of the Check log card pre-filters that page to this monitor. See Monitoring Logs.

The run drawer for a failed API check: per-run step counters, the step whose timeout stopped the chain, and one card per step with its HTTP code, assertion tally and Connect/Wait/Receive timing bar.

What a Failed Run Tells You

An incident names the failing step and what came back: Step 4 · POST /orders/{{order_id}}/notes — expected status 201, got 500. Uptimia redacts secret values before it stores the reason, so a credential never reaches an alert, an export or the log.

Error code What it means What to do
assertion_failed The step got a response, and an assertion disagreed with it Open the run drawer for the expected and received values
step_timeout No response inside the step's timeout Raise the step's Timeout, or investigate the endpoint
connection_failed The probe could not open a connection Check the host is reachable from the public internet
dns_failed The hostname did not resolve Check the record and its authoritative servers
ssl_failed The TLS handshake failed Check the certificate chain and the protocol versions offered
too_many_redirects More than 5 hops Fix the redirect loop, or turn Follow redirects off for that step
undefined_variable A {{placeholder}} had no value at run time An earlier extraction did not produce it, often an optional step that failed
extract_failed The step passed but a value could not be extracted Check the JSONPath, header name or pattern against the real response
blocked_url The target resolved to a private, reserved or loopback address Point the step at a publicly reachable host
body_truncated The response passed 1 MB and was cut before assertions ran; the step still passes Narrow the response, or assert on a smaller endpoint
run_budget_exceeded The chain passed 90 seconds Shorten the chain, or lower the per-step timeouts
probe_error The probe could not complete the request Re-run the builder test from another location, then contact support

When no probe can run the chain, Uptimia records nothing and opens no incident: the failure belongs to Uptimia's side. The check log shows a gap instead of a false alert.

Limits and Plan Availability

Check type Free Basic Professional Enterprise Trial
API monitors 1 1 10 100 50

Uptimia checks the pool when you create a monitor, and again whenever the plan changes. A downgrade deletes nothing. API monitors over the new limit are suspended, the oldest kept and the newest stopped. The plan-change screen names them and asks you to confirm first. A suspended monitor is not checked at all until you upgrade, and upgrading reactivates monitors oldest-first up to the new limit. Accounts on the older pricing era keep their higher API allowance. See Changing Your Plan.

Per-monitor caps are the same on every plan:

Cap Value
Steps per monitor 15
Headers per step 20
Assertions per step 15
Extractions per step 10
Monitor variables 30
Variable value length 4,096 characters
Builder test runs 10 per minute per account

Editing, Reusing and Deleting

Editing works the same as creating, with the type locked. Uptimia saves the monitor and all its steps together, so a save that fails leaves nothing half-changed.

To reuse a chain, open the actions menu on the monitor's detail page and choose Save as Template. See Monitor Templates. There is no copy or duplicate action, and API monitors are excluded from bulk creation.

Warning: deleting an API monitor removes its run history and its incidents, and cannot be undone.

Three surfaces do not carry API monitors yet. You cannot add one to a status page, scheduled reports leave them out, and they cannot be managed through the older /api/v1 version of the API. The REST API serves them under /api/v2/api-monitor. They do appear in maintenance windows, monitor groups, the account-wide log page and the audit log.

Related Articles

Was this article helpful?