Skip to content
Oh Dear

When 200 hides a failure

API monitoring.

A client integration can return 200 with the wrong answer. Your agency needs to know before the client. Oh Dear calls each endpoint, every minute by default, and tests the status, body, headers and timing. A second location verifies a problem before anyone is alerted.

10-day free trial · No credit card required · Every feature included

Every minute by default Second-location verification
  • Bitmovin
  • HBO Nordic
  • Obsidian
  • Laravel
  • Fathom Analytics
  • PHP 8
  • Stanford University
  • Takeaway.com
  • IGN
  • VRT NWS
  • spatie

Beyond the status code

A 200 can still be the wrong answer.

An agency can see a green endpoint while a client's integration receives the wrong data. Define the response that counts as healthy, and the check fails when the reply is different.

Same response, different verdict Illustrative response

Status-only check

HTTP status
200 OK
JSON body
{"status":"degraded"}
Verdict
Passed

Configured Oh Dear check

HTTP status
200 OK
Body assertion
status equals "ok"
Verdict
Failed: status is "degraded"

For JSON replies, assert on a field by path and condition. You can also require or exclude a string in the body and verify response headers. See response assertions in the docs.

Match the real request

Check the call your client depends on.

A health check means little if it sends a different request from the integration. Set the method, credentials and payload first. Then decide which reply should pass.

Send the request

Method Use GET, POST, PATCH or PUT.
Credentials Add up to five custom request headers, including an API key or an Authorization header.
Payload Send form parameters or a raw JSON body on a non-GET request.

Judge the reply

Status Define the accepted HTTP status codes, including an intentional 401.
Content Check body strings, assert on JSON fields by path, and verify response headers.
Timing Set a request timeout, and a separate performance alert for slow responses.

Investigate a failure

Verification When the primary location detects a problem, a second location checks it.
Run details See the requested URL, the status and headers that came back, and a ready-to-run curl command.
Fresh values Use a timestamp or UUID when a repeated request would hit a cache or a duplicate guard.

Fresh request values

Don't mistake a cached reply for a working API.

Some endpoints cache repeated requests or reject a reused idempotency key. Oh Dear can put a new timestamp, UUID or random string into each check.

Illustrative request

URL https://api.example/v1/availability?check=$OH_DEAR_UUID
Header X-Request-ID: $OH_DEAR_UUID
Result The URL and header get the same fresh UUID in one request.

A fresh request does not prove that a downstream webhook or business transaction completed.

One variable, one value per check.

Put a magic variable in the URL, a custom header or the POST payload. Oh Dear fills it in just before the request and shows the expanded URL in the check report. Use the same UUID in a header to find that request in the client's logs.

A timestamp can get past a cached response. A UUID keeps a test request distinct when a receiver rejects repeats. The check still judges only the response to that request.

See the available variables.

Before a timeout

Slow and down are different signals.

The endpoint may still answer while a client integration waits too long. Set a performance limit for that, and a request timeout for the endpoint that stops answering.

Performance alert

It answers, but too slowly.

Set a response-time threshold in milliseconds. Oh Dear alerts when the monitor stays slower than that value. It can also flag a sudden change by comparing the last 15 minutes with the rest of the past two hours.

Failed HTTP check

It never answers in time.

Set the request timeout on the monitor. If the endpoint does not respond within it, the check fails. A second location verifies the problem before a downtime notification goes out.

An independent signal

Give the on-call person the failed request, not a red dot.

Oh Dear makes the configured call from outside the client's stack. The check report records the URL it requested, the status and headers that came back, and a ready-to-run curl command. That gives your team a place to start when an assertion fails.

A failed check is verified from a second location. Notification timing is configurable, so the first failed run does not have to send an alert.

Lukas Kahwe Smith
It covers everything from websites to APIs, from SSL certificates to response times.

Lukas Kahwe Smith, CTO at Witty Works

Your API checks run in the same account as your website checks, and alert through the same channels.

Operational ownership

Know what failed before the client asks.

An agency with many client integrations needs an alert that names the endpoint and leads to the failed run.

Send each notification to the team responsible for that client's integration, on the channels that team already uses.

Slack
Email
Webhook
Explore notifications and routing

The scope of one check

Know what the API response can prove.

API monitoring sends one configured HTTP request and checks its response. Use a separate check for jobs and application state that a single reply cannot show.

What it checks

  • A wrong HTTP status code.
  • An unexpected string in the body, or a missing one.
  • A failed JSON field assertion.
  • A missing or incorrect response header.
  • A timeout, or a response that stays too slow.

What it does not

No feature tiers

Every check.
Every plan.

API monitoring is on every plan. You pay for the number of sites you monitor, not for which checks you need.

Start with everything on.

Try API monitoring alongside uptime, DNS and the rest of Oh Dear's website checks.


  • API monitoring on every plan
  • Every monitoring feature included
  • Plans scale by monitored site count
  • No credit card required
Start a free trial

10-day free trial. No credit card.

Before the first check

Questions about API monitoring.

What an HTTP check can see, when it alerts, and where its scope ends.

What does API monitoring check?

Oh Dear sends a configured HTTP request to an endpoint from a primary location, every minute by default. It checks the response status, body content, headers and timing against your settings. A 200 response can still fail when its contents do not match.

Can it check a specific value in a JSON response?

Yes. Configure a body assertion with a JSON path such as status, a condition such as equals, and an expected value such as ok. Oh Dear fails the check when the assertion is not met. You can also require or exclude a string in the body.

Can it monitor an endpoint that needs a token?

Yes. Add up to five custom request headers, such as an API key or an Authorization header. For a non-GET request, choose POST, PATCH or PUT and send form parameters or a raw JSON body.

Can I check an endpoint that rejects repeated requests?

Yes. Put a magic variable such as $OH_DEAR_UUID in the URL, a custom header or the POST payload. Oh Dear substitutes a fresh value for each request, and uses the same value everywhere that variable appears within that request.

Does one failed run alert my team?

Not necessarily. A detected problem is verified from a second location, and the monitor's notification settings control when an alert is sent.

Can it alert on a slow API before it times out?

Yes. A hard performance threshold alerts when the endpoint stays slower than the limit you choose. That is separate from the request timeout, which fails the HTTP check when the endpoint does not respond in time.

How do I see what failed?

The check report shows the requested URL, the status and response headers that came back, and which assertion failed, with a ready-to-run curl command to reproduce the request. If you use magic variables, the expanded URL appears in the report.

Does this test a multi-step checkout or confirm a job's result?

No. An API check sends one configured request and validates that response. Scheduled task monitoring detects a missing or late heartbeat, not a correct business result.

Is API monitoring included on every plan?

Yes. Every plan has the same features. You pay for the number of sites you monitor, not for unlocking API checks.

See all other FAQ items

Get started

Start monitoring the APIs your clients depend on.

Set the request and the response you expect. Every feature on. No credit card.