### Start a Browser Profile (GET) Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md Use a GET request to start a browser profile. Replace {folderId} and {profileId} with your specific identifiers. ```http GET http://127.0.0.1:3030/start/{folderId}/{profileId} ``` -------------------------------- ### Start Browser Profile (Simple GET) Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Starts a browser profile using a simple GET request. This method is suitable when no additional Chrome arguments are required. ```bash # Simple GET start (no extra args) curl "http://127.0.0.1:3030/start/your_folder_id/your_profile_id" ``` -------------------------------- ### Start a Browser Profile (POST with Options) Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md Use a POST request to start a browser profile with custom arguments. The request body must be JSON. ```http POST http://127.0.0.1:3030/start/{folderId}/{profileId} Content-Type: application/json ``` ```json { "args": ["--headless"] } ``` -------------------------------- ### Start a Profile Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md Starts a browser profile. Can be initiated with a GET request or a POST request with options. ```APIDOC ## Start a Profile ### GET Request ``` GET http://127.0.0.1:3030/start/{folderId}/{profileId} ``` ### POST Request (with options) ``` POST http://127.0.0.1:3030/start/{folderId}/{profileId} Content-Type: application/json ``` **Example body:** ```json { "args": ["--headless"] } ``` ``` -------------------------------- ### Response Example: Running Profiles Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md This is an example of the JSON response when listing running profiles. It includes folder ID, profile ID, and the assigned port for each profile. ```json { "profiles": [ { "folder_id": "uuid-folder", "profile_id": "uuid-profile", "port": 9222 } ] } ``` -------------------------------- ### Response Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md Example structure of the response when listing running profiles. ```APIDOC ## Response Example ```json { "profiles": [ { "folder_id": "uuid-folder", "profile_id": "uuid-profile", "port": 9222 } ] } ``` ``` -------------------------------- ### Start Browser Profile Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Starts a specified browser profile, optionally with custom arguments like a debugging port. ```APIDOC ## POST /start/{folder_id}/{profile_id} ### Description Starts a browser profile. This is often used to initiate a session that can then be connected to via DevTools Protocol. ### Method POST ### Endpoint `http://127.0.0.1:3030/start/{folder_id}/{profile_id}` ### Path Parameters - **folder_id** (string) - Required - The ID of the folder containing the profile. - **profile_id** (string) - Required - The ID of the profile to start. ### Request Body - **args** (array of strings) - Optional - Arguments to pass to the browser instance, such as `--remote-debugging-port=PORT`. ### Request Example ```json { "args": [ "--remote-debugging-port=9222" ] } ``` ``` -------------------------------- ### Get Status List - Python Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/05_statuses/get-status-list.md Use this Python script to make a GET request to the statuses endpoint. Ensure you replace 'your_token_here' with your actual API token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/statuses", headers=headers) print(response.json()) ``` -------------------------------- ### Python Example to Get Proxy List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/04_proxy/get-proxy-list.md This Python script demonstrates how to make a request to the proxy list endpoint and print the JSON response. Replace 'your_token_here' with your actual API token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/proxy", headers=headers) print(response.json()) ``` -------------------------------- ### Profile Info Response Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-profile-info.md This is an example of the JSON response you will receive when successfully retrieving profile information. ```json { "id": "profile-id", "name": "Test Profile", "browser": "chrome", "created_at": "2024-01-01T12:00:00Z", "tags": ["automation", "test"] } ``` -------------------------------- ### Python Example: Using Auth Headers Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/auth.md This example demonstrates how to include authentication tokens in the headers of an HTTP request using Python's `requests` library. ```APIDOC ## Python Example: Using Auth Headers ### Description This example demonstrates how to include authentication tokens in the headers of an HTTP request using Python's `requests` library. ### Code ```python import requests headers = { "X-Token": "your_token_here", "X-Team-Token": "your_team_token_here" # optional } response = requests.get("https://api.browser.vision/api/folders", headers=headers) print(response.json()) ``` ``` -------------------------------- ### Get Profile Info - Python Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-profile-info.md Use this Python script to make a GET request to the Vision API to retrieve a specific browser profile's details. Ensure you replace 'your_profile_id' and 'your_token_here' with your actual values. ```python import requests profile_id = "your_profile_id" url = f"https://api.browser.vision/api/profiles/{profile_id}" headers = {"X-Token": "your_token_here"} response = requests.get(url, headers=headers) print(response.json()) ``` -------------------------------- ### Authentication Example Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Demonstrates how to authenticate API requests using X-Token and optionally X-Team-Token headers. ```APIDOC ## Authentication All API requests require the `X-Token` header. The optional `X-Team-Token` header is used when accessing shared team resources. ```python import requests headers = { "X-Token": "your_token_here", "X-Team-Token": "your_team_token_here" # only required in team mode } response = requests.get("https://api.browser.vision/api/folders", headers=headers) if response.status_code == 401: print("Unauthorized: check your X-Token") else: print(response.json()) # Expected: [{"id": "folder-uuid", "name": "Marketing", "team_id": "team-uuid", "profiles_count": 12}] ``` ``` -------------------------------- ### Start a Profile Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Launches a browser profile via the local daemon. Supports passing additional Chrome arguments. ```APIDOC ## POST /start/{folder_id}/{profile_id} ### Description Launches a browser profile via the local daemon. A POST request supports passing additional Chrome args such as `--headless` or `--remote-debugging-port`. ### Method POST ### Endpoint /start/{folder_id}/{profile_id} ### Parameters #### Path Parameters - **folder_id** (string) - Required - The ID of the folder containing the profile. - **profile_id** (string) - Required - The ID of the profile to start. #### Request Body - **args** (array of strings) - Optional - Additional arguments to pass to the browser process (e.g., Chrome args). ### Request Example ```python import requests folder_id = "your_folder_id" profile_id = "your_profile_id" # Start with remote debugging enabled for CDP automation response = requests.post( f"http://127.0.0.1:3030/start/{folder_id}/{profile_id}", json={"args": ["--remote-debugging-port=9222"]} ) print(response.json()) ``` ### Response #### Success Response (200) - **profiles** (array of objects) - Information about the started browser profiles. - **folder_id** (string) - The ID of the folder. - **profile_id** (string) - The ID of the profile. - **port** (number) - The port the browser is listening on (if applicable). #### Response Example ```json { "profiles": [ { "folder_id": "uuid-folder", "profile_id": "uuid-profile", "port": 9222 } ] } ``` ``` ```APIDOC ## GET /start/{folder_id}/{profile_id} ### Description Launches a browser profile via the local daemon using a simple GET request (no additional arguments). ### Method GET ### Endpoint /start/{folder_id}/{profile_id} ### Parameters #### Path Parameters - **folder_id** (string) - Required - The ID of the folder containing the profile. - **profile_id** (string) - Required - The ID of the profile to start. ### Request Example ```bash curl "http://127.0.0.1:3030/start/your_folder_id/your_profile_id" ``` ### Response #### Success Response (200) - **profiles** (array of objects) - Information about the started browser profiles. - **folder_id** (string) - The ID of the folder. - **profile_id** (string) - The ID of the profile. - **port** (number) - The port the browser is listening on (if applicable). #### Response Example ```json { "profiles": [ { "folder_id": "uuid-folder", "profile_id": "uuid-profile", "port": 3030 } ] } ``` ``` -------------------------------- ### Response Example for Proxy List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/04_proxy/get-proxy-list.md This is an example of the JSON response you will receive when successfully retrieving a list of proxies. It includes details like ID, host, port, type, and status. ```json [ { "id": "proxy-id", "host": "123.456.789.0", "port": 8080, "type": "http", "status": "active" } ] ``` -------------------------------- ### Example Authentication Headers Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/auth.md Include these headers in your HTTP requests for authentication. The `X-Team-Token` is only necessary when team collaboration mode is active. ```text X-Token: your_token_here X-Team-Token: your_team_token_here # only when required ``` -------------------------------- ### Python Example for Creating a Proxy Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/04_proxy/create-proxy.md Demonstrates how to use the requests library in Python to send a POST request to create a new proxy. Includes setting up the URL, headers, and request data. ```python import requests url = 'https://api.browser.vision/api/proxies' headers = { 'X-Token': 'your_token_here' } data = { "type": "http", "ip": "192.168.0.1", "port": 8080, "login": "user", "password": "pass" } response = requests.post(url, json=data, headers=headers) print(response.json()) ``` -------------------------------- ### Example Fingerprint Response Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-new-fingerprint.md This is an example of the JSON response you will receive when requesting a new fingerprint. It includes details like user agent, platform, language, and timezone. ```json { "fingerprint": { "userAgent": "Mozilla/5.0...", "platform": "Win32", "language": "en-US", "timezone": "America/New_York" } } ``` -------------------------------- ### Status List Response Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/05_statuses/get-status-list.md This is an example of the JSON response you will receive when successfully retrieving a list of statuses. Each status object contains an ID, name, and color. ```json [ { "id": "status-id", "name": "Pending", "color": "#FFA500" } ] ``` -------------------------------- ### Python Example: List Running Profiles Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md This Python script uses the requests library to list running browser profiles. Ensure you replace 'your_token_here' with your actual authentication token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("http://127.0.0.1:3030/list", headers=headers) print(response.json()) ``` -------------------------------- ### Connect and Automate with Pyppeteer (Python) Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Starts a browser profile and connects to its CDP endpoint using Pyppeteer for asynchronous browser automation. Requires profile identifiers. ```python import asyncio import requests from pyppeteer import connect FOLDER_ID = "your_folder_id" PROFILE_ID = "your_profile_id" # Start the profile first requests.post( f"http://127.0.0.1:3030/start/{FOLDER_ID}/{PROFILE_ID}", json={"args": ["--remote-debugging-port=9222"]} ) async def automate(): browser = await connect(browserURL="http://127.0.0.1:9222") page = await browser.newPage() await page.goto("https://example.com") title = await page.title() print(f"Page title: {title}") await browser.disconnect() asyncio.get_event_loop().run_until_complete(automate()) ``` -------------------------------- ### Python Example for Creating a Tag Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/06_tags/create-tag.md This Python script demonstrates how to send a POST request to create a new tag with the specified name and color. ```python import requests headers = {"X-Token": "your_token_here"} data = { "name": "automation", "color": "#FFD700" } response = requests.post("https://api.browser.vision/api/tags", json=data, headers=headers) print(response.json()) ``` -------------------------------- ### Get Profiles List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-profiles-list.md Retrieves all profiles under a specified folder. Requires authentication with an X-Token. ```APIDOC ## GET /api/folders/{folder_id}/profiles ### Description Returns all profiles under a specified folder. ### Method GET ### Endpoint https://api.browser.vision/api/folders/{folder_id}/profiles ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the profile. - **name** (string) - The name of the profile. - **status** (string) - The current status of the profile (e.g., "active"). - **browser** (string) - The browser associated with the profile. - **created_at** (string) - The timestamp when the profile was created. ### Response Example ```json [ { "id": "profile-id", "name": "Profile 1", "status": "active", "browser": "chrome", "created_at": "2024-01-01T12:00:00Z" } ] ``` ``` -------------------------------- ### Get New Fingerprint Configuration (Python) Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-new-fingerprint.md Use this Python script to make a GET request to the fingerprint endpoint. Ensure you include your authentication token in the headers. The response contains a new fingerprint object. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/profiles/fingerprint", headers=headers) print(response.json()) ``` -------------------------------- ### Fetch Folders Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/about-api.md This example demonstrates how to fetch a list of folders using the Browser Vision API with Python and the requests library. It includes the necessary authentication headers. ```APIDOC ## GET /api/folders ### Description Fetches a list of all available folders. ### Method GET ### Endpoint /api/folders ### Parameters #### Headers - **X-Token** (string) - Required - Authentication token for API requests. - **X-Team-Token** (string) - Optional - Authentication token for team mode. ### Response #### Success Response (200) - **folders** (array) - A list of folder objects. - **id** (string) - The unique identifier for the folder. - **name** (string) - The name of the folder. ### Response Example ```json { "folders": [ { "id": "folder_123", "name": "My First Folder" } ] } ``` ``` -------------------------------- ### Get Tag List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/06_tags/get-tag-list.md Fetches a list of all available tags in the account. ```APIDOC ## GET /api/tags ### Description Retrieve all tags available in your account. ### Method GET ### Endpoint https://api.browser.vision/api/tags ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - **id** (string) - The unique identifier for the tag. - **name** (string) - The name of the tag. - **color** (string) - The color associated with the tag (hex format). ### Response Example ```json [ { "id": "tag-id", "name": "automation", "color": "#FFD700" } ] ``` ``` -------------------------------- ### Get Folder List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/02_folders/get-folder-list.md Retrieves all folders accessible by the user. ```APIDOC ## Get Folder List ### Description Retrieves all folders accessible by the user. ### Method GET ### Endpoint https://api.browser.vision/api/folders ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the folder. - **name** (string) - The name of the folder. - **team_id** (string) - The identifier of the team the folder belongs to. - **profiles_count** (integer) - The number of profiles within the folder. ### Response Example ```json [ { "id": "folder-uuid", "name": "Marketing", "team_id": "team-uuid", "profiles_count": 12 } ] ``` ``` -------------------------------- ### Automate Browser with Pyppeteer Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/base-automation.md Connect to a running browser instance using Pyppeteer and navigate to a URL. Ensure the browser is started with a remote debugging port. ```python import asyncio from pyppeteer import connect async def main(): browser = await connect(browserURL='http://127.0.0.1:9222') page = await browser.newPage() await page.goto('https://example.com') await browser.disconnect() asyncio.get_event_loop().run_until_complete(main()) ``` -------------------------------- ### Example Cookie Response Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/export-cookies.md This is an example of the JSON response structure when exporting cookies. It includes details like domain, name, value, path, expiration, and security flags. ```json { "cookies": [ { "domain": ".example.com", "name": "sessionid", "value": "abc123", "path": "/", "expires": 1728000000, "httpOnly": true, "secure": true } ] } ``` -------------------------------- ### Python Example for Creating a Status Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/05_statuses/create-status.md Demonstrates how to send a POST request to create a new status using the Python requests library. Ensure you replace 'your_token_here' with your actual API token. ```python import requests headers = {"X-Token": "your_token_here"} data = { "name": "In Progress", "color": "#00BFFF" } response = requests.post("https://api.browser.vision/api/statuses", json=data, headers=headers) print(response.json()) ``` -------------------------------- ### List Running Browser Profiles Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md Use a GET request to list all currently running browser profiles. ```http GET http://127.0.0.1:3030/list ``` -------------------------------- ### Python Example for Importing Cookies Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/import-cookies.md Use the requests library to send a POST request to the import cookies endpoint. Ensure the 'X-Token' header is included and the request body is correctly formatted as JSON. ```python import requests profile_id = "your_profile_id" url = f"https://api.browser.vision/api/profiles/{profile_id}/cookies/import" headers = {"X-Token": "your_token_here"} cookies = { "cookies": [ { "domain": ".example.com", "name": "sessionid", "value": "abc123", "path": "/", "expires": 1728000000, "httpOnly": True, "secure": True } ] } response = requests.post(url, json=cookies, headers=headers) print(response.json()) ``` -------------------------------- ### Folder List Response Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/02_folders/get-folder-list.md The API returns a JSON array of folder objects, each containing an ID, name, team ID, and the count of profiles within that folder. ```json [ { "id": "folder-uuid", "name": "Marketing", "team_id": "team-uuid", "profiles_count": 12 } ] ``` -------------------------------- ### Python Example: Authenticating API Requests Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/auth.md Use the `requests` library in Python to send authenticated API requests. Ensure your `X-Token` and optionally `X-Team-Token` are correctly set in the headers. ```python import requests headers = { "X-Token": "your_token_here", "X-Team-Token": "your_team_token_here" # optional } response = requests.get("https://api.browser.vision/api/folders", headers=headers) print(response.json()) ``` -------------------------------- ### Get Folder List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves all accessible folders and displays their names, IDs, and profile counts. Requires an X-Token for authentication. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/folders", headers=headers) folders = response.json() for folder in folders: print(f"Folder: {folder['name']} (ID: {folder['id']}, Profiles: {folder['profiles_count']})") # Expected output: # Folder: Marketing (ID: folder-uuid, Profiles: 12) ``` ```bash curl -X GET "https://api.browser.vision/api/folders" \ -H "X-Token: your_token_here" ``` -------------------------------- ### Connect and Automate with Playwright (Python) Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Starts a browser profile, connects to its CDP endpoint using Playwright, performs browser actions like navigating and taking screenshots, and then stops the profile. Requires an authentication token and profile identifiers. ```python import requests from playwright.sync_api import sync_playwright TOKEN = "your_token_here" FOLDER_ID = "your_folder_id" PROFILE_ID = "your_profile_id" # Step 1: Start the profile requests.post( f"http://127.0.0.1:3030/start/{FOLDER_ID}/{PROFILE_ID}", json={"args": ["--remote-debugging-port=9222"]} ) # Step 2: Connect via CDP and automate with sync_playwright() as p: browser = p.chromium.connect_over_cdp("http://127.0.0.1:9222") context = browser.contexts[0] page = context.new_page() page.goto("https://example.com") print(page.title()) page.screenshot(path="screenshot.png") browser.close() # Step 3: Stop the profile requests.get(f"http://127.0.0.1:3030/stop/{FOLDER_ID}/{PROFILE_ID}") ``` -------------------------------- ### Get Profile Info Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-profile-info.md Retrieves detailed information about a specific browser profile. ```APIDOC ## GET /api/profiles/{profile_id} ### Description Retrieves detailed information about a specific browser profile. ### Method GET ### Endpoint /api/profiles/{profile_id} ### Parameters #### Path Parameters - **profile_id** (string) - Required - The unique identifier of the profile to retrieve. #### Headers - **X-Token** (string) - Required - Your API authentication token. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the profile. - **name** (string) - The name of the profile. - **browser** (string) - The browser type associated with the profile (e.g., chrome). - **created_at** (string) - The timestamp when the profile was created (ISO 8601 format). - **tags** (array of strings) - A list of tags associated with the profile. ### Response Example ```json { "id": "profile-id", "name": "Test Profile", "browser": "chrome", "created_at": "2024-01-01T12:00:00Z", "tags": ["automation", "test"] } ``` ``` -------------------------------- ### Get Proxy List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/04_proxy/get-proxy-list.md Retrieves a list of proxies associated with the current account or team. ```APIDOC ## GET /api/proxy ### Description Retrieve a list of proxies associated with the current account or team. ### Method GET ### Endpoint https://api.browser.vision/api/proxy ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the proxy. - **host** (string) - The IP address of the proxy. - **port** (integer) - The port number for the proxy. - **type** (string) - The type of proxy (e.g., http, socks5). - **status** (string) - The current status of the proxy (e.g., active, inactive). ### Response Example ```json [ { "id": "proxy-id", "host": "123.456.789.0", "port": 8080, "type": "http", "status": "active" } ] ``` ``` -------------------------------- ### Get Profiles List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves a list of all browser profiles residing within a specified folder. ```APIDOC ## Profiles ### Get Profiles List Returns all browser profiles within a specified folder. ```python import requests folder_id = "your_folder_id" headers = {"X-Token": "your_token_here"} response = requests.get( f"https://api.browser.vision/api/folders/{folder_id}/profiles", headers=headers ) profiles = response.json() for p in profiles: print(f"{p['name']} | Status: {p['status']} | Browser: {p['browser']}") # Expected: # Profile 1 | Status: active | Browser: chrome ``` ``` -------------------------------- ### GET /proxy Endpoint Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/04_proxy/get-proxy-list.md Use this endpoint to retrieve a list of proxies. Ensure you include your authentication token in the headers. ```http GET https://api.browser.vision/api/proxy ``` ```http X-Token: your_token_here ``` -------------------------------- ### Start Browser Profile with Remote Debugging Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Launches a browser profile via the local daemon, enabling remote debugging. This is useful for programmatic control and inspection using Chrome DevTools Protocol (CDP). ```python import requests folder_id = "your_folder_id" profile_id = "your_profile_id" # Start with remote debugging enabled for CDP automation response = requests.post( f"http://127.0.0.1:3030/start/{folder_id}/{profile_id}", json={"args": ["--remote-debugging-port=9222"]} ) print(response.json()) # Expected: {"profiles": [{"folder_id": "uuid-folder", "profile_id": "uuid-profile", "port": 9222]} ``` -------------------------------- ### Get Tag List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves all tags defined in the account for filtering and categorizing profiles. Requires an authentication token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/tags", headers=headers) print(response.json()) # Expected: [{"id": "tag-id", "name": "automation", "color": "#FFD700"}] ``` -------------------------------- ### Get Proxy List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves a list of all proxies associated with the current account or team. Requires an authentication token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/proxy", headers=headers) proxies = response.json() for proxy in proxies: print(f"Proxy {proxy['id']}: {proxy['host']}:{proxy['port']} ({proxy['type']}) - {proxy['status']}") # Expected: [{"id": "proxy-id", "host": "123.456.789.0", "port": 8080, "type": "http", "status": "active"}] ``` -------------------------------- ### Get Tag List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves all tags defined in the account for filtering and categorizing profiles. Requires an authentication token. ```APIDOC ## GET /api/tags ### Description Retrieves all tags defined in the account for filtering and categorizing profiles. ### Method GET ### Endpoint /api/tags ### Response #### Success Response (200) - **Array of Tag Objects** - **id** (string) - The unique identifier of the tag. - **name** (string) - The name of the tag. - **color** (string) - The color associated with the tag, in hexadecimal format. ``` -------------------------------- ### Python Example for Deleting a Proxy Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/04_proxy/delete-proxy.md This Python script demonstrates how to send a DELETE request to remove a proxy. Ensure you replace 'your_proxy_id' and 'your_token_here' with your actual values. ```python import requests proxy_id = "your_proxy_id" url = f"https://api.browser.vision/api/proxy/{proxy_id}" headers = {"X-Token": "your_token_here"} response = requests.delete(url, headers=headers) print(response.json()) ``` -------------------------------- ### GET Folder List Endpoint Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/02_folders/get-folder-list.md Use this endpoint to retrieve a list of all folders accessible by the user. Ensure you include the necessary authentication token in the headers. ```http GET https://api.browser.vision/api/folders ``` -------------------------------- ### Get Folder List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves a list of all folders accessible by the authenticated user or team, including the number of profiles in each folder. ```APIDOC ## Folders ### Get Folder List Retrieves all folders accessible by the authenticated user or team, including profile counts per folder. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/folders", headers=headers) folders = response.json() for folder in folders: print(f"Folder: {folder['name']} (ID: {folder['id']}, Profiles: {folder['profiles_count']})") # Expected output: # Folder: Marketing (ID: folder-uuid, Profiles: 12) ``` ```bash curl -X GET "https://api.browser.vision/api/folders" \ -H "X-Token: your_token_here" ``` ``` -------------------------------- ### Get Profile Information Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Fetches detailed information for a specific browser profile using its unique ID. Requires an X-Token for authentication. ```python import requests profile_id = "your_profile_id" headers = {"X-Token": "your_token_here"} response = requests.get( f"https://api.browser.vision/api/profiles/{profile_id}", headers=headers ) profile = response.json() print(f"Name: {profile['name']}, Tags: {profile['tags']}, Created: {profile['created_at']}") # Expected: {"id": "profile-id", "name": "Test Profile", "browser": "chrome", # "created_at": "2024-01-01T12:00:00Z", "tags": ["automation", "test"]} ``` -------------------------------- ### Get Status List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves all custom workflow statuses defined within your account. Requires an authentication token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/statuses", headers=headers) print(response.json()) # Expected: [{"id": "status-id", "name": "Pending", "color": "#FFA500"}] ``` -------------------------------- ### Get Profiles List in Folder Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves a list of all browser profiles contained within a specified folder. Requires the folder ID and an X-Token for authentication. ```python import requests folder_id = "your_folder_id" headers = {"X-Token": "your_token_here"} response = requests.get( f"https://api.browser.vision/api/folders/{folder_id}/profiles", headers=headers ) profiles = response.json() for p in profiles: print(f"{p['name']} | Status: {p['status']} | Browser: {p['browser']}") # Expected: # Profile 1 | Status: active | Browser: chrome ``` -------------------------------- ### Python Example for Editing Status Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/05_statuses/edit-status.md This Python script demonstrates how to send a PATCH request to update a status, including the URL, data, and headers. It prints the JSON response. ```python import requests status_id = "your_status_id" url = f"https://api.browser.vision/api/statuses/{status_id}" data = { "name": "Completed", "color": "#32CD32" } headers = {"X-Token": "your_token_here"} response = requests.patch(url, json=data, headers=headers) print(response.json()) ``` -------------------------------- ### Tag List Response Example Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/06_tags/get-tag-list.md A successful response from the /api/tags endpoint returns a JSON array where each object represents a tag with its ID, name, and color. ```json [ { "id": "tag-id", "name": "automation", "color": "#FFD700" } ] ``` -------------------------------- ### API Endpoint and Headers Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/06_tags/get-tag-list.md The GET request to retrieve tags requires the 'X-Token' header for authentication. The endpoint is https://api.browser.vision/api/tags. ```http GET https://api.browser.vision/api/tags ``` ```http X-Token: your_token_here ``` -------------------------------- ### Export Cookies using Python Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/export-cookies.md Use this Python script to make a GET request to the export cookies endpoint. Ensure you replace placeholders with your actual profile ID and token. The response will be a JSON object containing the exported cookies. ```python import requests profile_id = "your_profile_id" url = f"https://api.browser.vision/api/profiles/{profile_id}/cookies/export" headers = {"X-Token": "your_token_here"} response = requests.get(url, headers=headers) cookies = response.json() print(cookies) ``` -------------------------------- ### Connect with Pyppeteer (Python) Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Demonstrates connecting to a running browser profile using Pyppeteer for asynchronous browser automation. ```APIDOC ## Browser Automation with Pyppeteer ### Description Connects to a running browser profile using Pyppeteer (Python Puppeteer implementation) for async automation. ### Usage 1. Start the profile using the `/start` endpoint, ensuring `--remote-debugging-port` is specified. 2. Use `pyppeteer.connect()` with the CDP endpoint URL. 3. Automate browser actions asynchronously. 4. Disconnect from the browser. ### Example (Python) ```python import asyncio import requests from pyppeteer import connect FOLDER_ID = "your_folder_id" PROFILE_ID = "your_profile_id" DEBUGGING_PORT = 9222 # Start the profile first requests.post( f"http://127.0.0.1:3030/start/{FOLDER_ID}/{PROFILE_ID}", json={"args": [f"--remote-debugging-port={DEBUGGING_PORT}"]} ) async def automate(): browser = await connect(browserURL=f"http://127.0.0.1:{DEBUGGING_PORT}") page = await browser.newPage() await page.goto("https://example.com") title = await page.title() print(f"Page title: {title}") await browser.disconnect() asyncio.get_event_loop().run_until_complete(automate()) ``` ``` -------------------------------- ### Create Profile Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/create-profile.md Creates a new browser profile under a specified folder. ```APIDOC ## POST /api/profiles ### Description Creates a new browser profile under a specified folder. ### Method POST ### Endpoint https://api.browser.vision/api/profiles ### Headers - **Content-Type**: application/json - **X-Token**: your_token_here ### Request Body - **name** (string) - Required - The name of the profile. - **folder_id** (string) - Required - The ID of the folder to create the profile in. - **browser** (string) - Optional - The browser to use for the profile (e.g., "chrome"). - **fingerprint** (object) - Optional - Fingerprint configuration. - **tags** (array of strings) - Optional - Tags to associate with the profile. ### Request Example ```json { "name": "Test Profile", "folder_id": "folder-uuid", "browser": "chrome", "fingerprint": { ... }, "tags": ["automation"] } ``` ### Response #### Success Response (200) - **id** (string) - The ID of the newly created profile. - **name** (string) - The name of the newly created profile. #### Response Example ```json { "id": "new-profile-id", "name": "Test Profile" } ``` ``` -------------------------------- ### Get Status List Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/05_statuses/get-status-list.md Retrieves a list of all custom statuses available in your account or team. ```APIDOC ## GET /api/statuses ### Description Retrieve all custom statuses available in your account or team. ### Method GET ### Endpoint https://api.browser.vision/api/statuses ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - **id** (string) - The unique identifier for the status. - **name** (string) - The name of the status. - **color** (string) - The color associated with the status, in hex format. ### Response Example ```json [ { "id": "status-id", "name": "Pending", "color": "#FFA500" } ] ``` ``` -------------------------------- ### Authenticate and List Folders Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Demonstrates how to authenticate API requests using X-Token and X-Team-Token headers and retrieve a list of folders. Handles unauthorized responses. ```python import requests headers = { "X-Token": "your_token_here", "X-Team-Token": "your_team_token_here" # only required in team mode } response = requests.get("https://api.browser.vision/api/folders", headers=headers) if response.status_code == 401: print("Unauthorized: check your X-Token") else: print(response.json()) # Expected: [{"id": "folder-uuid", "name": "Marketing", "team_id": "team-uuid", "profiles_count": 12}] ``` -------------------------------- ### Stop a Profile Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/start-stop.md Stops a running browser profile. Can be initiated with a GET or POST request. ```APIDOC ## Stop a Profile ``` GET http://127.0.0.1:3030/stop/{folderId}/{profileId} ``` Or use a POST request without a body. ``` -------------------------------- ### Get Status List Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Retrieves a list of all custom workflow statuses that have been defined within your account. ```APIDOC ## GET /api/statuses ### Description Retrieves all custom workflow statuses defined in the account. ### Method GET ### Endpoint `https://api.browser.vision/api/statuses` ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - Returns an array of status objects. - **id** (string) - The unique identifier for the status. - **name** (string) - The display name of the status. - **color** (string) - The hex color code associated with the status. ### Response Example ```json [ { "id": "status-id", "name": "Pending", "color": "#FFA500" } ] ``` ``` -------------------------------- ### Create Folder Endpoint Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/02_folders/create-folder.md Use this endpoint to create a new folder. Ensure you set the Content-Type to application/json. ```http POST https://api.browser.vision/api/folders Content-Type: application/json ``` -------------------------------- ### Get New Fingerprint Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/03_profiles/get-new-fingerprint.md Generates a new fingerprint configuration to use when creating or updating a profile. ```APIDOC ## GET /api/profiles/fingerprint ### Description Generates a new fingerprint configuration to use when creating or updating a profile. ### Method GET ### Endpoint https://api.browser.vision/api/profiles/fingerprint ### Headers - **X-Token** (string) - Required - Your authentication token. ### Response #### Success Response (200) - **fingerprint** (object) - Contains the generated fingerprint configuration. - **userAgent** (string) - The user agent string. - **platform** (string) - The operating system platform. - **language** (string) - The preferred language. - **timezone** (string) - The timezone. ### Response Example ```json { "fingerprint": { "userAgent": "Mozilla/5.0...", "platform": "Win32", "language": "en-US", "timezone": "America/New_York" } } ``` ``` -------------------------------- ### Connect with Playwright (Python) Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Demonstrates how to connect to a running browser profile using Playwright via the DevTools Protocol and automate browser actions. ```APIDOC ## Browser Automation with Playwright ### Description Connects to a running browser profile's CDP endpoint to drive browser actions using Playwright. ### Usage 1. Start the profile using the `/start` endpoint, ensuring `--remote-debugging-port` is specified. 2. Use `playwright.chromium.connect_over_cdp()` with the CDP endpoint URL. 3. Automate browser actions (navigate, screenshot, etc.). 4. Close the browser connection and optionally stop the profile using the `/stop` endpoint. ### Example (Python) ```python import requests from playwright.sync_api import sync_playwright TOKEN = "your_token_here" FOLDER_ID = "your_folder_id" PROFILE_ID = "your_profile_id" DEBUGGING_PORT = 9222 # Step 1: Start the profile requests.post( f"http://127.0.0.1:3030/start/{FOLDER_ID}/{PROFILE_ID}", json={"args": [f"--remote-debugging-port={DEBUGGING_PORT}"]} ) # Step 2: Connect via CDP and automate with sync_playwright() as p: browser = p.chromium.connect_over_cdp(f"http://127.0.0.1:{DEBUGGING_PORT}") context = browser.contexts[0] page = context.new_page() page.goto("https://example.com") print(page.title()) page.screenshot(path="screenshot.png") browser.close() # Step 3: Stop the profile (optional) requests.get(f"http://127.0.0.1:3030/stop/{FOLDER_ID}/{PROFILE_ID}") ``` ``` -------------------------------- ### Create Proxy Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Adds a new proxy (HTTP or SOCKS5) to your account. This proxy can then be assigned to browser profiles. Requires an authentication token and proxy details. ```python import requests headers = {"X-Token": "your_token_here"} data = { "type": "http", "ip": "192.168.0.1", "port": 8080, "login": "proxyuser", "password": "proxypass" } response = requests.post("https://api.browser.vision/api/proxies", json=data, headers=headers) print(response.json()) # Expected: {"id": "new-proxy-id", "type": "http", "ip": "192.168.0.1"} ``` -------------------------------- ### Create Tag Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Creates a new tag with a specified name and color for profile categorization. Requires an authentication token. ```python import requests headers = {"X-Token": "your_token_here"} data = {"name": "automation", "color": "#FFD700"} response = requests.post("https://api.browser.vision/api/tags", json=data, headers=headers) print(response.json()) # Expected: {"id": "new-tag-id", "name": "automation", "color": "#FFD700"} ``` -------------------------------- ### Create Profile Source: https://context7.com/iidanl/visionantidetectbrowserdocs/llms.txt Creates a new browser profile within a specified folder. Supports custom names, browser types, fingerprints, and tags. ```APIDOC ## POST /api/profiles ### Description Creates a new browser profile in a specified folder with an optional fingerprint and tags. ### Method POST ### Endpoint /api/profiles ### Parameters #### Request Body - **name** (string) - Required - The name of the profile. - **folder_id** (string) - Required - The ID of the folder to create the profile in. - **browser** (string) - Required - The browser type (e.g., "chrome"). - **fingerprint** (object) - Optional - The browser fingerprint to use. - **userAgent** (string) - The user agent string. - **platform** (string) - The operating system platform. - **language** (string) - The browser language setting. - **timezone** (string) - The timezone identifier. - **tags** (array of strings) - Optional - Tags to associate with the profile. ### Request Example ```python import requests headers = {"X-Token": "your_token_here"} # Step 1: Get a fresh fingerprint (optional, can be provided directly) fp_resp = requests.get("https://api.browser.vision/api/profiles/fingerprint", headers=headers) fingerprint = fp_resp.json()["fingerprint"] # Step 2: Create the profile with that fingerprint data = { "name": "Test Profile", "folder_id": "your_folder_uuid", "browser": "chrome", "fingerprint": fingerprint, "tags": ["automation", "test"] } response = requests.post("https://api.browser.vision/api/profiles", json=data, headers=headers) new_profile = response.json() print(f"Created profile ID: {new_profile['id']}") ``` ### Response #### Success Response (200 or 201) - **id** (string) - The unique identifier of the newly created profile. - **name** (string) - The name of the created profile. #### Response Example ```json { "id": "new-profile-id", "name": "Test Profile" } ``` ``` -------------------------------- ### Fetch Folders using Python Source: https://github.com/iidanl/visionantidetectbrowserdocs/blob/main/01_about/about-api.md Use this snippet to retrieve a list of all folders managed by the API. Ensure you replace 'your_token_here' with your actual API token. ```python import requests headers = {"X-Token": "your_token_here"} response = requests.get("https://api.browser.vision/api/folders", headers=headers) print(response.json()) ```