Appearance
Script Runner
Multilogin X Script Runner enables bulk automation across single or multiple browser profiles with minimal technical knowledge.
Requirements
- Multilogin X Agent version 1.37.4 or later
- Script Runner binary is downloaded automatically on agent update
File Locations
Script Runner Binary
| OS | Path |
|---|---|
| Windows | C:\Users\%username%\mlx\deps\script_runner |
| macOS | /Users/%username%/mlx/deps/script_runner |
| Linux | /home/%username%/mlx/deps/script_runner |
Scripts Directory
| OS | Path |
|---|---|
| Windows | C:\Users\%username%\mlx\deps\scripts |
| macOS | /Users/%username%/mlx/deps/scripts |
| Linux | /home/%username%/mlx/deps/scripts |
Configuration
To change default directories, edit launcher.yaml:
| OS | Config Path |
|---|---|
| Windows | C:\Users\%username%\mlx\configs\launcher.yaml |
| macOS | /Users/%username%/mlx/configs/launcher.yaml |
| Linux | /home/%username%/mlx/configs/launcher.yaml |
Modify these values:
yaml
scriptrunnerpath: "/custom/path/to/script_runner"
scriptsdirpath: "/custom/path/to/scripts"INFO
As of December 2024, the Agent downloads example scripts automatically on every launch. These are reference scripts stored on Multilogin's servers.
Start Script Runner
POST https://launcher.mlx.yt:45001/api/v1/run_script
Run scripts on one or multiple profiles. Two execution modes:
Mode 1: Run on Active Profiles
- Start profiles with
automation_type=seleniumfirst - Send script run request -- profiles stay open after execution
Mode 2: Run with Profile Launch
- Send script run request with profile IDs -- profiles are started, script runs, then profiles close automatically
| Parameter | Type | Required | Description |
|---|---|---|---|
script_file | string | Yes | Python script filename (relative to scripts dir) |
profile_ids | array | Yes | Array of profile objects |
profile_ids[].profile_id | UUID | Yes | Profile to run the script on |
profile_ids[].is_headless | boolean | No | Run headless |
bash
curl -X POST https://launcher.mlx.yt:45001/api/v1/run_script \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
-d '{
"script_file": "example_script3.py",
"profile_ids": [
{"profile_id": "8feb79fc-2b42-4d54-a3eb-f26fddd31499", "is_headless": false},
{"profile_id": "8feb79fc-2b42-4d54-a3eb-f26fddd31410", "is_headless": true}
]
}'Response:
json
{
"data": [
{"profile_id": "8feb79fc-...-31499", "status": "success"},
{"profile_id": "8feb79fc-...-31410", "status": "success"}
],
"status": {"error_code": "", "http_code": 200, "message": ""}
}Stop Script Runner
POST https://launcher.mlx.yt:45001/api/v1/profile/stop_script
Stop running scripts on specified profiles.
bash
curl -X POST https://launcher.mlx.yt:45001/api/v1/profile/stop_script \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
-d '{
"profile_ids": [
"8feb79fc-2b42-4d54-a3eb-f26fddd31499",
"422a436e-564c-4fa9-a29a-45b848714a78"
]
}'Response:
json
{
"data": [
{"profile_id": "8feb79fc-...", "status": "stopped"},
{"profile_id": "422a436e-...", "status": "stopped"}
],
"status": {"error_code": "", "http_code": 200, "message": ""}
}List Scripts
GET https://launcher.mlx.yt:45001/api/v1/scripts
Get a list of available scripts in the scripts directory.
bash
curl https://launcher.mlx.yt:45001/api/v1/scripts \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response:
json
{
"data": ["example_script3.py"],
"status": {"error_code": "", "http_code": 200, "message": ""}
}