Aller au contenu principal
Antybrowser
Documentation développeur

Référence de l'API REST

Référence complète de l'API REST d'Antybrowser. Gérez vos profils, navigateurs et paramètres par programmation.

Authentification

Toutes les requêtes d'API nécessitent une authentification via une clé d'API. Incluez votre clé dans l'en-tête Authorization sous forme de jeton Bearer.

Get a token by calling POST /api/login or POST /api/register.

URL de base

https://antybrowser.com

Toutes les requêtes d'API doivent être effectuées vers l'URL de base suivante. Assurez-vous d'utiliser HTTPS pour toutes les requêtes.

Authentication

Login, register, and manage your session.

POST/api/login

Log in

Authenticate with email and password. Returns a JWT token and sets an HTTP-only cookie. If 2FA is enabled, returns `{ requires2FA: true, tempUserId }` instead.

Request Body

{
  "email": "user@example.com",
  "password": "secret123",
  "twoFactorCode": "123456"  // optional, required if 2FA enabled
}

Response

{
  "id": 1,
  "name": "John",
  "email": "user@example.com",
  "plan": "free",
  "_token": "eyJhbGciOi..."
}
POST/api/register

Register

Create a new account.

Request Body

{
  "name": "John",
  "email": "user@example.com",
  "password": "secret123"
}

Response

{
  "id": 1,
  "name": "John",
  "email": "user@example.com",
  "plan": "free",
  "_token": "eyJhbGciOi..."
}
POST/api/auth/recover

Request password reset

Sends a password reset email to the given address.

Request Body

{
  "email": "user@example.com"
}

Response

{
  "message": "If an account exists, a reset link has been sent."
}
POST/api/auth/reset-password

Reset password

Resets the user's password using a valid reset token.

Request Body

{
  "token": "abc123...",
  "password": "newpass123"
}

Response

{
  "message": "Password reset successful"
}

User

Get, update, or delete the authenticated user.

GET/api/user

Get current user

Returns the authenticated user's profile. Accepts Bearer token (Electron) or auth_token cookie (web).

Response

{
  "id": 1,
  "name": "John",
  "email": "user@example.com",
  "plan": "free",
  "googleId": null,
  "microsoftId": null,
  "twoFactorEnabled": false,
  "newsletterSubscribed": true,
  "createdAt": "2025-01-15T..."
}
PUT/api/user

Update user

Update name, password, newsletter preference, messaging, or 2FA settings.

Request Body

{
  "name": "New Name",
  "password": "newpass",
  "newsletterSubscribed": true,
  "messagingApp": "telegram",
  "messagingHandle": "@username",
  "twoFactorEnabled": true
}

Response

{
  "id": 1,
  "name": "New Name",
  "email": "user@example.com",
  "plan": "free"
}
DELETE/api/user

Delete account

Permanently deletes the authenticated user and all associated data.

Response

(204 No Content)

Two-Factor Authentication

Set up, verify, and disable TOTP-based 2FA.

POST/api/user/2fa/setup

Generate 2FA secret

Generates a new TOTP secret and provisioning URI. The secret is stored temporarily ΓÇö call verify to activate.

Response

{
  "secret": "JBSWY3DPEHPK3PXP",
  "uri": "otpauth://totp/Antybrowser:user@example.com?..."
}
POST/api/user/2fa/verify

Enable 2FA

Verifies a TOTP code and enables 2FA for the account. Must call setup first.

Request Body

{
  "code": "123456"
}

Response

{
  "message": "2FA enabled successfully"
}
POST/api/user/2fa/disable

Disable 2FA

Disables 2FA after verifying a valid TOTP code. Clears the stored secret.

Request Body

{
  "code": "123456"
}

Response

{
  "message": "2FA disabled successfully"
}
POST/api/user/2fa/validate

Validate 2FA code

Validates a TOTP code during login. Returns user data on success.

Request Body

{
  "userId": 1,
  "code": "123456"
}

Response

{
  "id": 1,
  "name": "John",
  "email": "user@example.com"
}

Linked Accounts

Link and unlink Google / Microsoft accounts.

GET/api/user/link/google

Link Google account

Redirects to Google OAuth. After authorization, the Google account is linked to the current user. Must be logged in (cookie required).

Response

(302 Redirect to Google OAuth)
GET/api/user/link/microsoft

Link Microsoft account

Redirects to Microsoft OAuth. After authorization, the Microsoft account is linked to the current user.

Response

(302 Redirect to Microsoft OAuth)
DELETE/api/user/link

