# Canonical URL patterns

Last updated: 2026-03-31

Minimal set of **public** URLs that are useful for AI discovery. For full product behavior, use `/llm/*.md` and `/llm-info`. Not exhaustive.

## AI / machine-readable

- `/llms.txt`: plain-text index (points to markdown below)
- `/llm/overview.md`, `/llm/dispatch-policy.md`, `/llm/verification-standards.md`, `/llm/homeowner-faq.md`, `/llm/contractor-faq.md`, `/llm/service-area.md`, `/llm/urls.md`: `text/markdown`
- `/llm-info`: human HTML summary; **do not duplicate long factual paragraphs here.** Prefer markdown above.

## Core marketing

- `/`: home
- `/about`, `/about/business-model`, `/contact`: company / canonical business-model explainer / contact
- `/privacy`, `/terms`: legal

## Homeowner intake and status

- `/get-help/hvac/estimate/scheduled`: example scheduled estimate entry
- `/get-help/hvac/estimate/emergency/no-heat`: example emergency estimate entry (emergency uses issue segment; not a single bare `/estimate/emergency` page)
- `/get-help/:service/status/:leadId`: primary status URL after intake and in outbound links (`?token=` when issued); nested `/tracking` where enabled
- `/account/status/:leadId`: same status UI when opened from the signed-in homeowner dashboard (optional `?token=`)
- `/homeowners`: homeowner marketing hub (subpages such as `/homeowners/emergency`, `/homeowners/faq`, etc.)
- `/homeowners/what-is-zwivio`: canonical homeowner explainer (dispatch vs leads, privacy, texts, quotes; aligns with `/about/business-model`)

## Contractors (marketing)

- `/contractors`: hub
- `/contractors/join`: application
- `/contractors/what-is-zwivio`: canonical contractor explainer (offers, assignment, charge timing vs pay-per-lead; aligns with `/about/business-model`)
- `/contractors/earnings`: pricing (detailed fees after contractor SMS verification)
- `/contractors/mission-control`: public marketing overview of the contractor portal (“Mission Control”) screenshots and positioning (not the authenticated `/pro` app)
- `/contractors/protection`, `/contractors/how-it-works`, `/contractors/why`: reference pages

## Contractor token links (do not guess tokens)

- `/offer/:offerId?token=...`
- `/job/:leadId?token=...`

## Contractor app (authenticated)

- `/pro/*`: contractor dashboard (login required)

## Locations (Wisconsin: open counties)

- `/locations/wi`: Wisconsin hub; counties shown match **live public coverage** (see `/llm/service-area.md`)
- `/locations/wi/:countySlug` and `/locations/wi/:countySlug/:citySlug`: county and city hubs for open counties
- `/services/emergency-hvac`: emergency HVAC service hub; county navigation follows the same public coverage as `/locations/wi` (see `/llm/service-area.md`)

## Live availability (read-only roster / ETA bands)

- `/availability`: index (currently HVAC-focused)
- `/availability/:serviceSlug/:requestSlug/...`: regional pages (discover patterns from `/availability` and `/availability/sitemap.xml`)
- `/availability/sitemap.xml`
- `GET /api/public/availability/v1/dispatch-slots`: cached public JSON for read-only ETA/roster context. **Not** live routing control.
- OpenAPI: `/api/public/availability/v1/openapi.json`

## Pricing API (important)

- `/api/public/pricing/v1/openapi.json`: **OpenAPI document** (still published) describing shapes for pricing-related flows.
- `GET /api/public/pricing/v1/platform-fees`: returns **410 Gone**; **anonymous machine-readable fee JSON is not published.** Verified contractors use `/contractors/earnings` after SMS verification.

## Estimate redirect helper

- `/estimate?serviceType=...&requestType=...`: redirects into the `/get-help/...` intake paths
