Loading...
Loading...
Control browser automation through HTTP API. Supports page navigation, element interaction (click, type, select), data extraction, accessibility snapshot analysis, screenshot, JavaScript execution, and batch operations.
npx skill4agent add memtensor/memos browserwing-executorhttp://localhost:8080/api/v1/executorX-BrowserWing-Key: <api-key>Authorization: Bearer <token>curl -X GET 'http://localhost:8080/api/v1/executor/help'curl -X GET 'http://localhost:8080/api/v1/executor/help?command=extract'curl -X GET 'http://localhost:8080/api/v1/executor/snapshot'{
"success": true,
"snapshot_text": "Clickable Elements:\n @e1 Login (role: button)\n @e2 Sign Up (role: link)\n\nInput Elements:\n @e3 Email (role: textbox) [placeholder: your@email.com]\n @e4 Password (role: textbox)"
}curl -X POST 'http://localhost:8080/api/v1/executor/navigate' \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com"}'curl -X POST 'http://localhost:8080/api/v1/executor/click' \
-H 'Content-Type: application/json' \
-d '{"identifier": "@e1"}'@e1@e2#button-id.class-name//button[@type='submit']Logincurl -X POST 'http://localhost:8080/api/v1/executor/type' \
-H 'Content-Type: application/json' \
-d '{"identifier": "@e3", "text": "user@example.com"}'curl -X POST 'http://localhost:8080/api/v1/executor/extract' \
-H 'Content-Type: application/json' \
-d '{
"selector": ".product-item",
"fields": ["text", "href"],
"multiple": true
}'curl -X POST 'http://localhost:8080/api/v1/executor/wait' \
-H 'Content-Type: application/json' \
-d '{"identifier": ".loading", "state": "hidden", "timeout": 10}'curl -X POST 'http://localhost:8080/api/v1/executor/batch' \
-H 'Content-Type: application/json' \
-d '{
"operations": [
{"type": "navigate", "params": {"url": "https://example.com"}, "stop_on_error": true},
{"type": "click", "params": {"identifier": "@e1"}, "stop_on_error": true},
{"type": "type", "params": {"identifier": "@e3", "text": "query"}, "stop_on_error": true}
]
}'GET /helpPOST /navigateGET /snapshot@e1@e2POST /clickPOST /typePOST /selectPOST /waitPOST /extractcurl -X POST 'http://localhost:8080/api/v1/executor/navigate' \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com/search"}'curl -X GET 'http://localhost:8080/api/v1/executor/snapshot'@e3 Search (role: textbox) [placeholder: Search...]curl -X POST 'http://localhost:8080/api/v1/executor/type' \
-H 'Content-Type: application/json' \
-d '{"identifier": "@e3", "text": "laptop"}'curl -X POST 'http://localhost:8080/api/v1/executor/press-key' \
-H 'Content-Type: application/json' \
-d '{"key": "Enter"}'curl -X POST 'http://localhost:8080/api/v1/executor/wait' \
-H 'Content-Type: application/json' \
-d '{"identifier": ".search-results", "state": "visible", "timeout": 10}'curl -X POST 'http://localhost:8080/api/v1/executor/extract' \
-H 'Content-Type: application/json' \
-d '{
"selector": ".result-item",
"fields": ["text", "href"],
"multiple": true
}'Found 15 results for 'laptop':
1. Gaming Laptop - $1299 (https://...)
2. Business Laptop - $899 (https://...)
...POST /navigatePOST /go-backPOST /go-forwardPOST /reloadPOST /click@e1POST /type@e3POST /selectPOST /hoverPOST /waitPOST /press-keyPOST /extractPOST /get-textPOST /get-valueGET /page-infoGET /page-textGET /page-contentGET /snapshotGET /clickable-elementsGET /input-elementsPOST /screenshotPOST /evaluatePOST /batchPOST /scroll-to-bottomPOST /resizePOST /tabsPOST /fill-formGET /console-messagesGET /network-requestsPOST /handle-dialogPOST /file-uploadPOST /dragPOST /close-page@e1@e2@e3/snapshot"identifier": "@e1"#id.classbutton[type="submit"]"identifier": "#login-button"//button[@id='login']//a[contains(text(), 'Submit')]"identifier": "//button[@id='login']"LoginSign UpSubmit"identifier": "Login"aria-labelGET /help/snapshot@e1/wait/batch/snapshotfields["text", "href", "src"]multiple: trueUser: "Please log in to example.com with username 'john' and password 'secret123'"POST http://localhost:8080/api/v1/executor/navigate
{"url": "https://example.com/login"}GET http://localhost:8080/api/v1/executor/snapshotClickable Elements:
@e1 Login (role: button)
Input Elements:
@e2 Username (role: textbox)
@e3 Password (role: textbox)POST http://localhost:8080/api/v1/executor/type
{"identifier": "@e2", "text": "john"}POST http://localhost:8080/api/v1/executor/type
{"identifier": "@e3", "text": "secret123"}POST http://localhost:8080/api/v1/executor/click
{"identifier": "@e1"}POST http://localhost:8080/api/v1/executor/wait
{"identifier": ".welcome-message", "state": "visible", "timeout": 10}"Successfully logged in to example.com!"curl -X POST 'http://localhost:8080/api/v1/executor/batch' \
-H 'Content-Type: application/json' \
-d '{
"operations": [
{
"type": "navigate",
"params": {"url": "https://example.com/form"},
"stop_on_error": true
},
{
"type": "type",
"params": {"identifier": "#name", "text": "John Doe"},
"stop_on_error": true
},
{
"type": "type",
"params": {"identifier": "#email", "text": "john@example.com"},
"stop_on_error": true
},
{
"type": "select",
"params": {"identifier": "#country", "value": "United States"},
"stop_on_error": true
},
{
"type": "click",
"params": {"identifier": "#submit"},
"stop_on_error": true
}
]
}'/help/help?command=<name>/snapshot/wait/batch/type@e1@e2/select/wait/extractmultiple: true["text", "href", "src"]@e2@e3@e1wait_visible: truelocalhost:8080X-BrowserWing-Key/snapshot/wait/wait# Discover commands
GET localhost:8080/api/v1/executor/help
# Navigate
POST localhost:8080/api/v1/executor/navigate {"url": "..."}
# Get page structure
GET localhost:8080/api/v1/executor/snapshot
# Click element
POST localhost:8080/api/v1/executor/click {"identifier": "@e1"}
# Type text
POST localhost:8080/api/v1/executor/type {"identifier": "@e3", "text": "..."}
# Extract data
POST localhost:8080/api/v1/executor/extract {"selector": "...", "fields": [...], "multiple": true}{
"success": true,
"message": "Operation description",
"timestamp": "2026-01-15T10:30:00Z",
"data": {
// Operation-specific data
}
}{
"error": "error.operationFailed",
"detail": "Detailed error message"
}