{"openapi":"3.1.0","info":{"title":"Detailer Atlas agent API","version":"1.0.0","description":"The same three tools as the MCP server at https://detaileratlas.com/mcp. No authentication; rate-limited per IP. Detailer Atlas takes no bookings or payments: request_quote reaches only owner-verified businesses, otherwise it returns how_to_book.","contact":{"email":"hello@detaileratlas.com"}},"servers":[{"url":"https://detaileratlas.com"}],"paths":{"/api/agent/find_pros":{"get":{"operationId":"find_pros","summary":"Search Detailer Atlas's mobile and shop-based auto detailing businesses in Tampa Bay, Florida. Every fact comes from the business's own website, with source links and check dates. Results are not ratings. Each result has a stable id, its profile URL and how_to_book (the business's own booking page, website and phone, best first).","parameters":[{"name":"service","in":"query","required":false,"schema":{"type":"string","description":"Service wanted. One of: Mobile detailing; Full detail; Interior detailing; Exterior wash & wax; Ceramic coating; Paint correction; Paint protection film (PPF); Boat detailing; RV detailing; Maintenance washes; Fleet detailing. Plain words like \"ceramic coating\" are matched."}},{"name":"area","in":"query","required":false,"schema":{"type":"string","description":"Area in Tampa Bay, Florida. One of: Tampa; St. Petersburg; Clearwater; Brandon; Riverview; Wesley Chapel; Largo; Palm Harbor; Lutz; Land O' Lakes; Apollo Beach; Seminole; Dunedin; Valrico; Plant City; New Port Richey; Oldsmar; Temple Terrace; Pinellas Park; Tarpon Springs; Zephyrhills; Hudson; Spring Hill; Brooksville; Bradenton; Lakeland; Winter Haven."}},{"name":"zip","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{5}$","description":"5-digit ZIP code of the job. Ignored when area is given."}},{"name":"open_now","in":"query","required":false,"schema":{"type":"boolean","description":"Only businesses whose published office hours say they are open now (America/New_York)."}},{"name":"self_contained","in":"query","required":false,"schema":{"type":"boolean","description":"Only mobile businesses that say they bring their own water and power."}},{"name":"has_published_prices","in":"query","required":false,"schema":{"type":"boolean","description":"Only businesses that publish prices on their own site."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":25,"default":10}}],"responses":{"200":{"description":"Matching pros.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input, with a plain-language error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limited (per IP, per hour)."}}},"post":{"operationId":"find_pros_post","summary":"find_pros with a JSON body.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"service":{"type":"string","description":"Service wanted. One of: Mobile detailing; Full detail; Interior detailing; Exterior wash & wax; Ceramic coating; Paint correction; Paint protection film (PPF); Boat detailing; RV detailing; Maintenance washes; Fleet detailing. Plain words like \"ceramic coating\" are matched."},"area":{"type":"string","description":"Area in Tampa Bay, Florida. One of: Tampa; St. Petersburg; Clearwater; Brandon; Riverview; Wesley Chapel; Largo; Palm Harbor; Lutz; Land O' Lakes; Apollo Beach; Seminole; Dunedin; Valrico; Plant City; New Port Richey; Oldsmar; Temple Terrace; Pinellas Park; Tarpon Springs; Zephyrhills; Hudson; Spring Hill; Brooksville; Bradenton; Lakeland; Winter Haven."},"zip":{"type":"string","pattern":"^\\d{5}$","description":"5-digit ZIP code of the job. Ignored when area is given."},"open_now":{"type":"boolean","description":"Only businesses whose published office hours say they are open now (America/New_York)."},"self_contained":{"type":"boolean","description":"Only mobile businesses that say they bring their own water and power."},"has_published_prices":{"type":"boolean","description":"Only businesses that publish prices on their own site."},"limit":{"type":"integer","minimum":1,"maximum":25,"default":10}}}}}},"responses":{"200":{"description":"Matching pros.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input, with a plain-language error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limited (per IP, per hour)."}}}},"/api/agent/get_pro":{"get":{"operationId":"get_pro","summary":"Full profile for one business by id: services, service area, stated insurance, certification and warranty, published prices, office hours, trust check, sources, how_to_book, and what request_quote will do for this business.","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"One pro.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input, with a plain-language error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Invalid input, with a plain-language error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limited (per IP, per hour)."}}}},"/api/agent/request_quote":{"post":{"operationId":"request_quote","summary":"Ask a business for a quote on the customer's behalf. If the business is owner-verified on Detailer Atlas, the request is saved and queued to the owner's verified email (outcome \"queued_for_owner\", or \"sent_to_owner\" once delivered). If it is not claimed, Detailer Atlas does NOT contact the business: the request is recorded privately as demand and the reply's how_to_book tells you where to finish (outcome \"not_sent_business_unclaimed\"). Detailer Atlas never schedules, prices or takes payment. Customer details stay private and are deleted after 90 days. Only call with the customer's consent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["pro_id","service","zip","preferred_window","details","customer_name","customer_email","consent"],"properties":{"pro_id":{"type":"string","description":"Pro id from find_pros."},"service":{"type":"string","description":"Service wanted; must be one the business lists."},"zip":{"type":"string","pattern":"^\\d{5}$","description":"ZIP code of the property."},"preferred_window":{"type":"string","maxLength":120,"description":"When the customer would like the work or a call back, e.g. \"weekday mornings next week\"."},"details":{"type":"string","maxLength":1500,"description":"What needs cleaning: surfaces, size, stories, stains, access."},"customer_name":{"type":"string","maxLength":120},"customer_email":{"type":"string","format":"email","maxLength":254},"customer_phone":{"type":"string","maxLength":30,"description":"Optional US phone number."},"consent":{"type":"boolean","const":true,"description":"Must be true: the customer agreed that Detailer Atlas stores this request for up to 90 days and, only if the business is owner-verified, sends it to the owner. See https://detaileratlas.com/privacy#agent-requests."}}}}}},"responses":{"201":{"description":"Request recorded; outcome says whether the business was contacted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input, with a plain-language error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limited (per IP, per hour)."}}}}}}