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"] }
}
}
}
}
}
}
}