Skip to content

🌐 REST Endpoints

The server exposes 90+ REST endpoints at http://localhost:5055. All responses are JSON unless noted otherwise.

MethodEndpointPurpose
GET/api/phone/devicesList connected devices (serial, model, nickname, status)
GET/api/phone/stream/<device>MJPEG stream (use as img src)
POST/api/phone/inputSend input (tap, swipe, type, keyevent)
GET/api/phone/elements/<device>Interactive UI elements on screen
GET/api/phone/packages/<device>List installed packages
{"device": "serial", "action": "tap", "x": 540, "y": 1200}
{"device": "serial", "action": "swipe", "x1": 540, "y1": 1800, "x2": 540, "y2": 600}
{"device": "serial", "action": "type", "text": "hello"}
{"device": "serial", "action": "keyevent", "key": "KEYCODE_BACK"}
MethodEndpointPurpose
POST/api/bot/startStart a bot job
GET/api/bot/statusRunning bots per device
GET/api/bot/logs/<job_id>Log output for a job
POST/api/bot/stopStop bot on a device
{
"type": "crawl",
"device": "serial",
"params": {"query": "#Cat", "tab": "top", "passes": 5, "date_filter": "Past 24 hours"}
}
TypeKey Params
crawlquery, tab, passes, date_filter
postvideo_id, caption, hashtags, as_draft
publish_draftdraft_tag
skill_workflowskill, workflow, params
skill_actionskill, action, params
app_explorepackage, max_depth, max_states
?page=1&per_page=50&sort=followers&order=desc&label=pet&min_followers=1000&status=not_contacted
MethodEndpointPurpose
GET/api/content/videosList videos (filter by status, type)
GET/api/content/postsUpload history for a video
POST/api/content/videos/<id>Update video status
MethodEndpointPurpose
GET/api/schedulesList all schedules
POST/api/schedulesCreate schedule
PUT/api/schedules/<id>Update schedule
DELETE/api/schedules/<id>Delete schedule
POST/api/schedules/<id>/toggleEnable/disable
POST/api/schedules/<id>/run-nowTrigger immediate run
GET/api/scheduler/statusPer-phone status
GET/api/scheduler/queueCurrent job queue
GET/api/scheduler/queue/<id>/logsJob log stream
POST/api/scheduler/queue/<id>/killKill a job
POST/api/scheduler/runs/<id>/restartRe-enqueue job
GET/api/scheduler/historyArchived job runs
GET/api/scheduler/history/<id>/logsArchived run logs
GET/api/scheduler/timeline24h timeline data
MethodEndpointPurpose
GET/api/skillsList all skills
GET/api/skills/<name>Skill detail
GET/api/skills/<name>/actionsList actions
GET/api/skills/<name>/workflowsList workflows
POST/api/skills/<name>/runRun workflow
POST/api/skills/<name>/run-actionRun single action
GET/api/skills/export/<name>Download skill ZIP
POST/api/skills/importUpload skill ZIP
POST/api/skills/create-from-recordingCreate skill from macro
MethodEndpointPurpose
POST/api/creator/chatSend message to LLM
POST/api/creator/chat-streamStreaming chat response
GET/api/creator/ollama-modelsList Ollama models
MethodEndpointPurpose
POST/api/explorer/startStart BFS exploration
POST/api/explorer/stopStop exploration
GET/api/explorer/statusPoll progress
GET/api/explorer/runsList all explorations
GET/api/explorer/run/<name>Full state graph
GET/api/explorer/screenshot/<name>/<state_id>State screenshot
DELETE/api/explorer/delete/<name>Delete exploration
MethodEndpointPurpose
GET/api/analyticsPost performance metrics
MethodEndpointPurpose
GET/api/testsList test files and functions
POST/api/test-runner/startRun pytest suite
GET/api/test-runner/statusTest run status
GET/api/test-runner/recordingsList screen recordings
MethodEndpointPurpose
POST/api/phone/webrtc-signalRelay signaling
POST/api/phone/webrtc-callback/<device>Receive from Portal
GET/api/phone/webrtc-poll-signals/<device>Poll signals
POST/api/phone/webrtc-ws-sendSend via WebSocket
POST/api/phone/webrtc-ws-pollPoll WebSocket
GET/api/phone/webrtc-viewerSingle-device viewer page
GET/api/phone/webrtc-multiMulti-device viewer page