Appearance
Bulk Profile Operations
Workflows for creating, configuring, and managing large numbers of browser profiles.
Bulk Creation Pipeline
Python Bulk Creation
python
import requests
import time
BASE_URL = "https://api.multilogin.com"
COOKIES_URL = "https://cookies.multilogin.com"
def bulk_create(token, folder_id, count, prefix="auto",
browser_type="mimic", proxies=None):
"""Create multiple profiles with optional proxy rotation."""
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
created = []
for i in range(count):
proxy_config = {"type": "none"}
if proxies:
p = proxies[i % len(proxies)]
proxy_config = {
"type": p["type"],
"host": p["host"],
"port": p["port"],
"username": p.get("username", ""),
"password": p.get("password", "")
}
resp = requests.post(f"{BASE_URL}/profile/create",
headers=headers,
json={
"name": f"{prefix}-{i+1:04d}",
"browser_type": browser_type,
"os_type": "windows",
"folder_id": folder_id,
"parameters": {
"fingerprint": {
"flags": {
"audio_masking": "mask",
"fonts_masking": "mask",
"media_devices_masking": "mask",
"graphics_masking": "mask",
"graphics_noise": "mask",
"webrtc_masking": "mask",
"geolocation_masking": "mask",
"timezone_masking": "mask",
"locale_masking": "mask"
}
},
"storage": {"is_local": False},
"proxy": proxy_config
}
})
if resp.status_code == 200:
pid = resp.json()["data"]["ids"][0]
created.append(pid)
print(f"[{i+1}/{count}] Created: {pid}")
elif resp.status_code == 429:
print("Rate limited. Waiting 5s...")
time.sleep(5)
else:
print(f"[{i+1}/{count}] Failed: {resp.status_code}")
# Small delay to avoid rate limits
time.sleep(0.5)
return createdBulk Operations
Move All Profiles to Folder
bash
curl -X POST https://api.multilogin.com/profile/move \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"profile_ids": ["UUID1","UUID2","UUID3"], "folder_id": "TARGET_FOLDER"}'Delete Multiple Profiles
bash
curl -X POST https://api.multilogin.com/profile/remove \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"profile_ids": ["UUID1","UUID2","UUID3"], "permanently": false}'Clone Profile Multiple Times
bash
curl -X POST https://api.multilogin.com/profile/clone \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"profile_id": "SOURCE_UUID", "count": 10}'Batch Automation with Script Runner
Run the same script across multiple profiles simultaneously:
bash
curl -X POST https://launcher.mlx.yt:45001/api/v1/run_script \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"script_file": "warm_profile.py",
"profile_ids": [
{"profile_id": "UUID1", "is_headless": true},
{"profile_id": "UUID2", "is_headless": true},
{"profile_id": "UUID3", "is_headless": true}
]
}'Rate Limit Handling
Best Practices
- Create profiles in batches of 10-20, not hundreds at once
- Add 0.5-1s delays between API calls to avoid rate limits
- Rotate proxies across profiles for geographic diversity
- Apply cookies before first use for session warming
- Use headless mode for bulk automation to save resources
- Always handle 429 responses with exponential backoff