{"openapi":"3.1.0","info":{"title":"Rachio (BYOK) API","version":"0.1.0","description":"Rachio (BYOK) lets an AI assistant read your own Rachio devices and, with your approval of each change, change their state through the Rachio API with a key you supply (API token (Rachio app: Profile, API key, Copy)). Read tools plus 4 device-changing tools (set_zone_state, set_zone_dimming, activate_scene, deactivate_scene); each change runs only when confirm is yes, after you approved it in...\n\nMost operations are read-only. These change the state of a device and run only with confirm = \"yes\" after the user approved that change: set_zone_state, set_zone_dimming, activate_scene, deactivate_scene. The same tools are available over MCP (streamable HTTP) at https://byok-rachio-lighting-control.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rachio-lighting-control/docs"},"termsOfService":"https://connectorbay.com/byok-rachio-lighting-control/terms"},"servers":[{"url":"https://byok-rachio-lighting-control.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rachio-lighting-control/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_lighting_areas":{"post":{"operationId":"list_lighting_areas","summary":"List the Rachio lighting areas (top level groups of lighting controllers) of a user with id and whether it is shared wit","description":"List the Rachio lighting areas (top level groups of lighting controllers) of a user with id and whether it is shared with you. Use for \"Which Rachio lighting areas do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Rachio person id (a UUID), the id the Rachio sprinkler API returns from /public/person/info.","maxLength":64,"title":"User Id","type":"string"}},"required":["user_id"],"title":"list_lighting_areasArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_lighting_controllers":{"post":{"operationId":"list_lighting_controllers","summary":"List the smart lighting controllers of a lighting area with model, name, reported state and wattage limit. Serial and MA","description":"List the smart lighting controllers of a lighting area with model, name, reported state and wattage limit. Serial and MAC addresses are not returned. Use for \"Which Rachio lighting controllers are in my area\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lighting_area_id":{"description":"Lighting area id from list_lighting_areas.","maxLength":64,"title":"Lighting Area Id","type":"string"}},"required":["lighting_area_id"],"title":"list_lighting_controllersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_lighting_zones":{"post":{"operationId":"list_lighting_zones","summary":"List lighting zones with name, number, on or off state, dimmable flag and controller. Filter by controller, area, zone g","description":"List lighting zones with name, number, on or off state, dimmable flag and controller. Filter by controller, area, zone group or scene with one of the filters. Use for \"Which Rachio lighting zones are on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lighting_controller_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only zones of this lighting controller.","title":"Lighting Controller Id"},"lighting_area_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only zones of this lighting area.","title":"Lighting Area Id"},"lighting_zone_group_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only zones of this zone group.","title":"Lighting Zone Group Id"},"lighting_scene_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only zones used by this scene.","title":"Lighting Scene Id"}},"title":"list_lighting_zonesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_lighting_scenes":{"post":{"operationId":"list_lighting_scenes","summary":"List the lighting scenes of a lighting area with id and name. Use for \"Which Rachio lighting scenes do I have\".","description":"List the lighting scenes of a lighting area with id and name. Use for \"Which Rachio lighting scenes do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lighting_area_id":{"description":"Lighting area id from list_lighting_areas.","maxLength":64,"title":"Lighting Area Id","type":"string"}},"required":["lighting_area_id"],"title":"list_lighting_scenesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/set_zone_state":{"post":{"operationId":"set_zone_state","summary":"Switch one lighting zone on or off (it turns on at its default dimming level). This changes the physical outdoor lightin","description":"Switch one lighting zone on or off (it turns on at its default dimming level). This changes the physical outdoor lighting. Use for \"Turn off the Rachio path lights zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Lighting zone id from list_lighting_zones.","maxLength":64,"title":"Zone Id","type":"string"},"state":{"description":"ON or OFF.","enum":["ON","OFF"],"title":"State","type":"string"},"confirm":{"const":"yes","description":"Must be exactly yes, only after the user approved this change in chat.","title":"Confirm","type":"string"}},"required":["zone_id","state","confirm"],"title":"set_zone_stateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":false,"x-changes-device-state":true,"x-requires-confirmation":"confirm"}},"/v1/tools/set_zone_dimming":{"post":{"operationId":"set_zone_dimming","summary":"Set one lighting zone to a dimming percentage; this also turns the zone on if it is off. This changes the physical outdo","description":"Set one lighting zone to a dimming percentage; this also turns the zone on if it is off. This changes the physical outdoor lighting. Use for \"Dim the Rachio path lights zone to 40 percent\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Lighting zone id from list_lighting_zones.","maxLength":64,"title":"Zone Id","type":"string"},"dimming_percent":{"description":"Dimming level in percent, 0 to 100.","maximum":100,"minimum":0,"title":"Dimming Percent","type":"integer"},"confirm":{"const":"yes","description":"Must be exactly yes, only after the user approved this change in chat.","title":"Confirm","type":"string"}},"required":["zone_id","dimming_percent","confirm"],"title":"set_zone_dimmingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":false,"x-changes-device-state":true,"x-requires-confirmation":"confirm"}},"/v1/tools/activate_scene":{"post":{"operationId":"activate_scene","summary":"Activate a lighting scene, which sets the zones in it to the scene's stored settings. This changes the physical outdoor ","description":"Activate a lighting scene, which sets the zones in it to the scene's stored settings. This changes the physical outdoor lighting. Use for \"Activate my Rachio Evening lighting scene\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scene_id":{"description":"Lighting scene id from list_lighting_scenes.","maxLength":64,"title":"Scene Id","type":"string"},"confirm":{"const":"yes","description":"Must be exactly yes, only after the user approved this change in chat.","title":"Confirm","type":"string"}},"required":["scene_id","confirm"],"title":"activate_sceneArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":false,"x-changes-device-state":true,"x-requires-confirmation":"confirm"}},"/v1/tools/deactivate_scene":{"post":{"operationId":"deactivate_scene","summary":"Deactivate a lighting scene, which turns off all zones in it. This changes the physical outdoor lighting. Use for \"Deact","description":"Deactivate a lighting scene, which turns off all zones in it. This changes the physical outdoor lighting. Use for \"Deactivate my Rachio Evening lighting scene\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scene_id":{"description":"Lighting scene id from list_lighting_scenes.","maxLength":64,"title":"Scene Id","type":"string"},"confirm":{"const":"yes","description":"Must be exactly yes, only after the user approved this change in chat.","title":"Confirm","type":"string"}},"required":["scene_id","confirm"],"title":"deactivate_sceneArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":false,"x-changes-device-state":true,"x-requires-confirmation":"confirm"}}}}