Developer API

Wrenchli Assessment API

Add AI-powered vehicle assessment to any application. Get instant problem identification, urgency ratings, cost estimates, and repair recommendations.

REST API
API Key Auth
JSON Response

Assessment API (api-assess)

The symptom assessment endpoint is documented as a machine-readable OpenAPI 3 document at wrenchli.net/openapi.json. Send a vehicle and the symptoms its owner describes; you get back a preliminary symptom assessment — probable issue, urgency, an estimated cost range, and recommended next steps. It is an assessment, not a professional inspection or a repair quote. Requests are authenticated with an x-api-key header and rate limited per key.

curl -X POST "https://aunrktvltmyrxtdygykt.supabase.co/functions/v1/api-assess" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "vehicle": { "year": 2019, "make": "Honda", "model": "Civic", "mileage": 67200 },
    "symptoms": ["Grinding noise when braking"]
  }'

# 200 response (abridged — the full object also mirrors this under "assessment"
# and adds "recommendations" and "wrenchli_services" links):
{
  "diagnosis": {
    "probable_issue": "Brake System Issue",
    "description": "Grinding noises typically indicate worn brake pads that need replacement. This can damage rotors if not addressed promptly.",
    "urgency": "high",
    "cost_estimate": { "min": 155, "max": 325 },
    "rate_source": "wrenchli_editorial_rate_table_v1"
  },
  "assessment_title": "Brake System Issue"
}

The legacy name POST /api-diagnose serves the identical contract. Error responses use a single { "error": "..." } shape: 400 for a missing symptom list or vehicle fields, 401 when the key header is absent, 403 for an unknown or deactivated key, 405 for non-POST calls, and 429 when the key's per-minute limit is reached.

API Pricing

Choose the plan that fits your integration needs. All plans include access to all 5 endpoints.

Sign in to manage your API subscription and billing.

Free

$0

50 / month API calls

  • 50 API calls/month
  • All 5 endpoints
  • Community support
Most Popular

Pro

$49/mo

500 / month API calls

  • 500 API calls/month
  • All 5 endpoints
  • Priority support
  • Usage analytics

Enterprise

$199/mo

5,000 / month API calls

  • 5,000 API calls/month
  • All 5 endpoints
  • Dedicated support
  • Custom rate limits
  • SLA guarantee

Authentication

All requests require an API key passed via the x-api-key header. Log in with an admin account to generate keys, or contact us.

Log in to manage API Keys

Endpoint

POST/api-diagnose

Assessment-named alias: POST /api-assess — identical request and response contract. /api-diagnose remains supported; new integrations should prefer /api-assess. Responses include assessment_title as the assessment-named alias of the issue title.

Request Body

FieldTypeRequiredDescription
symptomsstring[]
Required
List of symptoms (e.g. "grinding noise")
vehicle.yearnumber
Required
Model year
vehicle.makestring
Required
Manufacturer (e.g. Toyota)
vehicle.modelstring
Required
Model name (e.g. Camry)
vehicle.mileagenumberOptionalCurrent odometer reading
locationstringOptionalZIP code for local recommendations

Code Examples

bash
curl -X POST "https://aunrktvltmyrxtdygykt.supabase.co/functions/v1/api-diagnose" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "symptoms": ["grinding noise when braking", "vibration in steering wheel"],
    "vehicle": {
      "year": 2019,
      "make": "Toyota",
      "model": "Camry",
      "mileage": 45000
    },
    "location": "90210"
  }'

Sample Response

json
{
  "diagnosis": {
    "probable_issue": "Brake System Issue",
    "description": "Grinding noises typically indicate worn brake pads...",
    "urgency": "high",
    "cost_estimate": { "min": 200, "max": 600 }
  },
  "recommendations": {
    "immediate_action": "Schedule brake inspection within 48 hours",
    "safety_advice": "Avoid heavy braking and increase following distance",
    "diy_feasible": false
  },
  "wrenchli_services": {
    "get_quotes_url": "https://wrenchli.net/vehicle-insights?...",
    "find_shops_url": "https://wrenchli.net/for-shops"
  }
}
Endpoint #2

Repair Cost Estimate

POST/api-estimate-repair

Get an AI-powered, ZIP-code-localized repair cost estimate with parts/labor breakdown. Uses the same API key authentication.

Request Body

