// REST API DOCUMENTATION
MirrorUE Local HTTP REST API Reference
When MirrorUE is running on your Mac, it exposes a zero-configuration local loopback HTTP REST API on http://127.0.0.1:8090 (override with MIRRORUE_API_PORT) for CI/CD test runners, automated QA scripts, and LLM agents.
1. Touch & Gesture Injection (POST /v1/tap & POST /v1/swipe)
Simulate touch events at specific pixel coordinates on the connected iPhone:
# Tap at (x: 375, y: 812)
curl -X POST http://127.0.0.1:8090/v1/tap \
-H "Content-Type: application/json" \
-d '{"x": 375, "y": 812}'
# Swipe up from bottom to top
curl -X POST http://127.0.0.1:8090/v1/swipe \
-H "Content-Type: application/json" \
-d '{"fromX": 200, "fromY": 700, "toX": 200, "toY": 200, "durationMs": 250}'
2. Keyboard Typing (POST /v1/type)
Types an arbitrary string of text into the active iOS text field:
curl -X POST http://127.0.0.1:8090/v1/type \
-H "Content-Type: application/json" \
-d '{"text": "Automated QA test suite passed"}'
3. Special Hardware Keys & Buttons (POST /v1/button & POST /v1/key)
Sends system navigation events such as Home bar, Lock, Volume, or Return key:
# Press Home / swipe up to home screen
curl -X POST http://127.0.0.1:8090/v1/button \
-H "Content-Type: application/json" \
-d '{"button": "home"}'
# Press Enter / Return key
curl -X POST http://127.0.0.1:8090/v1/key \
-H "Content-Type: application/json" \
-d '{"key": "return"}'
4. Visual Screenshot Capture (GET /v1/vision/latest & GET /v1/screenshot)
Returns the latest raw uncompressed frame as a PNG image for visual regression testing:
curl -X GET http://127.0.0.1:8090/v1/screenshot --output screen.png
5. Python Automation Example
import requests, time
BASE = "http://127.0.0.1:8090"
# Tap search bar
requests.post(f"{BASE}/v1/tap", json={"x": 200, "y": 120})
time.sleep(0.2)
# Type search query
requests.post(f"{BASE}/v1/type", json={"text": "MirrorUE 120 FPS"})
# Press Enter
requests.post(f"{BASE}/v1/key", json={"key": "return"})
# Capture snapshot
res = requests.get(f"{BASE}/v1/screenshot")
with open("result.png", "wb") as f:
f.write(res.content)
print("QA test step executed successfully!")