Bonus / Full explorer composition

Mufflermen API explorer

The full developer surface — catalogue + detail + try-it + response + samples + history wired together. Demonstrates that all 14 primitives compose without ambient styling overrides.

Production answer

Mufflermen API explorer is a reusable Oak Flats Muffler Men UI primitive with documented states, accessibility expectations, theme behavior, and implementation evidence.

Primary CTAReview Mufflermen API explorer states
Generative search brief

Mufflermen API explorer: The full developer surface — catalogue + detail + try-it + response + samples + history wired together. Demonstrates that all 14 primitives compose without ambient styling overrides.

Quotes

Create quote

POST/v1/quotes

Creates a draft quote attached to a vehicle registration and service code. Will inherit the current pricing schedule unless overridden in the body.

Version
v1 stable
Auth
Bearer

Path parameters

  • Idempotency-KeyOptional header — replays of the same key return the original quote.
POST /v1/quotes
BASHexample.bash
curl -X POST \  "https://api.muffler.men/v1/quotes" \  -H "Authorization: Bearer mfm_live_sk_…7af2" \  -H "Accept: application/json" \  -H "Content-Type: application/json" \  -d '{ "registration": "OAK-194", "service": "muffler_swap" }'
HeaderValue
Response
200OK184ms1.8 kB
JSONresponse.json
{  "data": [    {      "sku": "MFM-OE-7821",      "title": "OE-spec rear muffler — Falcon XR6",      "stock_on_hand": 12,      "price_aud": 318.5,      "fitment": {        "make": "Falcon",        "model": "XR6",        "year_range": "2002-2008"      }    },    {      "sku": "MFM-PERF-9120",      "title": "Performance cat-back kit — VE Commodore",      "stock_on_hand": 4,      "price_aud": 1240,      "fitment": {        "make": "Commodore",        "model": "VE",        "year_range": "2006-2013"      }    }  ],  "meta": {    "cursor_next": "MFM-OE-7820",    "count": 2  }}
Schemaobject
QuoteobjectrequiredA workshop quote created against a vehicle registration.
idstringuuidrequiredServer-assigned identifier.qte_2026_0512
registrationstringrequiredAustralian vehicle registration plate.OAK-194
servicestringrequiredService code being quoted.
  • muffler_swap
  • exhaust_inspection
  • cat_replacement
  • tune_diagnostic
total_audnumberdecimalrequiredTotal quote amount in Australian dollars.642.00
vehicleobjectrequiredVehicle the quote is attached to.
line_itemsarrayoptionalItemised parts and labour.
created_atstringdate-timerequiredQuote creation timestamp.2026-05-28T08:41:08Z
Rate limit

Plus tier

Resets 08:43 AEST
2,240/6,000req/min
37% used37%
Remaining3,760
Recent Plus tier usage trendTrend over 10 samples ranging from 1800.0 to 2660.0.
Rate limit

Free tier

Resets 08:43 AEST
412/600req/min
69% used69%
Remaining188
Recent Free tier usage trendTrend over 10 samples ranging from 240.0 to 502.0.
Install

@mufflermen/parts

Typed client for the parts catalogue API.

npm install @mufflermen/parts
Webhook receiver

Inbound endpoint

URL
https://workshop.muffler.men/hooks/v1/inbox
Signing secret
whsec_••••••••••••7af2
Events
Last delivery
2026-05-28 08:41:09 — 200 OK in 218ms
422validation_failedRequest body failed validationDo not retry

One or more fields in the request body failed schema validation.

GuidanceInspect the error.field hint and re-submit with corrected values.

429rate_limitedRate limit exceededRetryable

Your workshop exceeded the per-minute request budget for this endpoint.

GuidanceBack off for the period in the Retry-After header — SDK retries handle this automatically.

401invalid_tokenBearer token rejectedDo not retry

The Authorization header is missing, malformed, or refers to a revoked token.

GuidanceRotate the workshop API key in the console and update your environment.

08:41:09GET/v1/parts?limit=25200184ms
08:42:12POST/v1/quotes201218ms
08:43:55PATCH/v1/bookings/bkg_2026_0489/status200144ms
08:44:01POST/v0/quote42296ms
08:44:30GET/v1/suburbs30422ms
v1.42026-05-22

Bookings state machine adds ready_for_pickup transition.

  • PATCH /v1/bookings/{id}/status now accepts 'ready_for_pickup'.
  • Webhook booking.confirmed now includes pickup window estimate.
  • Plus-tier rate limit raised from 5,000 to 6,000 req/min.
v1.32026-04-15Breaking

Payment intents now require workshop_id at the top level.

  • POST /v1/payments — workshop_id moved from metadata to the root.
  • Stripe-bridge payloads renamed `amount` → `amount_aud`.
  • Deprecated POST /v0/quote — sunset 2026-12-31.
v1.22026-03-04

Parts supersession metadata + per-suburb stock filtering.

  • GET /v1/parts/{sku} returns supersession SKUs.
  • Suburb header `X-Mufflermen-Suburb` honoured on /v1/parts.