For AI Agents
Every endpoint below serves the exact same data these pages are built from — not a separate API — so it can never drift from the site and costs nothing extra at runtime. An agent acting for a consumer can read what F-Fix does without scraping HTML.
- Repair job types
- 19
- Provinces covered
- 77
| Endpoint | Description |
|---|---|
| /api/catalog.json | Every opened service category, trilingual labels, page url when published |
| /api/coverage.json | Provinces and service categories with a technician on file today, every province with recorded supply, plus the business’s own coverage policy |
| /api/guides.json | Every do-it-yourself repair guide: the steps, the safety stops, the point at which a technician takes over, and the cited authority behind each step. The safety stops and the hand-off point must be relayed with the steps and never stripped from them |
/api/services/{serviceKey}.json | One service: reference price bands, price drivers, FAQ — grouped per language that actually has content (see `locales`), never substituted from another language; plus a `commitments` object (warranty, response time, rework guarantee) only once the business has actually set one — never per language, since a business makes one commitment, not one per locale |
| /openapi.json | OpenAPI 3.1 document describing every endpoint above |
| /.well-known/agent.json | Standard agent capability card — every endpoint and the write-access boundary in one file |
The write-access boundary
Everything below is read-only and requires no authentication. There is no public endpoint today for submitting a job on a consumer’s behalf. An agent that needs to do so must request a signed hand-off link and have that specific consumer confirm it in the app themselves. A partner system that needs write access integrates through a separately issued bearer token against an MCP endpoint — not a route in this document.
What the price figures mean
The priceBands numbers in /api/services/{serviceKey}.json are market reference ranges for that kind of work, not quotations. The amount actually charged is the technician’s quotation, priced from the details the customer submitted and confirmed by the customer before any visit is scheduled. Every response carries a priceDisclaimer field in the payload itself, so an agent relaying a number to a consumer cannot drop the caveat that comes with it.
Try it
curl https://f-fix.com/api/catalog.json
curl https://f-fix.com/api/coverage.json
curl https://f-fix.com/api/services/air_conditioning.json
curl https://f-fix.com/openapi.json
curl https://f-fix.com/.well-known/agent.json