Profiles API
Complete Profiles API reference. Create, list, update, delete, and launch browser profiles programmatically. Full REST API endpoints with code examples.
Automate profile management with the Profiles API. Create hundreds of profiles in seconds. Launch browsers programmatically. Integrate Multilogin into your workflow.
Base URL and Authentication
All profile endpoints use this base URL:
https://api.multilogin.io/v1/profilesInclude your API key in the Authorization header. See API Authentication for details.
List All Profiles
Retrieve all profiles in your account.
Endpoint:
GET /v1/profilesQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of results per page (default: 50, max: 100) |
offset | integer | Pagination offset (default: 0) |
tags | string | Filter by tags (comma-separated: "facebook,active") |
sort | string | Sort field (created_at, updated_at, name) |
order | string | Sort direction (asc, desc) |
Example Request:
const response = await fetch('https://api.multilogin.io/v1/profiles?limit=10&tags=facebook', {
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();Response:
{
"success": true,
"data": [
{
"id": "prof_abc123",
"name": "Facebook Account 1",
"browser": "chromium",
"fingerprint_template": "social_media",
"proxy": {
"protocol": "socks5",
"host": "proxy.provider.com",
"port": 1080
},
"tags": ["facebook", "active"],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-01T14:22:00Z"
}
],
"pagination": {
"total": 125,
"limit": 10,
"offset": 0,
"has_more": true
}
}Create a Profile
Create a new browser profile with specified configuration.
Endpoint:
POST /v1/profilesRequest Body:
{
"name": "Amazon Seller Account 1",
"browser": "chromium",
"fingerprint_template": "ecommerce",
"os": "windows",
"screen_resolution": "1920x1080",
"timezone": "America/New_York",
"geolocation": {
"latitude": 40.7128,
"longitude": -74.0060
},
"proxy": {
"protocol": "socks5",
"host": "proxy.provider.com",
"port": 1080,
"username": "user123",
"password": "pass456"
},
"tags": ["amazon", "seller", "us-east"]
}Example Request:
const response = await fetch('https://api.multilogin.io/v1/profiles', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: "Instagram Influencer 1",
browser: "chromium",
fingerprint_template: "social_media",
os: "macos",
proxy: {
protocol: "socks5",
host: "mobile-proxy.com",
port: 1080
},
tags: ["instagram", "influencer"]
})
});
const data = await response.json();Response:
{
"success": true,
"data": {
"id": "prof_xyz789",
"name": "Instagram Influencer 1",
"browser": "chromium",
"fingerprint_template": "social_media",
"status": "active",
"created_at": "2024-02-18T09:15:00Z"
}
}Get a Profile
Retrieve details of a specific profile.
Endpoint:
GET /v1/profiles/:idExample Request:
const response = await fetch('https://api.multilogin.io/v1/profiles/prof_abc123', {
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});Response:
{
"success": true,
"data": {
"id": "prof_abc123",
"name": "Facebook Account 1",
"browser": "chromium",
"fingerprint_template": "social_media",
"os": "windows",
"screen_resolution": "1920x1080",
"timezone": "America/New_York",
"geolocation": {
"latitude": 40.7128,
"longitude": -74.0060
},
"proxy": {
"protocol": "socks5",
"host": "proxy.provider.com",
"port": 1080,
"username": "user123"
},
"tags": ["facebook", "active"],
"status": "active",
"last_launched": "2024-02-18T08:00:00Z",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-18T08:00:00Z"
}
}Update a Profile
Update existing profile configuration. Only include fields you want to change.
Endpoint:
PATCH /v1/profiles/:idExample Request:
const response = await fetch('https://api.multilogin.io/v1/profiles/prof_abc123', {
method: 'PATCH',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: "Facebook Account 1 (Updated)",
tags: ["facebook", "active", "high-priority"],
proxy: {
host: "new-proxy.provider.com"
}
})
});Response:
{
"success": true,
"data": {
"id": "prof_abc123",
"name": "Facebook Account 1 (Updated)",
"updated_at": "2024-02-18T10:45:00Z"
}
}Delete a Profile
Permanently delete a profile. This cannot be undone.
Endpoint:
DELETE /v1/profiles/:idExample Request:
const response = await fetch('https://api.multilogin.io/v1/profiles/prof_abc123', {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});Response:
{
"success": true,
"message": "Profile deleted successfully"
}⚠️ Warning
Deleting a profile removes all associated data: cookies, local storage, history, bookmarks. This action cannot be reversed. Consider archiving instead.
Launch a Profile
Launch a browser session for a profile. Returns WebSocket URL for browser control.
Endpoint:
POST /v1/profiles/:id/launchRequest Body (Optional):
{
"headless": false,
"window_size": "1920x1080",
"args": ["--disable-blink-features=AutomationControlled"]
}Example Request:
const response = await fetch('https://api.multilogin.io/v1/profiles/prof_abc123/launch', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
headless: false
})
});
const data = await response.json();
const wsUrl = data.data.ws_url;
// Connect with Puppeteer or Playwright
const browser = await puppeteer.connect({
browserWSEndpoint: wsUrl
});Response:
{
"success": true,
"data": {
"session_id": "sess_def456",
"ws_url": "ws://localhost:54321/devtools/browser/abc-123-def-456",
"http_url": "http://localhost:54321",
"status": "running"
}
}Stop a Profile
Close a running browser session.
Endpoint:
POST /v1/profiles/:id/stopExample Request:
await fetch('https://api.multilogin.io/v1/profiles/prof_abc123/stop', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});Response:
{
"success": true,
"message": "Profile session stopped successfully"
}Bulk Operations
Create multiple profiles in a single request.
Endpoint:
POST /v1/profiles/bulkRequest Body:
{
"profiles": [
{
"name": "Facebook Account 1",
"browser": "chromium",
"fingerprint_template": "social_media"
},
{
"name": "Facebook Account 2",
"browser": "chromium",
"fingerprint_template": "social_media"
}
]
}Response:
{
"success": true,
"data": {
"created": 2,
"failed": 0,
"profiles": [
{"id": "prof_aaa111", "name": "Facebook Account 1"},
{"id": "prof_bbb222", "name": "Facebook Account 2"}
]
}
}Error Handling
API returns standard HTTP status codes:
200- Success201- Created400- Bad Request (invalid parameters)401- Unauthorized (invalid API key)403- Forbidden (insufficient permissions)404- Not Found (profile doesn't exist)429- Rate Limit Exceeded500- Internal Server Error
Error response format:
{
"success": false,
"error": {
"code": "validation_error",
"message": "Invalid fingerprint template",
"param": "fingerprint_template",
"valid_values": ["ecommerce", "social_media", "general"]
}
}David Martinez
API Documentation Lead
David Martinez writes API documentation at Multilogin.io. He's documented 50+ API endpoints and improved developer onboarding time from 2 hours to 20 minutes.