← Back to all Flat Fee outputs

Read-only local campaign artifact

flat-fee-quote-api.openapi.json

direct-local-ops-wave-2/flat-fee-quote-api.openapi.json

{
  "openapi": "3.0.3",
  "info": {
    "title": "Flat Fee House Cleaners Sarasota Quote API Candidate",
    "version": "0.1.0",
    "description": "A source-bound implementation candidate only. It is not a deployed API."
  },
  "paths": {
    "/v1/services": {
      "get": {
        "summary": "List currently advertised cleaning service labels",
        "responses": {
          "200": {
            "description": "Service labels",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ServiceList" }
              }
            }
          }
        }
      }
    },
    "/v1/quote-requests": {
      "post": {
        "summary": "Submit a quote-request lead",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/QuoteRequestInput" }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Quote request accepted",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteRequestAccepted" }
              }
            }
          },
          "422": { "description": "Validation error" },
          "429": { "description": "Rate limit exceeded" }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Service": {
        "type": "string",
        "enum": [
          "Residential Cleaning",
          "Commercial Cleaning",
          "Airbnb Cleaning",
          "Deep Cleaning",
          "Window Cleaning",
          "Pressure Washing",
          "Emergency Cleaning",
          "Green Cleaning",
          "Move In/Out Cleaning",
          "Office Cleaning",
          "Medical Facility Cleaning"
        ]
      },
      "ServiceList": {
        "type": "object",
        "required": ["data"],
        "properties": {
          "data": { "type": "array", "items": { "$ref": "#/components/schemas/Service" } }
        }
      },
      "QuoteRequestInput": {
        "type": "object",
        "additionalProperties": false,
        "required": ["service", "name", "phone"],
        "properties": {
          "service": { "$ref": "#/components/schemas/Service" },
          "name": { "type": "string", "minLength": 1, "maxLength": 100 },
          "phone": { "type": "string", "minLength": 7, "maxLength": 30 },
          "email": { "type": "string", "format": "email" },
          "details": { "type": "string", "maxLength": 2000 }
        }
      },
      "QuoteRequestAccepted": {
        "type": "object",
        "required": ["data"],
        "properties": {
          "data": {
            "type": "object",
            "required": ["id", "status"],
            "properties": {
              "id": { "type": "string" },
              "status": { "type": "string", "enum": ["received"] }
            }
          }
        }
      }
    }
  }
}