API Origin Health Report - is this API alive, and paid? avatar

API Origin Health Report - is this API alive, and paid?

Pricing

Pay per event

Go to Apify Store
API Origin Health Report - is this API alive, and paid?

API Origin Health Report - is this API alive, and paid?

Bulk due-diligence on API origins. One row per URL: a liveness verdict from a closed set (LIVE, PAUSED, GATED, CHALLENGED, DEGRADED, DEAD, UNKNOWN), a confidence, coded reasons, the origin reached after redirects, the RFC 9309 robots disposition, any payment rail on the wire, catalogue surfaces.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stephen Psaradellis

Stephen Psaradellis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

API Origin Health Report

Is this API alive, and does it actually take money? Give it a list of API origins. Get back one row each: a verdict, the evidence behind it, and the sources that evidence came from.

Built for the moment before you commit: you are choosing between four vendors, inheriting a service catalogue nobody has audited, or checking whether the 200 integrations in your .env are all still there.

What one row tells you

fieldwhat it is
verdictLIVE, PAUSED, GATED, CHALLENGED, DEGRADED, DEAD or UNKNOWN. A closed set — never a score out of 100
confidencehow much of the evidence the verdict rests on
reasonscoded reasons, each naming the source that produced it
origin_measuredthe scheme and host actually reached, after redirects — often not the one you submitted
final_urlwhere the primary GET ended up
http_statusthe status of that GET
robotsallowed, disallowed or unknown, matched under RFC 9309
paymentany payment rail the origin advertises on the wire (a 402 with an accepts array, an x402 well-known), or null
surfacesfive catalogue paths — /openapi.json, /api/v1/services, /api/v1/discover, /discover, /.well-known/x402 — each with its status and counts of JSON rows, priced rows and payee-naming rows
warrantywhat the row does and does not claim

The two modes

Full report — robots, the primary GET, up to 3 of the health sidecars a service may publish (/health, /healthz, /api/health, /api/v1/health, /status, /.well-known/health) and the 5 catalogue surfaces. About 10 requests per origin. Use it on a shortlist.

Liveness only — robots and the primary GET. About 2 requests. Use it to sweep a long list and then re-run the interesting rows as full reports.

What it will not do

  • It will not invent uptime. One read at one moment is one read at one moment. There is no rolling availability figure here, because we did not measure one.
  • It will not give advice or a grade. Verdicts and counts, with sources. What that means for your vendor choice is yours.
  • It will not ignore robots.txt. With Respect robots.txt on (the default), a URL the origin disallows for this user agent is reported as skipped, no request is made to it, and you are not charged for it. The match is RFC 9309, so * and $ mean what the publisher meant by them — not the startswith comparison the Python standard library still does, which silently passes exactly the paths a site wrote down to forbid.
  • It will not pad a partial answer. An unreadable robots.txt is unknown, never allowed. An origin the input cap stranded is reported as stranded, not guessed.

Pricing

eventpricewhen
origin-report$0.50one origin measured in full
origin-liveness$0.01one origin measured in liveness mode

You are not charged for a URL skipped by robots.txt, a URL stranded beyond maxOrigins, an entry that is not a parseable URL, or a duplicate. And an origin that does not resolve is billed at the liveness price, not the report price — the report's other nine requests never happened, so you do not pay for them.

No start fee. Starting the Actor with no input at all measures nothing and costs nothing.

Input

{
"origins": ["https://api.github.com", "httpbin.org", "https://api.stripe.com"],
"mode": "report",
"respectRobots": true,
"maxOrigins": 100,
"concurrency": 8
}

maxOrigins is capped at 5000, which is also the largest a single run can bill: 5000 × $0.50 = $2500.

Where this comes from

This Actor is not a re-implementation of something. It runs liveness.py, the instrument behind a working paid API that has been serving this exact report — the same verdict set, the same reason codes, the same catalogue sweep — on its own metered route. That file is vendored here byte for byte and pinned to its source by a test, so the two cannot drift.

The reason it is on Apify Store is plainer than it sounds: the API sold this report to software agents, and software agents did not buy it — over 3,600 price quotes and one sale. So the same measurement is offered to the people who were going to have to make the vendor decision anyway.

Independent of any venue, and stated up front: this is a measurement instrument, not a monitoring product. If you need alerting, a status page or an SLA, buy one of those. If you need to know what 500 API origins are actually doing right now, with the evidence attached, this is that.