{
  "openapi": "3.1.0",
  "info": {
    "title": "blossomator business information and Revenue Diagnostic",
    "version": "1.1.0",
    "description": "Public, read-only business information and diagnostic assessment. No enquiry submission and no answer persistence."
  },
  "servers": [
    {
      "url": "https://www.blossomator.com"
    }
  ],
  "paths": {
    "/business.json": {
      "get": {
        "operationId": "getBusinessInformation",
        "summary": "Retrieve blossomator services and the Commercial AI Opportunity & Design Sprint scope and deliverables",
        "responses": {
          "200": {
            "description": "Business catalogue",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "name",
                    "services",
                    "starting_engagements",
                    "contact"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "starting_engagements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "id",
                          "name",
                          "description",
                          "outputs",
                          "scope",
                          "url",
                          "contact_url"
                        ],
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "audience": {
                            "type": "string"
                          },
                          "outputs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "scope": {
                            "type": "string"
                          },
                          "implementation": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "contact_url": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "contact": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/diagnostic/model": {
      "get": {
        "operationId": "getRevenueDiagnosticModel",
        "summary": "Retrieve seven questions, answer options and four starting offers",
        "responses": {
          "200": {
            "description": "Diagnostic model"
          }
        }
      }
    },
    "/api/diagnostic/evaluate": {
      "get": {
        "operationId": "evaluateRevenueDiagnostic",
        "summary": "Evaluate only the answers explicitly supplied by the visitor",
        "parameters": [
          {
            "in": "query",
            "name": "answers",
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "minItems": 7,
                  "maxItems": 7,
                  "items": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "enum": [
                      0,
                      1,
                      2,
                      3,
                      null
                    ]
                  }
                },
                "example": [
                  0,
                  0,
                  3,
                  0,
                  0,
                  0,
                  0
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Suggested starting offer, evidence gaps, uncertainty flags and brief. No enquiry submitted."
          },
          "400": {
            "description": "Invalid or incomplete answers"
          },
          "405": {
            "description": "Only GET is allowed"
          }
        }
      }
    }
  }
}