Unlink provider

Removes a linked provider. Refuses if it's the only login method (no password and no other provider linked).

Request Body

{
  "provider": "google"  // or "microsoft"
}

Response

{
  "id": 1,
  "name": "John",
  "googleId": null,
  "microsoftId": "ms-uuid-..."
}

Profiles

Create, update, launch, and manage browser profiles.

GET/api/profiles

List profiles

Returns all profiles for the authenticated user.

Response

[
  {
    "id": 1,
    "name": "My Profile",
    "browserType": "Chrome",
    "osFingerprint": "Windows",
    "status": "Idle",
    "proxyId": null,
    "groupId": null
  }
]
GET/api/profiles/:id

Get profile

Returns a single profile by ID.

Response

{
  "id": 1,
  "name": "My Profile",
  "browserType": "Chrome",
  "screenResolution": "1920x1080",
  "language": "en-US",
  "timezone": "America/New_York"
}
POST/api/profiles

Create profile

Creates a new browser profile.

Request Body

{
  "name": "My Profile",
  "browserType": "Chrome",
  "osFingerprint": "Windows",
  "screenResolution": "1920x1080",
  "language": "en-US",
  "timezone": "America/New_York",
  "groupId": null,
  "proxyId": null
}

Response

{
  "id": 1,
  "name": "My Profile",
  "status": "Idle",
  "createdAt": "2025-01-15T..."
}
PUT/api/profiles/:id

Update profile

Updates an existing profile. Only provided fields are changed.

Request Body

{
  "name": "Renamed Profile",
  "proxyId": 5,
  "notes": "Updated notes"
}

Response

{
  "id": 1,
  "name": "Renamed Profile",
  "proxyId": 5
}
DELETE/api/profiles/:id

Trash profile

Moves a profile to trash (soft delete).

Response

{
  "message": "Profile moved to trash",
  "profile": { "id": 1, "trash": true }
}
POST/api/profiles/:id/restore

Restore profile

Restores a trashed profile.

Response

{
  "id": 1,
  "name": "My Profile",
  "trash": false
}
GET/api/profiles/trash

List trashed profiles

Returns all profiles in trash.

Response

[
  { "id": 1, "name": "Old Profile", "trash": true }
]
DELETE/api/profiles/trash

Empty trash

Permanently deletes all trashed profiles.

Response

{
  "deleted": 3,
  "message": "3 profiles permanently deleted"
}
POST/api/profiles/:id/launch

Launch profile

Starts a browser instance for the given profile.

Response

{
  "message": "Profile launched",
  "status": "Running"
}
POST/api/profiles/:id/randomize

Randomize fingerprint

Generates new random fingerprint data for the profile.

Response

{
  "id": 1,
  "osFingerprint": "macOS",
  "screenResolution": "1440x900"
}
GET/api/profiles/:id/history

Get profile history

Returns the event history for a profile.

Response

[
  {
    "id": 1,
    "profileId": 1,
    "type": "launch",
    "description": "Profile launched",
    "createdAt": "2025-01-15T..."
  }
]
POST/api/profiles/:id/history

Add history entry

Adds a custom entry to the profile's history.

Request Body

{
  "type": "custom",
  "description": "Manually added note",
  "data": { "key": "value" }
}

Response

{ "success": true }

Groups

Organize profiles into named groups.

GET/api/groups

List groups

Returns all groups for the authenticated user.

Response

[
  {
    "id": 1,
    "name": "Social Media",
    "color": "blue",
    "displayOrder": 0
  }
]
POST/api/groups

Create group

Creates a new profile group.

Request Body

{
  "name": "Social Media",
  "description": "Social media accounts",
  "color": "blue"
}

Response

{
  "id": 1,
  "name": "Social Media",
  "color": "blue"
}
PUT/api/groups/:id

Update group

Updates a group's name, description, or color.

Request Body

{
  "name": "Renamed Group",
  "color": "red"
}

Response

{
  "id": 1,
  "name": "Renamed Group",
  "color": "red"
}
DELETE/api/groups/:id

Delete group

Deletes a group. Profiles in the group are not deleted.

Response

(204 No Content)
POST/api/groups/reorder

Reorder groups

Sets the display order of groups by providing an ordered array of IDs.

Request Body

{
  "ids": [3, 1, 2]
}

Response

{ "success": true }

Proxies

Manage proxy servers for profiles.

GET/api/proxies

List proxies

Returns all proxies for the authenticated user.

Response

