API
Static, read-only JSON. No key. CC BY 4.0, please link back. Full spec: openapi.json.
| Endpoint | Returns |
|---|---|
/api/vendors.json | All vendors |
/api/vendors/{id}.json | One vendor, e.g. api/vendors/sentry.json |
/api/changes.json | Change log |
/api/categories.json | Categories, best free pick, vendor ids |
/feed.json | JSON Feed of changes |
/rss.xml | RSS of changes |
Vendor schema
| Field | Type |
|---|---|
id | string |
name | string |
category | apm | logs | errors | uptime | incident | llm | product |
type | string |
free_tier | yes | no | unknown |
free_plan | string | null |
free_tier_limits | string | null |
paid_from | string |
pricing_model | string |
card_required | string |
oss_self_host | string |
gotchas | array |
confidence | verified | uncertain |
source_url | string |
checked | string | null |
page | string |
api | string |
changes | array |
"not stated" = the vendor page does not state it. free_tier: unknown + confidence: uncertain = we could not confirm limits.
Example
{
"id": "sentry",
"name": "Sentry",
"category": "errors",
"type": "Error tracking / APM",
"free_tier": "yes",
"free_plan": "Free \"Developer\" plan",
"free_tier_limits": "1 user; 5k errors/mo; email alerts; 10 custom dashboards",
"paid_from": "$26/mo",
"pricing_model": "Tiered plans + pay-as-you-go overages (e.g. +$0.50/GB logs)",
"card_required": "not stated",
"oss_self_host": "not stated",
"gotchas": [
"Pay-as-you-go required for some add-ons",
"Single-user limit: you pay as soon as a second person needs access."
],
"confidence": "verified",
"source_url": "https://sentry.io/pricing/",
"checked": "2026-10-24",
"page": "https://o11y-watch.pages.dev/vendors/sentry.html",
"api": "https://o11y-watch.pages.dev/api/vendors/sentry.json",
"changes": []
}