Public API
Read-only JSON endpoints.
Every page on TierGauge is also available as JSON. Schema-pinned (every endpoint validated on every build), CORS-open, cached for 10 minutes, and CC BY 4.0 licensed with attribution.
- Endpoints
- 7
- Per-tool feeds
- 37
- Per-category feeds
- 21
- Cache window
- 10 min
Endpoints
Every endpoint returns JSON with `Content-Type: application/json; charset=utf-8` and the `Cache-Control: public, max-age=600, must-revalidate` header. Each response embeds its own `$schema` URL.
Full feed: every tool we track, with editorial fields, plans, prices, limits, included and missing features, source URLs and capture timestamps. Index-style.
- Top-level keys
- feed_version, generated_at, tools[], per_tool_endpoints[]
- Shape
-
{ feed_version, generated_at, count, tools: Tool[], per_tool_endpoints: string[] }
Per-tool feed: a single Tool with the full editorial + plan payload. One endpoint per slug; the index feed lists them all in `per_tool_endpoints`.
- Top-level keys
- feed_version, generated_at, tool
- Shape
-
{ feed_version, generated_at, tool: Tool }
Per-category feed: all tools whose primary or secondary category matches the slug, ranked the same way as `/best/<category>`. One endpoint per category.
- Top-level keys
- feed_version, generated_at, category, tools[]
- Shape
-
{ feed_version, generated_at, category, tools: Tool[] }
Pricing-change events: each entry is a captured anchor-price change from the weekly scrape. Empty until the cron has run with real changes; the URL is stable so consumers can subscribe-by-polling.
- Top-level keys
- feed_version, generated_at, count, events[]
- Shape
-
{ feed_version, generated_at, count, events: PriceChange[] }
Coverage gaps: tools referenced by something we DO track (via `alternatives`) but not yet seeded into the spine. Mirrors the data on /coverage. Sorted by reference count, descending.
- Top-level keys
- feed_version, generated_at, tools_tracked, gap_count, total_references, gaps[]
- Shape
-
{ tools_tracked, gap_count, total_references, gaps: { slug, reference_count, referenced_by[] }[] }
Per-tool freshness: when each tool was last verified, bucketed into fresh / due / stale tiers aligned with the weekly scrape cadence. Mirrors /freshness. Sorted stalest-first.
- Top-level keys
- feed_version, generated_at, thresholds, buckets, tools[]
- Shape
-
{ thresholds: { fresh_days, stale_days }, buckets: { fresh, due, stale }, tools: { slug, name, last_verified, age_days, staleness }[] }
Per-tool most-recent scrape attempt: outcome, plans found, warnings, error message on failure, plus cumulative attempt count. Pairs with /api/freshness.json (verified-data staleness) and /api/coverage.json (missing alternatives) so external monitors get three independent signals on data health.
- Top-level keys
- feed_version, generated_at, tools_with_runs, total_warnings_last_run, last_run_outcome_counts, runs[]
- Shape
-
{ tools_with_runs, total_warnings_last_run, last_run_outcome_counts: { ok?, stale-preserved?, ... }, runs: { slug, name, attempts, latest: null | { run_at, outcome, plans_found?, warnings?, error? } }[] }
Per-tool and per-category catalog
We currently track 37 tools and 21 categories. Each has its own dedicated endpoint:
Per-tool (37)
- /api/tools/beehiiv.json
- /api/tools/buffer.json
- /api/tools/buttondown.json
- /api/tools/cal.json
- /api/tools/calendly.json
- /api/tools/close.json
- /api/tools/convert.json
- /api/tools/crisp.json
- /api/tools/customer-io.json
- /api/tools/demio.json
- /api/tools/drip.json
- /api/tools/flodesk.json
- /api/tools/ghost.json
- /api/tools/help-scout.json
- /api/tools/hightouch.json
- /api/tools/hunter.json
- /api/tools/intercom.json
- /api/tools/kit.json
- /api/tools/leadpages.json
- /api/tools/lemlist.json
- /api/tools/mailchimp.json
- /api/tools/mailerlite.json
- /api/tools/mailgun.json
- /api/tools/mailtrap.json
- /api/tools/mixpanel.json
- /api/tools/omnisend.json
- /api/tools/posthog.json
- /api/tools/postmark.json
- /api/tools/postscript.json
- /api/tools/resend.json
- /api/tools/substack.json
- /api/tools/surfer-seo.json
- /api/tools/tally.json
- /api/tools/triple-whale.json
- /api/tools/typeform.json
- /api/tools/unbounce.json
- /api/tools/webflow.json
Per-category (21)
- /api/categories/ab-testing.json (A/B testing)
- /api/categories/analytics.json (Analytics)
- /api/categories/calendar-scheduling.json (Scheduling)
- /api/categories/content-marketing.json (Content marketing)
- /api/categories/crm.json (CRM)
- /api/categories/customer-data-platform.json (Customer data platform)
- /api/categories/deliverability.json (Deliverability)
- /api/categories/email-marketing.json (Email marketing)
- /api/categories/form-builder.json (Form builders)
- /api/categories/help-desk.json (Help desk)
- /api/categories/landing-pages.json (Landing pages)
- /api/categories/lead-generation.json (Lead generation)
- /api/categories/live-chat.json (Live chat)
- /api/categories/marketing-attribution.json (Marketing attribution)
- /api/categories/marketing-automation.json (Marketing automation)
- /api/categories/sales-engagement.json (Sales engagement)
- /api/categories/seo.json (SEO)
- /api/categories/sms-marketing.json (SMS marketing)
- /api/categories/social-media-management.json (Social media management)
- /api/categories/transactional-email.json (Transactional email)
- /api/categories/webinar.json (Webinar)
RSS
Pricing changes are also published as a standard RSS 2.0 feed at /changes.xml . Subscribe in any reader for push-style updates instead of polling the JSON endpoint.
License and attribution
All endpoints are CC BY 4.0 with attribution to TierGauge. Linkbacks
to https://tiergauge.com in
derivative works are appreciated.
Pricing data is scraped from official vendor pages and merged with editorial. We try to keep it accurate, but always confirm with the vendor before purchasing. See Methodology for full details.