{
  "openapi": "3.1.0",
  "info": {
    "title": "Synaptic OT website API",
    "version": "1.0.0",
    "description": "Submit a contact or evaluation-licence request on behalf of a real person who has agreed to be contacted. Limited to 5 requests per hour per network. Do not send IP addresses, credentials or sensitive plant details.",
    "contact": {
      "email": "hello@synapticot.com"
    }
  },
  "servers": [
    {
      "url": "https://synapticot.com"
    }
  ],
  "paths": {
    "/api/feedback": {
      "post": {
        "operationId": "submitFeedback",
        "summary": "Submit a professional's feedback on the product and website",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "company",
                  "job_title",
                  "role_group",
                  "rating",
                  "why",
                  "consent"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 160
                  },
                  "job_title": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "role_group": {
                    "type": "string",
                    "enum": [
                      "CISO / Head of security",
                      "CIO / CTO / IT leadership",
                      "OT / plant manager",
                      "OT / control engineer",
                      "SOC analyst / incident responder",
                      "IT security engineer",
                      "Compliance / risk / audit",
                      "MSSP / consultant / integrator",
                      "Investor / advisor",
                      "Other"
                    ]
                  },
                  "industry": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "org_size": {
                    "type": "string",
                    "enum": [
                      "1 site",
                      "2–5 sites",
                      "6–20 sites",
                      "More than 20 sites",
                      "Not an operator"
                    ]
                  },
                  "how_seen": {
                    "type": "string"
                  },
                  "interests": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "ot-network-monitoring",
                        "asset-intelligence",
                        "project-file-intelligence",
                        "virtual-soc",
                        "wire-dvr",
                        "threat-hunting",
                        "response",
                        "segmentation",
                        "compliance-audit",
                        "air-gap-deployment",
                        "mssp"
                      ]
                    }
                  },
                  "rating": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5
                  },
                  "recommend": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10
                  },
                  "interest_level": {
                    "type": "string",
                    "enum": [
                      "Ready to evaluate now",
                      "Interested in the next 6 months",
                      "Interested, but later",
                      "Just exploring",
                      "Not a fit for us"
                    ]
                  },
                  "why": {
                    "type": "string",
                    "maxLength": 3000
                  },
                  "challenge": {
                    "type": "string",
                    "maxLength": 3000
                  },
                  "missing": {
                    "type": "string",
                    "maxLength": 3000
                  },
                  "website_rating": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5
                  },
                  "website_comment": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "follow_up": {
                    "type": "boolean"
                  },
                  "consent": {
                    "type": "boolean",
                    "const": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Feedback stored"
          },
          "422": {
            "description": "Validation failed"
          },
          "429": {
            "description": "Rate limit reached"
          }
        }
      }
    },
    "/api/lead": {
      "post": {
        "operationId": "submitLead",
        "summary": "Request an evaluation licence or contact sales",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "kind",
                  "name",
                  "email",
                  "company",
                  "consent"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "evaluation",
                      "contact"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 200,
                    "description": "Work email of the person making the request"
                  },
                  "company": {
                    "type": "string",
                    "maxLength": 160
                  },
                  "role": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "country": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "topic": {
                    "type": "string",
                    "enum": [
                      "Product walkthrough",
                      "Quote",
                      "Partnership or MSSP",
                      "Press",
                      "Something else"
                    ],
                    "description": "contact only"
                  },
                  "industry": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "deployment": {
                    "type": "string",
                    "enum": [
                      "Tier 1 · full air gap",
                      "Tier 2 · semi air gap",
                      "Tier 3 · hybrid multi-site",
                      "Tier 4 · MSSP",
                      "Not sure yet"
                    ]
                  },
                  "sites": {
                    "type": "string",
                    "maxLength": 20
                  },
                  "assets": {
                    "type": "string",
                    "enum": [
                      "Under 250",
                      "250–1,000",
                      "1,000–5,000",
                      "5,000–20,000",
                      "More than 20,000",
                      "Not sure"
                    ]
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 4000,
                    "description": "Required when kind is contact"
                  },
                  "consent": {
                    "type": "boolean",
                    "const": true,
                    "description": "The person agrees to be contacted about this request under https://synapticot.com/privacy"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Request stored",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation failed"
          },
          "429": {
            "description": "Rate limit reached"
          }
        }
      }
    }
  }
}