{"openapi":"3.1.0","info":{"title":"Langer Krell Marine Electronics public API","version":"1.0.0","summary":"Read prices, shops, and services; request a service call or a quote on a customer's behalf.","description":"Langer Krell sells, installs, and services marine electronics from Palm Beach to Key West, Florida, with shops in Miami, Palm Beach, and Key Largo. A service call request is not a confirmed appointment: We call to confirm the same business day. Requests sent after 5 PM get a call the next business morning. No payment is taken through this API.","contact":{"name":"Langer Krell Marine Electronics","email":"info@langerkrell.com","url":"https://www.langerkrell.com"}},"servers":[{"url":"https://www.langerkrell.com"}],"paths":{"/api/service-call":{"get":{"summary":"Describe the service call request","responses":{"200":{"description":"Endpoint description and request schema"}}},"post":{"summary":"Request a $145 dockside service call","operationId":"requestServiceCall","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["name","phone","docked_at","problem"],"properties":{"name":{"type":"string","maxLength":120,"description":"Customer's name"},"phone":{"type":"string","maxLength":40,"description":"Callback number. Required for service calls."},"email":{"type":"string","format":"email","description":"Optional. Required for quotes only if phone is missing."},"boat":{"type":"object","properties":{"make":{"type":"string","description":"Make and model, e.g. Viking 58 Convertible"},"length_ft":{"type":"number","description":"Length overall in feet"}}},"docked_at":{"type":"string","description":"Marina, yard, or city where the boat is. Required for service calls."},"problem":{"type":"string","maxLength":2000,"description":"What is wrong, or what the customer wants done"},"windows":{"type":"array","maxItems":3,"items":{"type":"string"},"description":"Preferred visit windows in plain words, e.g. 'Fri Oct 24 morning'. The shop confirms by phone."},"preferred_shop":{"type":"string","enum":["miami","palm-beach","key-largo"],"description":"Nearest shop. Omit to let the shop choose."},"found_us":{"type":"string","description":"How the customer found Langer Krell, e.g. 'ChatGPT', 'Google'"},"written_by":{"type":"string","maxLength":60,"description":"Optional. Name of the Langer Krell staff member or agent entering the lead on the customer's behalf, so the office knows who follows up."}},"additionalProperties":true}}}},"responses":{"201":{"description":"Request received","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"reference":{"type":"string","example":"LK-20261021-7K3M"},"nextStep":{"type":"string","example":"We call to confirm the same business day. Requests sent after 5 PM get a call the next business morning."}}}}}},"400":{"description":"Missing or invalid fields","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"message":{"type":"string"},"errors":{"type":"object"}}}}}},"429":{"description":"Too many requests from this client"},"503":{"description":"Mail delivery offline; call the shop"}}}},"/api/quote":{"get":{"summary":"Describe the quote request","responses":{"200":{"description":"Endpoint description and request schema"}}},"post":{"summary":"Request a quote for new electronics, installation, or a refit","operationId":"requestQuote","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["name","problem"],"properties":{"name":{"type":"string","maxLength":120,"description":"Customer's name"},"phone":{"type":"string","maxLength":40,"description":"Callback number. Required for service calls."},"email":{"type":"string","format":"email","description":"Optional. Required for quotes only if phone is missing."},"boat":{"type":"object","properties":{"make":{"type":"string","description":"Make and model, e.g. Viking 58 Convertible"},"length_ft":{"type":"number","description":"Length overall in feet"}}},"docked_at":{"type":"string","description":"Marina, yard, or city where the boat is. Required for service calls."},"problem":{"type":"string","maxLength":2000,"description":"What is wrong, or what the customer wants done"},"windows":{"type":"array","maxItems":3,"items":{"type":"string"},"description":"Preferred visit windows in plain words, e.g. 'Fri Oct 24 morning'. The shop confirms by phone."},"preferred_shop":{"type":"string","enum":["miami","palm-beach","key-largo"],"description":"Nearest shop. Omit to let the shop choose."},"found_us":{"type":"string","description":"How the customer found Langer Krell, e.g. 'ChatGPT', 'Google'"},"written_by":{"type":"string","maxLength":60,"description":"Optional. Name of the Langer Krell staff member or agent entering the lead on the customer's behalf, so the office knows who follows up."}},"additionalProperties":true,"description":"Provide phone or email."}}}},"responses":{"201":{"description":"Request received","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"reference":{"type":"string","example":"LK-20261021-7K3M"},"nextStep":{"type":"string","example":"We call to confirm the same business day. Requests sent after 5 PM get a call the next business morning."}}}}}},"400":{"description":"Missing or invalid fields","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"message":{"type":"string"},"errors":{"type":"object"}}}}}}}}},"/api/pricing":{"get":{"summary":"Published prices","operationId":"getPricing","responses":{"200":{"description":"Service call, bench checkout, and maintenance program prices in USD"}}}},"/api/locations":{"get":{"summary":"Shops and service areas","operationId":"getLocations","responses":{"200":{"description":"Three shops with address, phone, coordinates, and the areas each serves"}}}},"/api/services":{"get":{"summary":"Services, systems, and brands","operationId":"getServices","responses":{"200":{"description":"What Langer Krell sells, installs, and services"}}}}}}