[
  {
    "id": 1,
    "name": "US Residential",
    "type": "http",
    "host": "proxy.example.com",
    "port": 8080,
    "status": "active",
    "country": "United States",
    "ip": "1.2.3.4"
  }
]
GET/api/proxies/:id

Get proxy

Returns a single proxy by ID.

Response

{
  "id": 1,
  "name": "US Residential",
  "type": "socks5",
  "host": "proxy.example.com",
  "port": 1080,
  "username": "user",
  "status": "active"
}
POST/api/proxies

Create proxy

Adds a new proxy.

Request Body

{
  "name": "US Residential",
  "type": "http",
  "host": "proxy.example.com",
  "port": 8080,
  "username": "user",
  "password": "pass"
}

Response

{
  "id": 1,
  "name": "US Residential",
  "status": "active"
}
PUT/api/proxies/:id

Update proxy

Updates a proxy's configuration.

Request Body

{
  "name": "Renamed Proxy",
  "host": "new-proxy.example.com"
}

Response

{
  "id": 1,
  "name": "Renamed Proxy",
  "host": "new-proxy.example.com"
}
DELETE/api/proxies/:id

Delete proxy

Permanently deletes a proxy.

Response

(204 No Content)
POST/api/proxies/:id/save-check

Save check result

Saves the result of a proxy connectivity check.

Request Body

{
  "success": true,
  "details": {
    "ip": "1.2.3.4",
    "country": "United States",
    "isp": "Comcast"
  }
}

Response

{
  "id": 1,
  "status": "active",
  "ip": "1.2.3.4"
}

Proxy Providers

Manage saved proxy provider credentials.

GET/api/proxy-providers

List providers

Returns all saved proxy providers.

Response

[
  {
    "id": 1,
    "provider": "brightdata",
    "username": "user",
    "countryCode": "US"
  }
]
GET/api/proxy-providers/:provider

Get provider

Returns credentials for a specific provider.

Response

{
  "id": 1,
  "provider": "brightdata",
  "username": "user",
  "password": "***",
  "countryCode": "US"
}
POST/api/proxy-providers/:provider

Create or update provider

Creates or updates proxy provider credentials (upsert).

Request Body

{
  "username": "myuser",
  "password": "mypass",
  "countryCode": "US"
}

Response

{
  "id": 1,
  "provider": "brightdata",
  "username": "myuser"
}

Extensions

Manage browser extensions.

GET/api/extensions

List extensions

Returns all extensions.

Response

[
  {
    "id": 1,
    "name": "AdBlock",
    "description": "Blocks ads",
    "version": "5.0.0"
  }
]
POST/api/extensions

Create extension

Adds a new extension.

Request Body

{
  "name": "AdBlock",
  "description": "Blocks ads",
  "icon": "shield"
}

Response

{
  "id": 1,
  "name": "AdBlock"
}
DELETE/api/extensions/:id

Delete extension

Permanently deletes an extension.

Response

(204 No Content)

Settings

Read and update application settings.

GET/api/settings

Get settings

Returns the current user's application settings.

Response

{
  "chromePath": "C:\\Program Files\\Google\\Chrome\\chrome.exe",
  "defaultBrowserType": "Chrome",
  "defaultOsFingerprint": "Windows",
  "defaultScreenResolution": "1920x1080",
  "defaultLanguage": "en-US",
  "hardwareAcceleration": true,
  "lowBandwidth": false
}
POST/api/settings

Update settings

Updates application settings. Only provided fields are changed.

Request Body

{
  "defaultBrowserType": "Chrome",
  "defaultScreenResolution": "1440x900",
  "hardwareAcceleration": false
}

Response

{
  "defaultBrowserType": "Chrome",
  "defaultScreenResolution": "1440x900",
  "hardwareAcceleration": false
}

User Agents

Manage browser user-agent versions.

GET/api/user-agents/versions

List user agents

Returns all stored user-agent brand/version pairs.

Response

[
  { "id": 1, "brand": "Chrome", "version": "131.0.6778.86" },
  { "id": 2, "brand": "Firefox", "version": "133.0" }
]
POST/api/user-agents/versions

Update user agent

Creates or updates a user-agent brand/version entry.

Request Body

{
  "brand": "Chrome",
  "version": "131.0.6778.86"
}

Response

{
  "id": 1,
  "brand": "Chrome",
  "version": "131.0.6778.86"
}

Limites de débit

Les requêtes d'API sont limitées à 120 requêtes par minute et par clé d'API. Les en-têtes de limite de débit sont inclus dans toutes les réponses.