iOS

For iOS, create devices from a managed image that already exists in /api/images.

1. Pick A Managed Image

List images and copy the iOS image_id you want to use:

curl -s http://127.0.0.1:8000/api/images

2. Create The Device

curl -s http://127.0.0.1:8000/api/devices \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "ios-lab-01",
    "platform": "ios",
    "model": "iPhone 15",
    "os_version": "17.4",
    "image": "iPhone 15 Base",
    "image_id": "iphone-15-base-a1b2c3d4",
    "vm_config": {
      "no_graphics": false,
      "cpu_count": 8,
      "memory_mb": 8192,
      "disk_size_gb": 64
    }
  }'

3. Start The Device

curl -s http://127.0.0.1:8000/api/devices/<device-id>/power \
  -H 'Content-Type: application/json' \
  -d '{"action":"start"}'

4. Inspect Runtime Status

curl -s http://127.0.0.1:8000/api/devices/<device-id>/runtime

5. Adjust Headed vs Headless Mode

You can toggle graphics for the next boot:

curl -s http://127.0.0.1:8000/api/devices/<device-id>/vm-config \
  -H 'Content-Type: application/json' \
  -d '{"no_graphics":false}'

Tip

If you plan to use the browser workspace for manual interaction, start with no_graphics: false so the runtime has a visible display path.