FieldTypeRequiredDescription
assessment_titlestring
Required
The identified issue (e.g. "Worn Brake Pads")
diagnosis_titlestring
Required
Legacy name for assessment_title (same value)
zip_codestring
Required
5-digit US ZIP code for localized pricing
diagnosis_codestringOptionalDTC code if applicable (e.g. P0420)
vehicle_yearstringOptionalVehicle model year
vehicle_makestringOptionalVehicle manufacturer
vehicle_modelstringOptionalVehicle model
vehicle_trimstringOptionalVehicle trim level
diy_feasibilitystringOptionalDIY difficulty (easy, moderate, advanced)
urgencystringOptionalUrgency level (low, medium, high)

Example Request

bash
curl -X POST "https://aunrktvltmyrxtdygykt.supabase.co/functions/v1/api-estimate-repair" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "diagnosis_title": "Worn Brake Pads",
    "diagnosis_code": "",
    "vehicle_year": "2019",
    "vehicle_make": "Toyota",
    "vehicle_model": "Camry",
    "zip_code": "48201",
    "urgency": "high"
  }'

Sample Response

json
{
  "metro_area": "Metro Area",
  "cost_low": 200,
  "cost_high": 450,
  "parts_estimate": "$80–$150",
  "labor_estimate": "$120–$300",
  "labor_hours": "1.5–2.5 hours",
  "regional_notes": "Regional labor rates average $95–$130/hr",
  "what_to_expect": "Technician will replace worn brake pads and inspect rotors for damage.",
  "warranty_note": "Most shops offer 12-month/12,000-mile warranty on brake work"
}
Endpoint #3

Vehicle Value & Repair-vs-Replace

POST/api-vehicle-value

Get an instant vehicle market valuation with depreciation breakdown, market trend analysis, and an optional repair-vs-replace recommendation when a repair cost is provided. Uses the same API key authentication.

Request Body

FieldTypeRequiredDescription
vehicle.yearnumber
Required
Model year (1990–current+1)
vehicle.makestring
Required
Manufacturer (e.g. Toyota)
vehicle.modelstring
Required
Model name (e.g. Camry)
vehicle.mileagenumber
Required
Current odometer reading (0–500,000)
vehicle.zipCodestringOptional5-digit ZIP code for regional context
repair_costnumberOptionalRepair cost to trigger repair-vs-replace analysis

Code Examples

bash
curl -X POST "https://aunrktvltmyrxtdygykt.supabase.co/functions/v1/api-vehicle-value" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "vehicle": {
      "year": 2020,
      "make": "Toyota",
      "model": "Camry",
      "mileage": 45000,
      "zipCode": "90210"
    },
    "repair_cost": 1500
  }'

Sample Response

json
{
  "current_value": 9592,
  "confidence": 85,
  "value_breakdown": {
    "base_msrp": 24095,
    "age_depreciation": 18071,
    "mileage_adjustment": -4050,
    "regional_adjustment": 482
  },
  "market_analysis": {
    "trend": "stable",
    "optimal_sell_window": true,
    "trade_vs_repair": {
      "repair_percentage": 16,
      "recommendation": "repair_recommended",
      "reasoning": "At 16% of vehicle value, repair is still the better financial choice..."
    }
  },
  "wrenchli_services": {
    "detailed_analysis_url": "https://wrenchli.net/garage",
    "get_quotes_url": "https://wrenchli.net/vehicle-insights?year=2020&make=Toyota&model=Camry",
    "garage_management_url": "https://wrenchli.net/garage"
  }
}
💡 Tip: Omit repair_cost to get a pure valuation without the repair-vs-replace analysis. The trade_vs_repair field will be absent from the response.
Endpoint #4

Maintenance Schedule Lookup

POST/api-maintenance-schedule

Get a full maintenance schedule with brand-specific adjustments (e.g. BMW extended oil intervals, Tesla EV exclusions), upcoming service items sorted by urgency, and cost estimates. Provide optional last-service records for accurate due-date calculation.

Request Body

FieldTypeRequiredDescription
vehicle.makestring
Required
Manufacturer (e.g. Toyota, BMW, Tesla)
vehicle.mileagenumber
Required
Current odometer reading (0–500,000)
vehicle.modelstringOptionalModel name (e.g. Camry)
vehicle.yearnumberOptionalModel year
last_servicesarrayOptionalArray of {type, mileage} for last service records

Code Examples

bash
curl -X POST "https://aunrktvltmyrxtdygykt.supabase.co/functions/v1/api-maintenance-schedule" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "vehicle": {
      "make": "Toyota",
      "model": "Camry",
      "year": 2019,
      "mileage": 47000
    },
    "last_services": [
      { "type": "oil_change", "mileage": 45000 },
      { "type": "tire_rotation", "mileage": 42000 }
    ]
  }'

