Appearance
Browser API
FreshSource: BIBLE.md (Desktop V1 routes plus V2 routes plus Mobile ADB routes)
Browser endpoints: launch, navigate, click, type, scroll, vision, cookies, geolocation.
V1 routes (desktop)
| Method | Route | Body | Notes |
|---|---|---|---|
| POST | /browser/launch | { url, proxy?, geo?, fingerprint?, mode?, platform?, vision?, backend? } | Launch with optional router config |
| GET | /browser | - | List active instances |
| GET | /browser/:id | - | Instance info (includes router session) |
| POST | /browser/:id/navigate | { url, waitUntil? } | Navigate |
| POST | /browser/:id/screenshot | { fullPage? } | Capture screenshot |
| POST | /browser/:id/evaluate | { expression } | Evaluate JS |
| POST | /browser/:id/click | { selector?, x?, y? } | Humanized click |
| POST | /browser/:id/click-text | { text } | Click by visible text |
| POST | /browser/:id/type | { selector?, text, speed?, typos? } | Humanized typing |
| POST | /browser/:id/scroll | { direction?, distance? } | Humanized scroll |
| GET | /browser/:id/cookies | - | Get cookies |
| POST | /browser/:id/cookies | { cookies } | Set cookies |
| POST | /browser/:id/geolocation | { geo } | Set geolocation |
| POST | /browser/:id/close | - | Close instance |
| GET | /browser/:id/ws-endpoint | - | WebSocket endpoint |
V2 routes (desktop ghost mode)
| Method | Route | Body | Notes |
|---|---|---|---|
| POST | /browser/:id/vision-click | { instruction } | Screenshot to VLM to find to humanized click |
| POST | /browser/:id/vision-type | { instruction, text, speed?, typos?, clear? } | Find input to click to type |
| POST | /browser/:id/vision-find | { instruction } | Find element, return coords |
| POST | /browser/:id/vision-verify | { description } | Check if page matches |
| POST | /browser/:id/set-mode | { mode } | Switch ghost/hybrid/speed |
| GET | /browser/:id/router | - | Current router session info |
| GET | /browser/:id/vision-history | - | Screenshot history |
Mobile routes (ADB)
| Method | Route | Body | Notes |
|---|---|---|---|
| GET | /mobile/devices | - | List connected ADB devices |
| POST | /mobile/connect | { serial, mode?, platform? } | Connect, create ghost session |
| GET | /mobile | - | List active mobile sessions |
| GET | /mobile/:id | - | Session info |
| POST | /mobile/:id/tap | { x, y, instruction? } | Humanized tap |
| POST | /mobile/:id/type | { text, speed?, instruction? } | Humanized typing |
| POST | /mobile/:id/scroll | { direction?, distance? } | Humanized scroll |
| POST | /mobile/:id/scroll-feed | { count?, dwellMin?, dwellMax? } | Feed browsing |
| POST | /mobile/:id/keyevent | { keycode } | Android key event |
| POST | /mobile/:id/screenshot | - | Device screenshot |
| POST | /mobile/:id/vision-find | { instruction } | Vision find on device |
| POST | /mobile/:id/vision-verify | { description } | Verify device state |
| POST | /mobile/:id/close | - | Close session |
Launch examples
Default speed mode
bash
curl -X POST http://localhost:4700/browser/launch \
-H "Content-Type: application/json" \
-H "x-api-key: ghost-engine-key" \
-d '{"headless":false}'Ghost mode for Reddit
bash
curl -X POST http://localhost:4700/browser/launch \
-H "Content-Type: application/json" \
-H "x-api-key: ghost-engine-key" \
-d '{"email":"someone@gmail.com","mode":"ghost","platform":"reddit","headless":false}'Hybrid mode for Yelp
bash
curl -X POST http://localhost:4700/browser/launch \
-H "Content-Type: application/json" \
-H "x-api-key: ghost-engine-key" \
-d '{"email":"someone@gmail.com","mode":"hybrid","platform":"yelp","headless":false}'Mobile
bash
# List devices
curl http://localhost:4700/mobile/devices
# Connect
curl -X POST http://localhost:4700/mobile/connect \
-H "Content-Type: application/json" \
-d '{"serial":"192.168.1.100:5555"}'
# Tap
curl -X POST http://localhost:4700/mobile/mob-abc123/tap \
-H "Content-Type: application/json" \
-d '{"x":540,"y":960}'