{"openapi":"3.1.0","info":{"title":"Webstume Contact API","version":"1.0.0","description":"Accepts a project brief from the public contact form on webstume.com. The security-check token (turnstileToken) is issued only to a person using the browser form. Unattended agents should email info@webstume.com instead of calling this endpoint.","contact":{"name":"Webstume","email":"info@webstume.com","url":"https://webstume.com/contact"}},"servers":[{"url":"https://webstume.com"}],"paths":{"/api/contact":{"post":{"summary":"Send a project brief","operationId":"sendContactBrief","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","phone","service","details","turnstileToken"],"properties":{"name":{"type":"string","description":"Full name"},"email":{"type":"string","format":"email","description":"Business email"},"phone":{"type":"string","description":"Phone number"},"company":{"type":"string","description":"Company name"},"website":{"type":"string","description":"Existing website or application URL"},"service":{"type":"string","description":"What the visitor needs"},"details":{"type":"string","minLength":20,"description":"Project brief in the visitor's own words"},"budget":{"type":"string","description":"Approximate budget range"},"timeline":{"type":"string","description":"Desired timeline"},"turnstileToken":{"type":"string","description":"Browser security-check token. Required. Not available to unattended agents."}}}}}},"responses":{"200":{"description":"Brief accepted","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"]}}}},"400":{"description":"Validation or security-check failure","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Could not send the message","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}}}}