API Origin Health Report - is this API alive, and paid?
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
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
| field | what it is |
|---|---|
verdict | LIVE, PAUSED, GATED, CHALLENGED, DEGRADED, DEAD or UNKNOWN. A closed set — never a score out of 100 |
confidence | how much of the evidence the verdict rests on |
reasons | coded reasons, each naming the source that produced it |
origin_measured | the scheme and host actually reached, after redirects — often not the one you submitted |
final_url | where the primary GET ended up |
http_status | the status of that GET |
robots | allowed, disallowed or unknown, matched under RFC 9309 |
payment | any payment rail the origin advertises on the wire (a 402 with an accepts array, an x402 well-known), or null |
surfaces | five 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 |
warranty | what 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 thestartswithcomparison 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.txtisunknown, neverallowed. An origin the input cap stranded is reported as stranded, not guessed.
Pricing
| event | price | when |
|---|---|---|
origin-report | $0.50 | one origin measured in full |
origin-liveness | $0.01 | one 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.