Skip to content

Profiles

Fresh Source: docs.airtop.ai

Profiles let you save and restore authenticated browser sessions. Once you log into a site, save the profile and reuse it later without re-authenticating.

How Profiles Work

  1. Create a session with persistProfile: true
  2. Perform your login flow (manually via Live View or programmatically)
  3. Terminate the session with saveProfileOnTermination
  4. Next time, create a session with profileName to restore

All profile data is AES-256 encrypted at rest.

Saving a Profile

Programmatic Method

typescript
// Step 1: Create session with profile persistence enabled
const session = await client.sessions.create({
  configuration: {
    timeoutMinutes: 15,
    persistProfile: true,
  },
});
const sessionId = session.data.id;

// Step 2: Load the login page
const window = await client.windows.create(sessionId, {
  url: 'https://example.com/login',
});
const windowId = window.data.windowId;

// Step 3: Fill and submit login form
await client.windows.type(sessionId, windowId, {
  elementDescription: 'email input field',
  text: 'user@example.com',
});
await client.windows.type(sessionId, windowId, {
  elementDescription: 'password input field',
  text: 'my-password',
});
await client.windows.click(sessionId, windowId, {
  elementDescription: 'sign in button',
});

// Step 4: Terminate and save profile
await client.sessions.terminate(sessionId, {
  saveProfileOnTermination: 'my-login-profile',
});
python
# Step 1: Create session with profile persistence enabled
session = client.sessions.create(
    configuration={
        "timeoutMinutes": 15,
        "persistProfile": True,
    }
)
session_id = session.data.id

# Step 2: Load the login page
window = client.windows.create(
    session_id, url="https://example.com/login"
)
window_id = window.data.window_id

# Step 3: Fill and submit login form
client.windows.type(session_id, window_id,
    element_description="email input field",
    text="user@example.com"
)
client.windows.type(session_id, window_id,
    element_description="password input field",
    text="my-password"
)
client.windows.click(session_id, window_id,
    element_description="sign in button"
)

# Step 4: Terminate and save profile
client.sessions.terminate(
    session_id,
    save_profile_on_termination="my-login-profile"
)

Dashboard UI Method

  1. Go to portal.airtop.ai > Profiles
  2. Click Create Profile
  3. A live browser session opens — navigate and log in manually
  4. Click Save Profile and name it
  5. The profile is now available for programmatic use

Restoring a Profile

typescript
const session = await client.sessions.create({
  configuration: {
    profileName: 'my-login-profile',
    timeoutMinutes: 10,
  },
});
// Session starts with the saved cookies, localStorage, etc.
python
session = client.sessions.create(
    configuration={
        "profileName": "my-login-profile",
        "timeoutMinutes": 10,
    }
)
# Session starts with the saved cookies, localStorage, etc.

Deleting a Profile

typescript
await client.profiles.delete('my-login-profile');
python
client.profiles.delete("my-login-profile")

Security

  • All profile data encrypted with AES-256 at rest
  • Profiles are scoped to your API key — no cross-account access
  • Sessions using profiles are fully isolated
  • Profile data includes cookies, localStorage, sessionStorage, and browser state

Best Practices

  1. Name profiles descriptivelylinkedin-auth, gmail-work, not profile1
  2. Rotate profiles if credentials change
  3. Use separate profiles per site/account
  4. Test profile restoration after saving to confirm it works
  5. Delete unused profiles to minimize stored credentials

Unofficial SOP documentation for Airtop