Sample Response

json
{
  "vehicle_summary": {
    "make": "Toyota",
    "model": "Camry",
    "year": 2019,
    "mileage": 47000
  },
  "full_schedule": [
    {
      "type": "oil_change",
      "label": "Oil Change",
      "interval_miles": 5000,
      "interval_months": 6,
      "estimated_cost_low": 30,
      "estimated_cost_high": 75,
      "priority": "essential",
      "description": "Replace engine oil and filter..."
    }
  ],
  "upcoming_services": [
    {
      "type": "tire_rotation",
      "label": "Tire Rotation",
      "due_mileage": 49500,
      "miles_until_due": 2500,
      "priority": "soon",
      "estimated_cost_low": 25,
      "estimated_cost_high": 50,
      "description": "Even out tire wear..."
    },
    {
      "type": "oil_change",
      "label": "Oil Change",
      "due_mileage": 50000,
      "miles_until_due": 3000,
      "priority": "upcoming",
      "estimated_cost_low": 30,
      "estimated_cost_high": 75,
      "description": "Replace engine oil and filter..."
    }
  ],
  "summary": {
    "total_items": 10,
    "overdue_count": 0,
    "urgent_count": 0,
    "estimated_total_cost_low": 535,
    "estimated_total_cost_high": 1375
  },
  "wrenchli_services": {
    "garage_url": "https://wrenchli.net/garage",
    "vehicle_insights_url": "https://wrenchli.net/vehicle-insights"
  }
}
💡 Tip: Omit last_services to get the full schedule with all items calculated from 0 miles. The priority field uses: overdue, urgent (≤1,000 mi), soon (≤3,000 mi), upcoming.
Endpoint #5

Service Provider Search

GET/api-providers?location=48009

Find nearby auto repair shops with smart matching. Luxury brands (BMW, Mercedes, Audi, Lexus) are automatically matched with European/luxury specialists. Filter by price tier, service type, and search radius.

Query Parameters

ParamTypeRequiredDescription
locationstring
Required
ZIP code or city name (e.g. "48009", "Birmingham")
service_typestringOptionalService needed (e.g. brakes, engine, general)
radius_milesnumberOptionalSearch radius in miles (default: 25)
price_rangestringOptionalFilter: budget, mid, or premium
vehicle_makestringOptionalVehicle make for specialist matching (e.g. BMW)

Code Examples

bash
curl "https://aunrktvltmyrxtdygykt.supabase.co/functions/v1/api-providers?location=48009&vehicle_make=BMW&service_type=brakes" \
  -H "x-api-key: YOUR_API_KEY"

Sample Response

json
{
  "providers": [
    {
      "id": "birmingham_auto_europe",
      "name": "Auto Europe",
      "rating": 4.9,
      "review_count": 156,
      "address": "677 S Eton St, Birmingham, MI 48009",
      "phone": "(248) 645-6300",
      "distance_miles": 0,
      "specialties": ["european", "luxury", "bmw", "mercedes", "audi"],
      "price_tier": "premium",
      "response_time": "1 hour",
      "availability": "next_day",
      "wrenchli_verified": true,
      "quote_url": "https://wrenchli.net/vehicle-insights?shop=birmingham_auto_europe"
    }
  ],
  "search_params": {
    "location": "48009",
    "service_type": "brakes",
    "radius_miles": 25,
    "vehicle_make": "BMW",
    "results_count": 2
  },
  "wrenchli_services": {
    "compare_quotes_url": "https://wrenchli.net/vehicle-insights?location=48009&service=brakes",
    "book_service_url": "https://wrenchli.net/for-shops",
    "get_more_options_url": "https://wrenchli.net/vehicle-insights?location=48009"
  }
}
💡 Tip: Pass vehicle_make=BMW to automatically prioritize European/luxury specialists. Use price_range=budget to find the most affordable options.

Error Codes

StatusDescription
400Invalid request — missing symptoms or vehicle info
401Missing API key
403Invalid or deactivated API key
429Rate limit exceeded — retry after 60 seconds
500Internal server error

Rate Limits

Each API key has a configurable rate limit (default: 30 requests/minute). If exceeded, the API returns 429 with a Retry-After: 60 header.

AI Platform Integration

Wrenchli supports the ChatGPT plugin standard. AI platforms can auto-discover the API via: