--- title: visits.steps | Doing Work API description: The guided visit steps for a visit, each done, skipped, or open, and the next one to suggest. Walk the worker through them in conversation; they are loose, url: https://doingwork.work/docs/reference/visits-steps/ --- # visits.steps The guided visit steps for a visit, each done, skipped, or open, and the next one to suggest. Walk the worker through them in conversation; they are loose, and any step can be skipped. | | | |---|---| | Who | Agents can call this | | REST | `GET /v1/visits/steps` | | MCP tool | `visits_steps` | | Writes | no | | Area | [Scheduling and visits](https://doingwork.work/docs/reference/#scheduling-and-visits) | ## When to use it Use these when a worker is heading to, standing at, or just leaving a visit. Everything happens in conversation with the worker: there are no buttons for them to tap and no app to open. ## What to tell the owner Tell them what you found in plain words. Don't read back raw fields. ## Input | Field | Type | Required | |---|---|---| | `visit_id` | string (uuid) | yes | ## Example ```http GET https://doingwork.work/v1/visits/steps?visit_id=00000000-0000-4000-8000-000000000000 ``` ## Output | Field | Type | Always there | |---|---|---| | `visit_id` | string (uuid) | yes | | `steps` | array | yes | | `steps[].key` | string | yes | | `steps[].label` | string | yes | | `steps[].op` | ['string', 'null'] | yes | | `steps[].state` | string | yes | | `steps[].note` | ['string', 'null'] | yes | | `steps[].marked_at` | ['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')'] | yes | | `next_step` | ['object', 'null'] | yes | | `next_actions` | array | yes | | `next_actions[].say` | string | yes | | `next_actions[].op` | ['string', 'null'] | yes | ```json { "visit_id": "00000000-0000-4000-8000-000000000000", "steps": [ { "key": "...", "label": "...", "op": "...", "state": "...", "note": "...", "marked_at": "..." } ], "next_step": "...", "next_actions": [ { "say": "...", "op": "..." } ] } ``` ## Errors | Code | Status | What to do | |---|---|---| | `invalid_input`, `invalid_token`, `rate_limited` | | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |