Profiles
Fresh Source: docs.airtop.aiProfiles 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
- Create a session with
persistProfile: true - Perform your login flow (manually via Live View or programmatically)
- Terminate the session with
saveProfileOnTermination - Next time, create a session with
profileNameto 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
- Go to portal.airtop.ai > Profiles
- Click Create Profile
- A live browser session opens — navigate and log in manually
- Click Save Profile and name it
- 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
- Name profiles descriptively —
linkedin-auth,gmail-work, notprofile1 - Rotate profiles if credentials change
- Use separate profiles per site/account
- Test profile restoration after saving to confirm it works
- Delete unused profiles to minimize stored credentials