Authentication

Header X-API-Token on every pricing endpoint. /api/catalog needs no key.

GET/api/price-eval
car-info *Free text, Arabic or English.
curl -H 'X-API-Token: cp_live_…' \
  'https://pricing.syarahservices.com/api/price-eval?car-info=2021%20Toyota%20Camry%20GLE%2085000%20km'
GET/api/price-eval/by-modelno parse call
make *English name from /api/catalog. 422 if not in the catalog.
model *English name from /api/catalog?make=…
extensionTrim, e.g. GLE. 618 of 2049 models have any.
year *Four digits, within the supported range.
mileageKilometres. Omitted → age-expected mileage, no adjustment.
curl -H 'X-API-Token: cp_live_…' \
  'https://pricing.syarahservices.com/api/price-eval/by-model?make=Toyota&model=Camry&extension=GLE&year=2021&mileage=85000'
GET/api/catalog
/api/catalog{ makes: [{ value, label }] }
?make=Toyota{ models: [...] }
?make=Toyota&model=Camry{ extensions: [...] }

Response

{
  "status": "ok",
  "fair_market_value_sar": 79400,
  "price_range_sar": { "low": 75400, "high": 83400 },
  "confidence": "Medium",
  "market_verified": true,
  "vehicle": { "make": "Toyota", "model": "Camry", "extension": "GLE", "year": 2021, "mileage_km": 85000 },
  "assumptions": { "mileage_assumed": false },
  "breakdown": {
    "original_ksa_msrp_sar": 115000, "applied_retention": 0.69, "retention_clamped": false,
    "mileage_class": "Normal", "mileage_ratio": 0.85,
    "market_median_sar": 78500, "market_p25": 76000, "market_p75": 81000, "market_weight": 0.41,
    "comparable_count": 2, "comparable_tier": 2,
    "comparable_source_counts": { "haraj_local": 0, "opensooq": 2 }
  }
}

comparable_source_counts is the raw per-source yield — a dead scraper reads 0 rather than disappearing.

Status codes

HTTPstatus
200ok
400MISSING_INPUT · UNPARSEABLE_INPUT · INVALID_YEAR · INVALID_MILEAGE
401unauthorized
422UNKNOWN_VEHICLE · YEAR_REQUIRED · YEAR_OUT_OF_RANGE · INSUFFICIENT_DATA
429rate_limited — per-key cap or the global spend cap
502GEMINI_CALL_FAILED
503PROVIDER_UNCONFIGURED