API

Static, read-only JSON. No key. CC BY 4.0, please link back. Full spec: openapi.json.

EndpointReturns
/api/vendors.jsonAll vendors
/api/vendors/{id}.jsonOne vendor, e.g. api/vendors/sentry.json
/api/changes.jsonChange log
/api/categories.jsonCategories, best free pick, vendor ids
/feed.jsonJSON Feed of changes
/rss.xmlRSS of changes

Vendor schema

FieldType
idstring
namestring
categoryapm | logs | errors | uptime | incident | llm | product
typestring
free_tieryes | no | unknown
free_planstring | null
free_tier_limitsstring | null
paid_fromstring
pricing_modelstring
card_requiredstring
oss_self_hoststring
gotchasarray
confidenceverified | uncertain
source_urlstring
checkedstring | null
pagestring
apistring
changesarray

"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": []
}