---
title: "Exit Setup Mode"
method: POST
path: "/api/v1/setup/exit"
tags: ["v1", "setup", "factory"]
---

# Exit Setup Mode

`POST /api/v1/setup/exit`

Exit setup mode and transition system to normal operational state.

**FACTORY USE ONLY** - This endpoint finalizes factory configuration and enables system operation.

This endpoint completes the setup process by:
- **Validating complete configuration** - Ensuring all required components are configured
- **Transitioning to operational mode** - Enabling normal reel control endpoints
- **Activating safety systems** - Initializing configured hardware safeguards
- **Publishing system events** - Notifying system of setup completion

## Prerequisites for Exiting Setup

Before the system can exit setup mode, **ALL** components in the manifest must be configured:
- **Critical components** (motor_driver, cable_encoder) must have valid hardware types
- **Optional components** can be set to 'null' if not physically present
- **Configuration validation** ensures all settings are compatible

## System State Transition

### During Setup Mode:
- **Reel operations disabled** - Movement, calibration, and control endpoints blocked
- **Setup endpoints active** - Configuration and status endpoints available
- **Safety systems inactive** - Hardware not yet initialized

### After Exiting Setup:
- **Full reel operations enabled** - All movement and control endpoints available  
- **Hardware systems initialized** - Configured components become active
- **Safety systems operational** - Emergency stops, safeguards, and monitoring active
- **Setup endpoints disabled** - Configuration locked to prevent accidental changes

## Error Conditions

The system **cannot exit setup mode** if:
- **Unconfigured components remain** - All components must have assigned types
- **Invalid configurations detected** - Hardware settings fail validation
- **Critical hardware missing** - Required components (motor_driver) not configured

## Factory Completion Workflow

1. **Configure all system components** using setup endpoints
2. **Verify setup status** shows `can_exit_setup: true`
3. **Call exit setup endpoint** to complete configuration
4. **Verify normal operations** by testing reel control endpoints
5. **Document final configuration** for customer deployment

This endpoint represents the **final step** in factory configuration before customer delivery.

## Response `200`

Setup mode exit result and operational status

- ExitSetupResponse — Response from setup mode exit operation. Indicates whether the system successfully transitioned from setup mode to normal operational state.
  - `success` boolean, required — Whether exiting setup mode was successful. - **True**: System now in normal operation mode, all endpoints available - **False**: Setup mode exit failed, system remains in setup mode **Success Criteria:** - All components must be configured (can_exit_setup = true) - Configuration validation must pass - Hardware initialization must complete successfully
  - `message` string, required — Status message describing the operation result. **Success Messages:** - "Successfully exited setup mode" - Normal completion - "Already in normal operation mode" - No action needed **Error Messages:** - Details about why setup mode exit failed - Information about remaining configuration requirements

## Other responses

- `400` — Cannot exit setup mode due to incomplete configuration
- `500` — Internal server error during setup operation

---

[API](https://skmtc.net/reach-systems-tech/apis/reelapi-v1.md) · [All operations](https://skmtc.net/reach-systems-tech/apis/reelapi-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reach-systems-tech/reelapi-v1/versions/1dd366a9c6a3/schema)
