{"openapi":"3.1.0","info":{"title":"Quindart public automation API","version":"2026-10-05","description":"Project inquiries and free indicative valuations. Hardware is coming soon. Email, inquiry and checkout actions require explicit user consent. Checkout creates a payment link; it does not authorize or perform a charge."},"servers":[{"url":"https://quindart.com"}],"paths":{"/api/valuations/estimate":{"post":{"summary":"Calculate a free indicative budget; no email is sent","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["industry","machines","sites","complexity","people","goal"],"properties":{"industry":{"type":"string","enum":["factory","mining","cnc"]},"machines":{"type":"integer","minimum":1,"maximum":100},"sites":{"type":"integer","minimum":1,"maximum":20},"complexity":{"type":"string","enum":["basic","connected","advanced"]},"people":{"type":"integer","minimum":1,"maximum":100},"goal":{"type":"string","minLength":20,"maxLength":2000},"locale":{"type":"string","enum":["en","zh"],"default":"en"}}}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Invalid input"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Required configuration unavailable"}}}},"/api/valuations":{"post":{"summary":"Save a valuation and send the requested email","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["industry","machines","sites","complexity","people","goal","name","email","company","consent","idempotencyKey"],"properties":{"industry":{"type":"string","enum":["factory","mining","cnc"]},"machines":{"type":"integer","minimum":1,"maximum":100},"sites":{"type":"integer","minimum":1,"maximum":20},"complexity":{"type":"string","enum":["basic","connected","advanced"]},"people":{"type":"integer","minimum":1,"maximum":100},"goal":{"type":"string","minLength":20,"maxLength":2000},"locale":{"type":"string","enum":["en","zh"],"default":"en"},"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email"},"company":{"type":"string","maxLength":200},"consent":{"type":"boolean","const":true},"idempotencyKey":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Invalid input"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Required configuration unavailable"}}}},"/api/valuations/checkout":{"post":{"summary":"Create an optional paid audit checkout after explicit user choice","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Invalid input"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Required configuration unavailable"}}}},"/api/project-inquiry":{"post":{"operationId":"sendProjectInquiry","summary":"Send a project inquiry with explicit permission","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["email","summary","service"],"properties":{"email":{"type":"string","format":"email"},"summary":{"type":"string","minLength":20,"maxLength":5000},"service":{"type":"string","minLength":2,"maxLength":120},"name":{"type":"string","maxLength":160},"company":{"type":"string","maxLength":200},"timing":{"type":"string","maxLength":240},"reference":{"type":"string","format":"uri","maxLength":1000},"externalReferrer":{"type":"string","maxLength":500},"landingPageUrl":{"type":"string","maxLength":500},"pageUrl":{"type":"string","maxLength":500}}}}}},"responses":{"202":{"description":"Inquiry delivered","content":{"application/json":{"schema":{"type":"object","required":["ok","requestId","delivered"],"properties":{"ok":{"type":"boolean","const":true},"requestId":{"type":"string","format":"uuid"},"delivered":{"type":"boolean","const":true}}}}}},"400":{"description":"Invalid inquiry"},"415":{"description":"Send form data"},"502":{"description":"Delivery failed"},"503":{"description":"Delivery unavailable"}}}}}}