{"openapi":"3.1.0","info":{"title":"Groomer Scout agent API","version":"1.0.0","description":"The same three tools as the MCP server at https://groomerscout.com/mcp. No authentication; rate-limited per IP. Groomer Scout takes no bookings or payments: request_quote reaches only owner-verified businesses, otherwise it returns how_to_book.","contact":{"email":"hello@groomerscout.com"}},"servers":[{"url":"https://groomerscout.com"}],"paths":{"/api/agent/find_pros":{"get":{"operationId":"find_pros","summary":"Search Groomer Scout's dog and pet grooming 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: Full groom; Bath & brush; Nail trim; De-shedding; Puppy groom; Breed cuts; Cat grooming; Mobile grooming; Teeth brushing; Self-serve dog wash. Plain words like \"dog haircut\" or \"cat bath\" 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":"cage_free","in":"query","required":false,"schema":{"type":"boolean","description":"Only businesses that say they are cage-free (no kennel time before or after the groom)."}},{"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: Full groom; Bath & brush; Nail trim; De-shedding; Puppy groom; Breed cuts; Cat grooming; Mobile grooming; Teeth brushing; Self-serve dog wash. Plain words like \"dog haircut\" or \"cat bath\" 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)."},"cage_free":{"type":"boolean","description":"Only businesses that say they are cage-free (no kennel time before or after the groom)."},"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, cage-free and sedation policies, stated insurance and guarantee, 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 Groomer Scout, 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, Groomer Scout 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\"). Groomer Scout 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":"Customer ZIP code (where a mobile groomer would come, or near which to groom)."},"preferred_window":{"type":"string","maxLength":120,"description":"When the customer would like the appointment or a call back, e.g. \"weekday mornings next week\"."},"details":{"type":"string","maxLength":1500,"description":"About the pet: species, breed, size, coat condition, temperament, and the groom wanted."},"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 Groomer Scout stores this request for up to 90 days and, only if the business is owner-verified, sends it to the owner. See https://groomerscout.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)."}}}}}}