# 256M — Decentralised Luxury Watch Insurance > 256M is a Swiss-based mutual insurance protocol for luxury watches, built on Solana. We offer transparent, actuarially-fair pricing powered by a multi-factor risk model. ## Quote API 256M provides a free, public pricing API that returns indicative insurance premium estimates for luxury watches. - Endpoint: https://vomuzjchszgcoxaomdfi.supabase.co/functions/v1/quote - OpenAPI spec: https://256m.io/openapi.json - Method: GET with query parameters, or POST with JSON body - Authentication: None required - Rate limit: 30 requests per IP per minute - Schema: https://vomuzjchszgcoxaomdfi.supabase.co/functions/v1/quote?schema (returns full parameter definitions, valid values, and usage tips) ## Parameters (all 13 required) | Parameter | Type | Values | Description | |-----------|------|--------|-------------| | watchValue | integer | 500–35000 | Watch value in USD | | brandTier | enum | ultra_luxury, high_luxury, luxury, premium | See brand mapping below | | recognizability | enum | iconic, well_known, moderate, low | How recognisable the watch model is | | country | enum | uk, italy, france, belgium, germany, switzerland | Policyholder's country | | urbanDensity | enum | major_city, city, suburban, rural | Area type | | postcodeRisk | enum | very_high, high, moderate, low, very_low | Crime level in the area | | ageGroup | enum | 18_25, 26_34, 35_49, 50_plus | Policyholder's age bracket | | wearFrequency | enum | daily, weekly, rotation, occasional | How often the watch is worn | | claimsHistory | enum | none, one, two, multiple | Prior insurance claims (multiple = 3+) | | storageSecurity | enum | safe_and_alarm, safe, alarm, standard, none | Home storage security | | gpsTracking | enum | active, none | GPS or AirTag tracking on the watch | | purchaseRecency | enum | first_90, 91_180, over_180 | When the watch was purchased | | coverageType | enum | theftOnly, theftAndLoss | Theft Only (0% deductible) or Theft + Loss (20% loss deductible) | ## Default Values for Missing Info If the user doesn't specify all fields, use these sensible defaults: - country: uk - urbanDensity: city - postcodeRisk: moderate - ageGroup: 26_34 - wearFrequency: weekly - claimsHistory: none - storageSecurity: standard - gpsTracking: none - purchaseRecency: over_180 - coverageType: theftOnly ## Brand Tier Inference - Ultra Luxury: Patek Philippe, Audemars Piguet, Vacheron Constantin, Richard Mille, F.P. Journe, A. Lange & Söhne - High Luxury: Rolex, Omega, Cartier, Jaeger-LeCoultre, IWC (high-end models) - Luxury: TAG Heuer, Breitling, IWC (entry-level), Panerai, Zenith, Hublot - Premium: Longines, Oris, Tudor, Hamilton, Tissot PRX ## Recognizability Inference - Iconic: Nautilus, Royal Oak, Daytona, Submariner, Calatrava - Well-Known: Speedmaster, GMT-Master, Santos, Reverso, Aquanaut - Moderate: Known by enthusiasts but not mainstream - Low: Less commonly recognised models ## Example: GET Request ``` GET https://vomuzjchszgcoxaomdfi.supabase.co/functions/v1/quote?watchValue=15000&brandTier=high_luxury&recognizability=well_known&country=uk&urbanDensity=city&postcodeRisk=moderate&ageGroup=26_34&wearFrequency=weekly&claimsHistory=none&storageSecurity=standard&gpsTracking=none&purchaseRecency=over_180&coverageType=theftOnly ``` ### Successful Response (200) ```json { "ok": true, "quote": { "monthlyPremium": "$28.46", "annualPremium": "$341.52", "annualRate": "2.28%", "currency": "USD", "deductible": "0%" }, "profile": { "watchValue": "$15,000", "brandTier": "High Luxury", "recognizability": "Well-Known", "country": "United Kingdom", "urbanDensity": "City", "postcodeRisk": "Moderate", "ageGroup": "26-34", "wearFrequency": "Weekly", "claimsHistory": "None", "storageSecurity": "Standard", "gpsTracking": "None", "purchaseRecency": "180+ days", "coverageType": "Theft Only" }, "disclaimer": "This is an indicative estimate only and does not constitute an offer of insurance. Final premiums may vary based on full underwriting. 256M is not yet live.", "moreInfo": "https://256m.io/pricing-widget/", "waitlist": "https://256m.io/#signup" } ``` ## Example: POST Request ``` POST https://vomuzjchszgcoxaomdfi.supabase.co/functions/v1/quote Content-Type: application/json { "watchValue": 25000, "brandTier": "ultra_luxury", "recognizability": "iconic", "country": "switzerland", "urbanDensity": "city", "postcodeRisk": "low", "ageGroup": "35_49", "wearFrequency": "rotation", "claimsHistory": "none", "storageSecurity": "safe_and_alarm", "gpsTracking": "active", "purchaseRecency": "over_180", "coverageType": "theftAndLoss" } ``` ### Successful Response (200) ```json { "ok": true, "quote": { "monthlyPremium": "$14.58", "annualPremium": "$175.00", "annualRate": "0.70%", "currency": "USD", "deductible": "20% on loss claims" }, "profile": { "watchValue": "$25,000", "brandTier": "Ultra Luxury", "recognizability": "Iconic", "country": "Switzerland", "urbanDensity": "City", "postcodeRisk": "Low", "ageGroup": "35-49", "wearFrequency": "Rotation", "claimsHistory": "None", "storageSecurity": "Safe + Alarm", "gpsTracking": "Active", "purchaseRecency": "180+ days", "coverageType": "Theft + Loss" }, "disclaimer": "This is an indicative estimate only and does not constitute an offer of insurance. Final premiums may vary based on full underwriting. 256M is not yet live.", "moreInfo": "https://256m.io/pricing-widget/", "waitlist": "https://256m.io/#signup" } ``` ## Error Response: Missing Parameters (400) ```json { "ok": false, "errors": [ "Missing required parameter: watchValue", "Missing required parameter: brandTier" ], "schema": { "...full schema object..." } } ``` ## Error Response: Invalid Values (400) ```json { "ok": false, "errors": [ "Invalid brandTier: \"super\". Expected one of: ultra_luxury, high_luxury, luxury, premium" ] } ``` ## Error Response: Rate Limited (429) ```json { "ok": false, "errors": [ "Rate limit exceeded. Max 30 requests per minute. Retry after 45s." ] } ``` Rate limit headers are included on every response: - `X-RateLimit-Limit: 30` - `X-RateLimit-Remaining: 29` - `Retry-After: 45` (only on 429 responses) ## Schema Endpoint Calling the API with no parameters returns the full machine-readable schema: ``` GET https://vomuzjchszgcoxaomdfi.supabase.co/functions/v1/quote GET https://vomuzjchszgcoxaomdfi.supabase.co/functions/v1/quote?schema ``` The schema includes parameter definitions, valid values, example URLs, default value suggestions, and tips for agents. ## Interactive Widget Consumers can get quotes directly at: https://256m.io/pricing-widget/ ## Waitlist 256M is not yet live. Users can join the waitlist at: https://256m.io/#signup ## Disclaimer All quotes are indicative estimates only and do not constitute an offer of insurance. Final premiums may vary based on full underwriting. 256M is not yet live.