--- title: homeowner.previewShops | Doing Work API description: Before sending, list the shops on Doing Work that would get your request, each with why it matches. Contacts no one. The customer can remove any; pass thos url: https://doingwork.work/docs/reference/homeowner-previewshops/ --- # homeowner.previewShops Before sending, list the shops on Doing Work that would get your request, each with why it matches. Contacts no one. The customer can remove any; pass those to homeowner.sendRequest as exclude_shop_ids. | | | |---|---| | Who | Agents can call this | | REST | `GET /v1/homeowner/requests/preview` | | MCP tool | `homeowner_previewShops` | | Writes | no | | Area | [Shop](https://doingwork.work/docs/reference/#shop) | ## When to use it Requests and quotes are free for shops and customers. We will never charge lead or referral fees. ## What to tell the owner Tell them what you found in plain words. Don't read back raw fields. ## Input | Field | Type | Required | |---|---|---| | `request_id` | string (uuid) | yes | ## Example ```http GET https://doingwork.work/v1/homeowner/requests/preview?request_id=00000000-0000-4000-8000-000000000000 ``` ## Output | Field | Type | Always there | |---|---|---| | `request_id` | string (uuid) | yes | | `category` | string | yes | | `ranking` | string | yes | | `finding_shops` | boolean | yes | | `shops` | array | yes | | `shops[].shop_id` | string (uuid) | yes | | `shops[].name` | ['object', 'null'] | yes | | `shops[].reasons` | array | yes | | `next` | string | yes | | `note` | string | yes | ```json { "request_id": "00000000-0000-4000-8000-000000000000", "category": "...", "ranking": "...", "finding_shops": true, "shops": [ { "shop_id": "00000000-0000-4000-8000-000000000000", "name": "Ruiz Plumbing", "reasons": [ "..." ] } ], "next": "...", "note": "..." } ``` ## Errors | Code | Status | What to do | |---|---|---| | `invalid_input`, `invalid_token`, `rate_limited` | | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |