--- title: services.listDue | Doing Work API description: List service due dates for the shop, soonest first. Filter by customer, status (open by default, or done, cancelled, all) and due_before to see what is com url: https://doingwork.work/docs/reference/services-listdue/ --- # services.listDue List service due dates for the shop, soonest first. Filter by customer, status (open by default, or done, cancelled, all) and due_before to see what is coming up. | | | |---|---| | Who | Agents can call this | | REST | `GET /v1/service-due` | | MCP tool | `services_listDue` | | Writes | no | | Area | [Shop](https://doingwork.work/docs/reference/#shop) | ## When to use it List service due dates for the shop, soonest first. Filter by customer, status (open by default, or done, cancelled, all) and due_before to see what is coming up. ## What to tell the owner Tell them what you found in plain words. Don't read back raw fields. ## Input | Field | Type | Required | |---|---|---| | `shop_id` | string (uuid) | yes | | `customer_id` | string (uuid) | no | | `status` | string (one of open, done, cancelled, all) | no | | `due_before` | string (date) | no | | `limit` | integer | no | ## Example ```http GET https://doingwork.work/v1/service-due?shop_id=00000000-0000-4000-8000-000000000000 ``` ## Output | Field | Type | Always there | |---|---|---| | `items` | array | yes | | `items[].service_due_id` | string (uuid) | yes | | `items[].shop_id` | string (uuid) | yes | | `items[].customer_id` | string (uuid) | yes | | `items[].customer_name` | string | yes | | `items[].job_id` | ['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')'] | yes | | `items[].title` | string | yes | | `items[].due_on` | string (date) | yes | | `items[].repeat_months` | ['integer', 'null'] | yes | | `items[].status` | string | yes | | `items[].reminded_at` | ['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')'] | yes | | `items[].closed_at` | ['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')'] | yes | | `items[].next_id` | ['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')'] | yes | | `items[].created_at` | string (date-time) | yes | ```json { "items": [ { "service_due_id": "00000000-0000-4000-8000-000000000000", "shop_id": "00000000-0000-4000-8000-000000000000", "customer_id": "00000000-0000-4000-8000-000000000000", "customer_name": "...", "job_id": "00000000-0000-4000-8000-000000000000", "title": "...", "due_on": "...", "repeat_months": "...", "status": "...", "reminded_at": "...", "closed_at": "...", "next_id": "00000000-0000-4000-8000-000000000000", "created_at": "..." } ] } ``` ## Errors | Code | Status | What to do | |---|---|---| | `invalid_input`, `invalid_token`, `rate_limited` | | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |