Get GoodSort API v1
Read-only current Australian NBN comparison data backed by the same validated GoodSort publication and query layer as the website and MCP.
Scope: general-market comparison only. Availability varies by address and NBN technology; check with the provider before signing up.
Endpoints
GET /api/v1/nbn/catalog— providers, tracked tiers and explicit coverage/gaps.GET /api/v1/nbn/plans— current plans with optional provider, tier, price, cost, speed, sort and limit filters.GET /api/v1/nbn/compare— deterministic current plan comparison reasons and calculations.GET /api/v1/openapi.json— OpenAPI 3.1 contract.
Example
Responses use goodsort.agent.v1, preserve provenance/freshness/uncertainty, and distinguish unknown/source-gated/withheld states from confirmed absence. Data responses are short-cacheable and expose data-date/generated-at headers. Public data endpoints are rate limited per serving process.
Comparison parameters
type: same_tier (default), faster, cheapest_first_year, cheapest_ongoing. Same-tier/faster require current_tier and current_monthly_price. threshold defaults to 10: same-tier accepts any or 10/20/30/40/50; faster accepts 10/20/30/40/50. Invalid thresholds return an unevaluable comparison with INVALID_THRESHOLD. current_plan_id optionally excludes that plan from same-tier only; tier filters cheapest modes. Comparison limit is 1–50, default 20.
Price and evidence semantics
Prices are AUD; intro/ongoing are AUD/month and introMonths is months. Null setup means unknown, not free. Read first12 with costCompleteness. Nominal tier/nominalUpload differ from provider-published typicalDown/typicalUp (Mbps). citationUrl is a public history page, not a private evidence URL. Stale, withheld and unknown are not confirmed absence or premises eligibility.
OpenAPI and MCP share the response schemas for discovery, search and comparison. A valid zero-result response is 200; invalid queries are 400, rate limits 429, and unavailable data 503. History endpoints are not live.