{
  "openapi": "3.1.0",
  "info": {
    "title": "Magnuson Insurance quote request intake",
    "version": "2026.1-c6749726ef26",
    "description": "Send a Florida insurance quote request to Magnuson Insurance, an independent agency in Lakeland, Florida, on a customer's behalf. The request lands in the agency's inbox like one sent from its website: a licensed agent reviews it, compares insurance companies and emails the quotes. Nothing is bound by a request. Send one only with the customer's knowledge and their own email address. No texting consent is recorded and no marketing email follows. Field names for `answers` come from GET https://www.magnusonins.com/quote/api/intake (the schema) or https://www.magnusonins.com/quote/what-we-ask (the readable list).",
    "contact": {
      "name": "Magnuson Insurance",
      "url": "https://www.magnusonins.com/contact",
      "email": "info@magnusonins.com"
    },
    "termsOfService": "https://www.magnusonins.com/quote/privacy"
  },
  "servers": [
    {
      "url": "https://www.magnusonins.com"
    }
  ],
  "paths": {
    "/quote/api/intake": {
      "get": {
        "operationId": "getIntakeSchema",
        "summary": "Every line's fields: type, options, required, repeats",
        "responses": {
          "200": {
            "description": "The schema",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "sendQuoteRequest",
        "summary": "Send a quote request",
        "description": "A JSON body of at most 64 KB. Answers that don't fit a question come back as rejected and aren't stored; the request is still saved. Rate limited: 20 an hour per visitor, 300 in all.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "lines",
                  "contact"
                ],
                "properties": {
                  "lines": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 10,
                    "description": "Line codes, personal or business, never both in one request.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "home",
                        "condo",
                        "renters",
                        "landlord",
                        "mobile_home",
                        "flood",
                        "auto",
                        "motorcycle_rv",
                        "boat",
                        "life",
                        "dental_vision",
                        "umbrella",
                        "valuables",
                        "pet",
                        "bop",
                        "general_liability",
                        "professional",
                        "cyber",
                        "commercial_umbrella",
                        "commercial_property",
                        "commercial_flood",
                        "builders_risk",
                        "hoa",
                        "commercial_auto",
                        "trucking",
                        "workers_comp",
                        "crime",
                        "bonds",
                        "license_bond"
                      ]
                    },
                    "x-names": {
                      "home": "Homeowners",
                      "condo": "Condo",
                      "renters": "Renters",
                      "landlord": "Landlord or Rental Home",
                      "mobile_home": "Mobile or Manufactured Home",
                      "flood": "Flood",
                      "auto": "Auto",
                      "motorcycle_rv": "Motorcycle, RV or ATV",
                      "boat": "Boat",
                      "life": "Life",
                      "dental_vision": "Dental or Vision",
                      "umbrella": "Umbrella",
                      "valuables": "Jewelry and Collectibles",
                      "pet": "Pet",
                      "bop": "Business Owner's Policy (BOP)",
                      "general_liability": "General Liability",
                      "professional": "Professional Liability (E&O)",
                      "cyber": "Cyber",
                      "commercial_umbrella": "Commercial Umbrella",
                      "commercial_property": "Commercial Property",
                      "commercial_flood": "Flood",
                      "builders_risk": "Builder's Risk",
                      "hoa": "HOA or Condo Association",
                      "commercial_auto": "Commercial Auto",
                      "trucking": "Trucking",
                      "workers_comp": "Workers' Compensation",
                      "crime": "Crime and Employee Dishonesty",
                      "bonds": "Surety or Fidelity Bond",
                      "license_bond": "License Bond"
                    }
                  },
                  "contact": {
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "type": "string",
                        "format": "email",
                        "description": "The customer's own email address: the confirmation and the quotes go there."
                      },
                      "phone": {
                        "type": "string",
                        "description": "Optional, any US format."
                      },
                      "firstName": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "lastName": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "businessName": {
                        "type": "string",
                        "maxLength": 140,
                        "description": "Business requests."
                      }
                    }
                  },
                  "answers": {
                    "type": "object",
                    "description": "Field names to values, from the line's fields in the GET schema: strings, numbers, booleans, or a list of option values for a multi-choice question. Repeated fields replace N with a number (drivers.2.firstName); driver 1 is applicant.firstName, applicant.lastName and applicant.dateOfBirth.",
                    "additionalProperties": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      ]
                    }
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 5000,
                    "description": "Anything else the customer wants the agent to know."
                  },
                  "sender": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "maxLength": 80,
                        "description": "Who is sending, e.g. the assistant's name."
                      },
                      "url": {
                        "type": "string",
                        "format": "uri"
                      }
                    }
                  },
                  "referral": {
                    "type": "object",
                    "required": [
                      "name"
                    ],
                    "description": "A referral partner sending a client's request: the partner gets a receipt with the reference number, and a closing date opens a task in the agency's queue due a week before it.",
                    "properties": {
                      "name": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "company": {
                        "type": "string",
                        "maxLength": 120
                      },
                      "email": {
                        "type": "string",
                        "format": "email"
                      },
                      "phone": {
                        "type": "string"
                      },
                      "role": {
                        "type": "string",
                        "enum": [
                          "realtor",
                          "mortgage",
                          "property_manager",
                          "title",
                          "builder",
                          "other"
                        ]
                      },
                      "closingDate": {
                        "type": "string",
                        "format": "date",
                        "description": "YYYY-MM-DD"
                      }
                    }
                  }
                }
              },
              "example": {
                "lines": [
                  "home"
                ],
                "contact": {
                  "email": "robin@example.com",
                  "phone": "(863) 555-0100",
                  "firstName": "Robin",
                  "lastName": "Diaz"
                },
                "answers": {
                  "location.street": "123 Lake Morton Dr",
                  "location.city": "Lakeland",
                  "location.state": "FL",
                  "location.zip": "33801",
                  "home.dwelling.yearBuilt": 1998,
                  "home.dwelling.use": "primary",
                  "home.dwelling.roofYear": 2021
                },
                "notes": "Shopping before the June renewal. Prefers email.",
                "sender": {
                  "name": "An AI assistant, on Robin's behalf"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Saved and sent to the agency's inbox",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": true
                    },
                    "reference": {
                      "type": "string",
                      "description": "The request's reference number, for the customer and the agency."
                    },
                    "status": {
                      "type": "string",
                      "const": "received"
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "personal",
                        "commercial"
                      ]
                    },
                    "lines": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "contact": {
                      "type": "object",
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "phone": {
                          "type": "string"
                        }
                      }
                    },
                    "accepted": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Fields saved."
                    },
                    "rejected": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      },
                      "description": "Fields that failed the question's check, not saved."
                    },
                    "ignored": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Fields no question on this request takes."
                    },
                    "missing": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "page": {
                            "type": "string"
                          }
                        }
                      },
                      "description": "Required questions still unanswered; the agent asks for them."
                    },
                    "next": {
                      "type": "string",
                      "description": "What happens next, in plain words, to show the customer."
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Not JSON",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": false
                    },
                    "error": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "ok",
                    "error"
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Body too large",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": false
                    },
                    "error": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "ok",
                    "error"
                  ]
                }
              }
            }
          },
          "415": {
            "description": "Not application/json",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": false
                    },
                    "error": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "ok",
                    "error"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "The body can't be used (unknown lines, no email, a bad value)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": false
                    },
                    "error": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "ok",
                    "error"
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too many requests from one place in the last hour",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": false
                    },
                    "error": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "ok",
                    "error"
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}