Shiny Go Clean / API documentation
Shiny Go Clean Lead Intake API v1
This public endpoint accepts customer-authorized cleaning quote requests and contact messages for Shiny Go Clean in Madison, Wisconsin and nearby Dane County communities.
Endpoint
GET https://www.shinygoclean.com/api/v1 — safe API discovery and
status.
POST https://www.shinygoclean.com/api/v1/leads
Send JSON with Content-Type: application/json. The request body limit is 20,000
bytes.
No API key is required. Do not send an Authorization header.
Quote request
Required fields are name, phone, email,
bedrooms, bathrooms, service, notes, and
an explicitly true communicationsConsent value.
{
"name": "Customer name",
"phone": "10-digit U.S. phone number",
"email": "[email protected]",
"bedrooms": "3",
"bathrooms": "2",
"service": "Deep cleaning",
"notes": "Customer-provided details about the home",
"communicationsConsent": true,
"consentTimestamp": "2026-08-14T00:00:00Z",
"pageUrl": "https://www.shinygoclean.com/"
}
Contact message
Set formType to support. Required fields are name,
email, phone, helpWith, and message.
Responses
200: Request accepted.-
400: Invalid input, missing fields, invalid contact information, or missing consent. 413: Request body exceeds 20,000 bytes.502: The request could not be stored.503: Lead intake is temporarily unavailable.
Structured errors
Error responses use application/problem+json following RFC 9457. Each response
includes type, title, status, detail,
instance, a stable code, and a resolution hint. The
error field remains as a backward-compatible copy of detail for
existing Shiny Go Clean forms.
Rate limits
Submissions are limited to 10 requests per minute per client at the serving edge. Responses
include
RateLimit-Limit, RateLimit-Remaining,
RateLimit-Reset, and RateLimit-Policy. A 429 response
also includes Retry-After.
Versioning and deprecation
Breaking changes use a new major URL path such as /api/v2/leads. The
unversioned /api/leads path is a deprecated compatibility alias for existing
Shiny Go Clean website forms. It returns an RFC 9745 Deprecation header and links to the
successor version and policy.
Shiny Go Clean will provide at least 365 days of notice before removing a public version. When a
removal date is scheduled, responses will also include a Sunset header. No
sunset date is currently scheduled.
Product boundaries
There is no public sandbox, API-key program, official CLI, SDK, MCP server, webhook product, or access to customer, cleaner, schedule, payment, or Fieldd records.