API Reference

Profiles API

Complete Profiles API reference. Create, list, update, delete, and launch browser profiles programmatically. Full REST API endpoints with code examples.

David Martinez
8 min read

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/profiles

Include your API key in the Authorization header. See API Authentication for details.

List All Profiles

Retrieve all profiles in your account.

Endpoint:

GET /v1/profiles

Query Parameters:

ParameterTypeDescription
limitintegerNumber of results per page (default: 50, max: 100)
offsetintegerPagination offset (default: 0)
tagsstringFilter by tags (comma-separated: "facebook,active")
sortstringSort field (created_at, updated_at, name)
orderstringSort 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/profiles

Request 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/:id

Example 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/:id

Example 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/:id

Example 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/launch

Request 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/stop

Example 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/bulk

Request 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 - Success
  • 201 - Created
  • 400 - Bad Request (invalid parameters)
  • 401 - Unauthorized (invalid API key)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Not Found (profile doesn't exist)
  • 429 - Rate Limit Exceeded
  • 500 - 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"]
  }
}

Manage Proxies via API

Profile automation configured. Now manage proxies programmatically. Add, update, test, and rotate proxies through the Proxies API.

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.