API Reference
How to send visits manually and integrate with external systems.
Triggers a browser visit for a single lead. The server launches a Vision Browser instant profile, navigates to the URL, fills the login form, and closes the profile.
Replace {token} with the value of server.token from your config. If server.token is empty, the token segment is ignored and auth is disabled.
Content-Type: application/json
{
"url": "https://broker.com/autologin?lead_id=123",
"ip": "1.2.3.4",
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"geo": "ua",
"lang": "uk-UA,uk;q=0.9,en;q=0.8",
"referer": "https://landing.example.com/",
"proxy": "socks5://proxy.host:1080",
"pauth": "user:pass",
"name": "Ivan",
"last": "Shevchenko",
"email": "ivan@example.com",
"pass": "secret123"
}
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Target autologin URL to navigate to. |
| ip | string | No | Lead IP address. Sent as X-Forwarded-For and X-Real-IP headers. |
| ua | string | No | User-agent string. Passed as a request header to the target page. |
| geo | string | No | Lead country code (e.g. ua, de). Informational — passed through for context. |
| lang | string | No | Accept-Language header value (e.g. uk-UA,uk;q=0.9). Sent to the target page. |
| referer | string | No | Referer header sent to the target page. |
| proxy | string | No | Proxy URL. Formats: socks5://host:port, http://host:port, or bare host:port (defaults to HTTP). |
| pauth | string | No | Proxy credentials in user:pass format. |
| name | string | No | Lead first name. Filled into input[name=name], input[name=first_name], or input[id*=name]. |
| last | string | No | Lead last name. Currently passed but not separately filled (merged with name where applicable). |
| string | No | Email address. Filled into input[type=email], input[name=email], input[name=login], or input[id*=email]. |
|
| pass | string | No | Password. Filled into input[type=password]. |
| Status | Body | Meaning |
|---|---|---|
| 200 | {"success":true} |
Visit completed successfully. |
| 200 | {"success":false,"error":"..."} |
Visit attempted but failed (navigation error, timeout, etc.). |
| 400 | plain text | Malformed JSON body. |
| 403 | plain text | Wrong token in the URL path. |
| 503 | {"success":false,"error":"busy"} |
All workers are occupied. Retry later or increase visit.workers in config. |
Returns a simple status response. No authentication required. Use this to verify the server is running.
{"status":"ok"}
Use this command to send a test visit from the command line. Replace localhost:8765 and change-me with your server address and token.
curl -s -X POST http://localhost:8765/run/change-me \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/autologin",
"ip": "1.2.3.4",
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"geo": "ua",
"lang": "uk-UA,uk;q=0.9",
"referer": "",
"proxy": "socks5://proxy.host:1080",
"pauth": "user:pass",
"name": "Ivan",
"last": "Shevchenko",
"email": "ivan@example.com",
"pass": "secret123"
}'
The AlterCPA Autologiner hack module sends leads via a single URL with the |JSON| separator.
Everything after |JSON| is serialised as a JSON object and posted to the endpoint before it.
The server prints the ready-made URL on startup — copy it directly from the terminal.
http://YOUR-SERVER-IP:8765/run/change-me|JSON|url={url}&ip={ip}&ua={ua}&geo={geo}&lang={lang}&referer={referer}&proxy={proxy}&pauth={pauth}&name={name}&last={last}&email={email}&pass={pass}
localhost or 127.0.0.1. If they are on different machines, use the server's LAN IP or public IP, and make sure the firewall allows inbound TCP on port 8765.
The config file autologin-config.yaml is created automatically on first run. Edit it before the second launch.
server:
port: 8765 # HTTP port the server listens on
token: "change-me" # token in /run/{token}; empty string disables auth
browser:
type: vision # antidetect browser — only "vision" is supported currently
api_token: "" # Vision Browser API token (Vision → Settings)
local_url: "" # override Vision local API URL (default: http://127.0.0.1:3030)
visit:
timeout: 30 # page load timeout in seconds
headless: true # run browser in headless mode
wait_after: 3 # pause after page load (seconds) — simulates human reading
wait_after_max: 8 # random upper bound for wait_after
workers: 5 # maximum concurrent visits
log:
file: "" # log file path; empty = stdout
level: info # debug | info | warn | error