API Reference

Base URL: http://localhost:3000

Sessions

POST /session/start

Start a new session (desktop or mobile).

Body (Desktop):

{ "url": "https://example.com", "browserOptions": { "headless": true } }

Body (Mobile):

{ "mobile": { "enabled": true, "platformName": "Android", "deviceName": "Android Emulator", "browserName": "Chrome" } }

Response:

{ "message": "Session started successfully.", "sessionId": "...", "isMobile": false, "context": { ... } }

DELETE /session/{sessionId}

Terminate a session.

Response:

{ "message": "Session terminated successfully.", "status": "terminated", "sessionId": "..." }

GET /session/stats

{ "message": "Session statistics fetched successfully.", "status": "success", "stats": { "totalSessions": 1, "activeSessions": 1, "mobileSessions": 0, "desktopSessions": 1 } }

Actions

POST /session/{sessionId}/act

Execute an action and get updated context.

Popular desktop actions:

Action Parameters Description
click elementId Click an element
setValue elementId, value Type into an input/textarea
getText elementId Get element text
clearValue elementId Clear input value
getAttribute elementId, attribute Get attribute value
keys value Send keystrokes
scrollIntoView elementId Scroll to element
screenshot (elementId?) Full page or element screenshot
navigate url Navigate to a URL
isDisplayed elementId Visibility check
isEnabled elementId Enabled check
isSelected elementId Selected check
waitForDisplayed elementId, timeout Wait visible
waitForEnabled elementId, timeout Wait enabled
waitForExist elementId, timeout Wait exist
customScript script, args Run JS in page

Mobile actions:

Action Parameters Description
mobile:tap elementId or x,y Tap element or coordinates
mobile:swipe direction, duration, (x,y) Swipe in direction
mobile:scroll direction, duration Scroll (swipe alias)
mobile:back - Back navigation
mobile:pressKey key Send platform key
mobile:hideKeyboard - Hide soft keyboard

Response:

{ "message": "Action 'click' executed successfully.", "sessionId": "...", "context": { ... }, "result": { ... } }