# Welcome to TaskNet Documentation

Welcome to TaskNet! This guide provides an overview of features designed to optimize your workflows. Discover how to use the API, explore best practices, and get hands-on with tools that simplify automation and session management. Let’s get started!

### Jump right in

<table data-view="cards"><thead><tr><th></th><th></th><th data-type="content-ref"></th><th data-type="content-ref"></th><th data-type="content-ref"></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/getting-started/authentication"><strong>Authentication</strong></a></td><td>Overview of authentication methods.</td><td><a href="/getting-started/authentication/environments">Environments</a></td><td><a href="/getting-started/authentication/fingerprints">Fingerprints</a></td><td></td><td></td><td><a href="https://3113958468-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp096M7kwcESLc9whXkjt%2Fuploads%2FAc72TEs0eyuivkzfGJyY%2FAuthentication-white.png?alt=media&amp;token=eb614d9d-8b8e-40dc-a21a-b48ded899cc4">Authentication-white.png</a></td><td></td><td><a href="broken://pages/CyH2xJQs9yWJ1S8BYNav">Broken link</a></td></tr><tr><td><a href="/features/browser-sessions"><strong>Features</strong></a></td><td>Overview of TaskNet features.</td><td><a href="/features/browser-sessions">Browser Sessions</a></td><td><a href="/features/user-fingerprints">User Fingerprints</a></td><td></td><td></td><td><a href="https://3113958468-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp096M7kwcESLc9whXkjt%2Fuploads%2FDNEG8L5PCgj7sT4C7Wy4%2FExtensions-white.png?alt=media&amp;token=817caf74-9b07-4fbd-bdc9-65b30e0e381a">Extensions-white.png</a></td><td></td><td></td></tr><tr><td><a href="/guides/running-automation-scripts"><strong>Guides</strong></a></td><td>guides to help get you started.</td><td><a href="/guides/running-automation-scripts">Running Automation Scripts</a></td><td><a href="/guides/realtime-view">RealTime View</a></td><td><a href="/getting-started/quickstart">QuickStart</a></td><td></td><td><a href="https://3113958468-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp096M7kwcESLc9whXkjt%2Fuploads%2Fhki2a6ZHkDCpSxZwIJxW%2FEnvironments-white.png?alt=media&amp;token=dac9d07c-6f75-4510-94a8-d9e9b88dc38f">Environments-white.png</a></td><td></td><td></td></tr><tr><td><a href="/reference/api-reference"><strong>API Endpoints</strong></a></td><td> A list of TaskNet API endpoints.</td><td><a href="/reference/api-reference/fingerprints">Fingerprints</a></td><td><a href="/reference/api-reference/extensions">Extensions</a></td><td><a href="/reference/api-reference/files">Files</a></td><td><a href="/reference/api-reference/commands">Commands</a></td><td><a href="https://3113958468-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp096M7kwcESLc9whXkjt%2Fuploads%2FTbm0TTtCi20NdCxm3Vz8%2FAPI-white.png?alt=media&amp;token=d080ef9a-2352-4458-b52e-86a32530b8ae">API-white.png</a></td><td></td><td><a href="broken://pages/7aUFmnCMx9m4smGncsXL">Broken link</a></td></tr></tbody></table>


# Authentication

How to access the api

This API supports three primary authentication methods: **API Key**, **Environment-based** authentication and, optionally, **Fingerprint**-**based** session handling.

### API Keys

Obtained from the dashboard, It requires a unique `apiKeyUUID` and `apiKey`. These credentials must be included in every request, and the `apiKey` should be stored securely, as it is shown only once.

### Environments

Obtained from the dashboard, It requires a unique `environmentUUID` and `envSecret`. These credentials must be included only when creating a session (only if fingerprint was used), and the `envSecret` should be stored securely, as it is shown only once.

### Fingerprints

An optional feature that generates a unique secret for each client user device. This allows session data to be encrypted using both the `envSecret` and the `fingerprintSecret`, enhancing security by ensuring that session data can only be decrypted with both secrets.


# API KEY

How to authenticate

To call any api endpoint, you must provide an apiKey in the headers of the request.

1. **Creating an apiKey from the dashboard**

{% hint style="warning" %}
You must store `apiKey`, as it cannot be retrieved once lost.
{% endhint %}

log in to the dashboard, navigate to the **API Keys** section, and click **Add New Api Key**. After setting it up, you will receive an `apiKeyUUID` and an `apiKey`. Ensure you store the `apiKey` securely, as it will only be displayed once.

2. **Include environment credentials in the request headers**

To authenticate, you must include your `environmentUUID` and `envSecret` in the request headers.

<table><thead><tr><th>Header Key</th><th>Value</th></tr></thead><tbody><tr><td>X-Api-Key-Id</td><td><pre><code>apiKeyUUID
</code></pre></td></tr><tr><td>X-Api-Key</td><td><pre><code>apiKey
</code></pre></td></tr></tbody></table>


# Environments

How to authenticate environment credentials

Allows you to securely access the API using your `environmentUUID` and `envSecret` as your API keys. These credentials are required only for creatingSession endpoint (only if you are using a fingerprint alongside of it) and must be stored securely to maintain access.

<figure><img src="https://3113958468-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp096M7kwcESLc9whXkjt%2Fuploads%2FuzpQhFJj0rOB6PayFQdd%2FEnvironments%20%20Flow%20(1).png?alt=media&amp;token=7e63935a-b95a-4945-a0bd-367ad485da79" alt=""><figcaption></figcaption></figure>

1. **Creating an environment from the api**

{% hint style="warning" %}
You must store `envSecret`, as it cannot be retrieved once lost.
{% endhint %}

{% content-ref url="/pages/ng14bdzqQo5JGHd8ImfG" %}
[Enviornments](/reference/api-reference/enviornments)
{% endcontent-ref %}

2. **Include environment credentials in the request headers**

To authenticate, you must include your `environmentUUID` and `envSecret` in the request headers.

<table><thead><tr><th>Header Key</th><th>Value</th></tr></thead><tbody><tr><td>X-Environment-Id</td><td><pre><code><strong>environmentUUID
</strong></code></pre></td></tr><tr><td>X-Environment-Secret</td><td><pre><code>envSecret
</code></pre></td></tr></tbody></table>


# Fingerprints

How to authenticate session fingerprint

{% hint style="warning" %}
Optimally, store the fingerprintSecret on the user device. It cannot be retrieved once lost.
{% endhint %}

An optional feature that enhances session management. By using a `fingerprintSecret`, you can encrypt session data, ensuring it can only be decrypted with both the `fingerprintSecret` and the `envSecret`. This adds an extra layer of security for persistent sessions.

To authenticate a session fingerprint, you must include `fingerprintSecret`in the request headers.

{% content-ref url="/pages/QyontvOxZpoUS3Avfn4O" %}
[User Fingerprints](/features/user-fingerprints)
{% endcontent-ref %}

{% content-ref url="/pages/BofI0KDi793ELF7FrgeO" %}
[Fingerprints](/reference/api-reference/fingerprints)
{% endcontent-ref %}

<table><thead><tr><th width="322">Header Key</th><th>Value</th></tr></thead><tbody><tr><td>X-Fingerprint-Secret</td><td><pre><code>fingerprintSecret
</code></pre></td></tr></tbody></table>


# Private Vs Public

The Browser can live in either a public or private infrastructure

When interacting with the API, you’ll notice that many endpoints require a mode to be specified in the path. Where `mode` can either be **`public`** or **`private`**

* **Private Mode**: The browser session is hosted and secured by us.
* **Public Mode**: The browser session is hosted by any external **provider**, which means it might not have the same level of security as private hosting. **Public mode should only be used for non-sensitive tasks**, where user data, cookies, or logins are not involved. Tasks like general browsing or simple automation that doesn't require secure handling of information are suitable for public sessions.


# QuickStart

A quick example showcasing the usage

```javascript
import axios from "axios"

(async () => {
    // Configuration
    const API_URL = '';
    const config = {
        headers: {
            'X-Api-Key-Id': 'your-apiKey-uuid',
            'X-Api-Key': 'your-apiKey-secret',
            'Content-Type': 'application/json'
        }
    };

    try {
        // Create a random fingerprint (OPTIONAL)
        const fingerprintResponse = await axios.post(
            `${API_URL}/api/v1/fingerprints/random`,
            {
                enviornmentUUID: 'your-enviornment-uuid'
            },
            config
        );
        const fingerprintUUID = fingerprintResponse.data.fingerprintUUID;

        // Create Session
        config.headers["X-Fingerprint-Secret"] = fingerprintResponse.data.fingerprintSecret
        const sessionResponse = await axios.post(
            `${API_URL}/api/v1/sessions`,
            {
                fingerprintUUID,
                leaseTime: 10, // 10 minutes
                isVncEnabled: false,
                driver: 'api'
            },
            config
        );
        const sessionUUID = sessionResponse.data.sessionUUID;

        // Do some stuff
        console.log('Session created:', sessionUUID);
        
        // End Session
        await axios.delete(
            `${API_URL}/api/v1/sessions/${sessionUUID}`,
            config
        );
        console.log('Session ended');

    } catch (error) {
        console.error('Error:', error.response?.data || error.message);
    }
})();
```


# Becoming a Node Operator

How to obtain an apiKey to become a node operator

Anyone can become a node operator by downloading and running the node software, which allows them to host browser sessions on their own machine and making them available for renting.

### How to become a Node Operator

#### A. Obtaining API Key

1. Login to dashboard
2. Create an API key

#### B. Download and install the node software

1. Download the Node software
2. install the software and run it
3. in the Settings tab, enter yur API key and save the changes

#### C. Start the Node

1. Toggle the switch to **Go Live** to start the node&#x20;

### Payments

SOON


# Points Program

Rewards for uptime, jobs completed, and referrals.

### Overview

The Points Program rewards participants based on **uptime** and **jobs** completed during defined **seasons**. Each season consists of multiple **periods**, and each period has a **pool** of rewards that are distributed weekly among participants according to their performance metrics.

### Key Concepts

#### 1. **Seasons & Periods**

* A **season** is a predefined duration divided into **periods**.
* Each period has a reward pool that will be distributed among participants.
* Metrics collected during each period determine the share of the pool that participants receive.

#### Seasons

{% hint style="warning" %}
Starting from **season 3** we will be verifying proof of availability by assigning tasks randomly to all nodes.
{% endhint %}

**Season 1 (Feb 14, 2025 – Mar 14, 2025) 150k**

* Period 1: Feb 14 – Feb 20, Pool: 10,000
* Period 2: Feb 21 – Feb 27, Pool: 25,000
* Period 3: Feb 28 – Mar 6, Pool: 40,000
* Period 4: Mar 7 – Mar 13, Pool: 75,000

**Season 2 (Mar 14, 2025 – Apr 11, 2025) 300k**

* Period 1: Mar 14– Mar 20, Pool: 20,000
* Period 2: Mar 21 – Mar 27, Pool: 50,000
* Period 3: Mar 28 – Apr 3, Pool: 80,000
* Period 4: Apr 4 – Apr 10, Pool: 150,000

**Season 3 (April 11, 2025 - May 9 , 2025) 300k**

* Period 1: April 11– April 17, Pool: 20,000
* Period 2: April 18 – April 24, Pool: 50,000
* Period 3: April 25 – May 1, Pool: 80,000
* Period 4: May 2 – May 8, Pool: 150,000

**Season 4 (May 9, 2025 - June 5, 2025) 300k**

* Period 1: May 9– May 14, Pool: 20,000
* Period 2: May 15 – May 21, Pool: 50,000
* Period 3: May 22 – May 28, Pool: 80,000
* Period 4: May 29 – June 4, Pool: 150,000

**Season 5  (June 5, 2025 - July 1, 2025) 300k**

* Period 1: June 5– June 11, Pool: 20,000
* Period 2: June 12 – June 18, Pool: 50,000
* Period 3: June 19 – June 25, Pool: 80,000
* Period 4: June 26 – July 1, Pool: 150,000

**Season 6  (July 2, 2025 - July 29, 2025) 300k**

* Period 1: July 2– July 8, Pool: 20,000
* Period 2: July 9 – July 15, Pool: 50,000
* Period 3: July 16 – July 22, Pool: 80,000
* Period 4: July 23 – July 29, Pool: 150,000

#### 2. **Metrics & Weights**

Participants are evaluated based on two metrics:

* **Uptime**: 70% weight
* **Jobs Completed**: 30% weight

Your reward for each period is calculated as follows:

$$
\text{Reward}*i = P \times \frac{(U\_i \times W\_u) + (J\_i \times W\_j)}{\sum*{k=1}^{N} \left( U\_k \times W\_u + J\_k \times W\_j \right)}
$$

Where:

* P = Pool reward for the week
* Ui​ = Uptime for participant i
* Ji​ = Jobs completed by participant i
* Wu​ = Weight for uptime
* Wj​ = Weight for jobs
* N = Total number of participants

***

### Referral Program

The referral program allows participants to boost their final season score through multipliers.

#### Referral Multipliers:

* Successfully refer someone: **1.1x multiplier**
* Refer 50+ active participants: **1.5x multiplier**
* Refer 100+ active participants: **2x multiplier**

#### First 100 Nodes Bonus

The first 100 nodes that sign up receive a **1.2x multiplier** on their rewards.

#### Applying Multipliers

At the end of all seasons, your final score will be adjusted based on your referral multipliers.

* Example: If you successfully referred more than 50 participants and were one of the first 100 nodes, your final multiplier would be **1.5x** (or **1.2x if no additional referrals**).


# Browser Sessions

You can start browser session on-demand

Create and manage browser sessions with a defined lease time. Each session runs independently and automatically terminates when the lease expires, ensuring a stable and isolated environment for automation tasks.

### VncMode

The **vncMode** determines the type of interaction available with the browser during the session. There are two possible values:

* **`ro`** (Read-Only): Provides view-only access to the browser session. Users can observe the session but cannot interact with the page.
* **`rw`** (Read-Write): Allows full interaction with the browser, enabling both viewing and control, such as clicking and typing.

### Driver

The **driver** specifies the method used to connect to the browser session. You can choose between two options:

* **`api`**: Connects to the browser using the controller API endpoints.
* **`puppeteer`**: Connects to the browser using Puppeteer.

### Running with Fingerprint

When a fingerprint is provided, session data, such as cookies, browsing history, and proxy IP, will be preserved, allowing users to return to the same configuration and settings. Customizing aspects like screen resolution, device settings, and proxy preferences ensures that the session behavior remains consistent over time.

{% content-ref url="/pages/QyontvOxZpoUS3Avfn4O" %}
[User Fingerprints](/features/user-fingerprints)
{% endcontent-ref %}


# Automation Script Support

Integrate seamlessly with popular automation frameworks such as Puppeteer, Playwright, and Selenium. Connect your existing automation scripts to our browser containers to perform tasks like testing, web scraping, and form submissions without any additional setup.

{% content-ref url="/pages/nWFt3CyYpA2VnYWIsv6c" %}
[Running Automation Scripts](/guides/running-automation-scripts)
{% endcontent-ref %}


# Automation with API

Utilize our API to perform browser actions programmatically. Instead of relying solely on frameworks like Puppeteer or Selenium, you can use our API to create, control, and manage browser sessions directly within your applications, providing greater flexibility and integration capabilities.

####


# Real-Time View

Monitor browser activity in real time

Monitor your browser sessions in real-time with our Real-Time View feature. This functionality allows you to observe the activities within your browser sessions as they happen, providing valuable insights into the execution of your automation scripts. If you prefer not to monitor the session visually, you have the option to disable the Real-Time View entirely. This flexibility ensures that you can tailor the monitoring capabilities to suit your specific workflow requirements, whether you need constant oversight or prefer to run sessions without any visual tracking.

### Security

The Real-Time View feature offers the option to secure access through password protection:

* **Password Protection Enabled:** Access to the Real-Time View requires entering a valid password. This adds an additional layer of security, ensuring that only authorized individuals can monitor or interact with the browser session.
* **Password Protection Disabled:** Access to the Real-Time View does not require a password. This allows for easier access in environments where security is managed through other measures or where streamlined access is preferred.

This access control option provides flexibility to tailor the security settings of the Real-Time View according to specific requirements and preferences.

{% content-ref url="/pages/AQrXNUoGaAtIPUFxhyfV" %}
[RealTime View](/guides/realtime-view)
{% endcontent-ref %}


# File Downloads, and Uploads

handle files on your browser session

Manage file interactions within your browser sessions effortlessly. The platform allows for seamless uploading and downloading of files directly to and from the browser session. This functionality supports a variety of workflows that require handling files during automated browsing activities.


# User Fingerprints

You can customize browser fingerprints to make each session unique by adjusting the configuration of the fingerprint

Browser fingerprints are unique identifiers that help ensure consistency across sessions. By creating a fingerprint, you can retain session cookies, browsing history, proxy IP, and other configuration settings between user sessions. This ensures that when users return, their experience is the same, with their preferences, settings, and data preserved for persistence.

### Personalized Experience

Customizing various aspects of the fingerprint—such as screen resolution, DPI, device configurations, and proxy settings—helps maintain a consistent and personalized browsing experience, making it easier to track and manage user sessions over time. This configuration will continue to expand, allowing for even more detailed and accurate session management in the future.

#### Screen Resolution

Adjust the resolution of the browser window. Available options:

* `"1280x1024"`, `"1920x1080"`, `"1366x768"`, `"1536x864"`, `"1280x720"`, `"1440x900"`, or `"1280x2400"`

#### Color Depth

Set the color depth of the screen. Possible values:

* `24`, `30`, or `32`

#### DPI

Define the DPI for screen scaling. Supported values:

* `96`, `120`, `144`, or `192`

### Example Request Body

```json
{
  "screen": {
    "resolution": "1280x2400",
    "depth": 24,
    "dpi": 96
  },
  "device": {
    "numSpeakers": 2,
    "numMicrophones": 2,
    "numCameras": 1
  },
  "proxy": {
    "country": "US"
  },
  "extensions": []
}
```

### Example Response Body

{% hint style="warning" %}
store the **fingerprintSecret**. It cannot be retrieved once lost.
{% endhint %}

```json
{
    "fingerprintUUID": "36a33f12-75ef-40f3-90de-31e9225a2f4f",
    "fingerprintSecret": "dY5znu6P1DOW06jUkqHWDLhq1ERNSS6xYKSRdnZjBpYG0SiE/XzfhCKCiLUL52alIwT8TrgiCrQGxUFY6pJ5AHSmdRh9EiQI9HnJaDMalKoo8hHhJOdOx00zDoLlFxuEEHH0Q43dBJzCQxrBAuv4pcQjWI1wBR8W1STgMXliRYKtfO0S94B0ItKvn3p60pAkVTvqkmMDPyOD8Fb5Tnhb2L1exdNpJWPBd79+GB+bhHirPXfnT8lkvIfDvpmf7vi79RuhXLgmn/ivutvKbNlZs6xq6u9F8hW3Ee33Yxo/0gdjiEV7pN4DLXb0UzuXAOKrpLOZcxvROKG10nvspaj06SPT7tasYTK8+pNsrCIYlFMzrAZhRL0d2L9JeMV5g1uR7Ih5N88/ZDI06mT2gcVVVFOoeiIJN2eLQkAODoSsI0k2DO0DxSBktCzpHHf6QP8Y+71LS859s5Gg1no4/NSfEu1HEPy/dmi0TqoytQ5bxGfe0AC8Ii/EoqgncmfTNXxm6LK9wOQoAoQEXWh/Dx4NgX60EXomwwLGiwZW7zuF/YsOoJEyHjjccQCu1QQ4ZGnn3gBeHWBoi/MtUqos9pUm1KpSJBq3WFE2QXvCJ28pbOzs//UEde9CKv8JhBlirr6yX8tXsC4qwiVUcv1u+SBa7d3q8nOQdNoAZsdaBSfL/yo=",
    "isArchived": false,
    "browserConfig": {
        "browser": "chromium",
        "extensions": [],
        "numCameras": 1,
        "numMicrophones": 2,
        "numSpeakers": 2,
        "screenDPI": 96,
        "screenDepth": 24,
        "screenResolution": "1280x2400",
        "userAgent": ""
    },
    "proxy": {
        "country": "US",
        "type": "notAssigned"
    },
    "createdAt": "2025-01-27T00:35:07.184793339Z",
    "updatedAt": "2025-01-27T00:35:07.184793339Z"
}
```

The `fingerprintSecret` is a unique encryption key associated with the user's fingerprint, and it plays a crucial role in securing session data. This secret will be used to decrypt any session-related information, such as cookies, history, or other sensitive data. By encrypting session data with the fingerprint secret, cookies and other data are stored securely, ensuring that they can only be accessed or modified using the same secret.&#x20;

{% content-ref url="/pages/BofI0KDi793ELF7FrgeO" %}
[Fingerprints](/reference/api-reference/fingerprints)
{% endcontent-ref %}


# Proxy

obscure the browser from detection

Configure browser sessions to use proxies based on your requirements:

* **Enable Proxy:** Activate proxy usage for the browser session. When enabled, select the country from which you want the proxy to route your traffic. This allows you to access region-specific content and manage your browsing location effectively.
* **Disable Proxy:** Opt to run the browser session without a proxy. This provides direct internet access without routing through an intermediary server.

Additionally, when using proxy services, you can choose to either **reuse the same IP address** for consistency across sessions or **cycle (change) the IP address** as needed to enhance privacy and reduce the risk of detection. These options are accessible through our API, allowing you to manage IP behavior seamlessly without directly handling IP configurations.


# Chrome Extensions

Use your desired chrome extensions

Enhance your browser sessions with Google Chrome extensions. Install and use extensions to add functionalities such as ad blocking, developer tools, or custom scripts, allowing you to tailor the browser environment to your specific needs.

####


# Running Automation Scripts

How to run your automation script

Using **puppeteer** driver

```typescript
import puppeteer from 'puppeteer-core'

(async () => {
    const sessionUUIID = "<sessionUUID_HERE>"
    const browserURL = `wss://ws.tasknet.co/${sessionUUIID}`
    
    // Connection to browser
    const browser = await puppeteer.connect({ 
        browserWSEndpoint: browserURL,
    })
    
    const page = await browser.newPage()
    
    await page.goto("https://www.google.com")
    
    // Do Something
    
    // Close connection
    browser.disconnect()
})()
```

Using **Api**

```
// Some code
```


# RealTime View

How to view your session

This HTML sets up a **VNC Viewer** using the **noVNC** library, allowing connection to a remote desktop session via WebSockets.\
For public mode, the base url **api.tasknet.co** followed by **/vnc/sessionUUIID**

```html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>VNC Viewer</title>
    </head>
    <body>
        <div id="main__content">
            <div class="vnc__screen">
                <div id="screen">
                    <!-- This is where the remote screen will appear -->
                </div>
            </div>
        </div>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/@hostnet/novnc@1.0.0/dist/novnc.min.js"></script>
        <script type="module">
            // Configure your VNC connection details here
            let rfb
            let desktopName
            let sessionUUIID = "<your-session-uuid>"
            const SESSION_URL = "wss://vnc.tasknet.co/sessionUUIID"
            function connectVNC() {
                // Creating a new RFB object will start a new connection
                rfb = new RFB(
                    document.getElementById('screen'), 
                    SESSION_URL,
                    // IF passowrd is required
                    //{ credentials: { password: password } }
                )

                // Set parameters that can be changed on an active connection
                rfb.viewOnly = false
                rfb.scaleViewport = false   
            }

            $(document).ready(() => {
                $("#disconnect__button").on("click", function() {
                    rfb.disconnect()
                })
                // Connect immediately
                connectVNC()
            })
        </script>
    </body>
</html>
```


# Use With AI


# Function Tooling

How to convert an api controller endpoint to a tool

This guide shows you how to turn any controllable API endpoint into a **DynamicStructuredTool** in LangchainJS, expanding your AI agent's ability to navigate to a specific page URL.

<pre class="language-typescript"><code class="lang-typescript">import { RunnableConfig } from "@langchain/core/runnables";
import { DynamicStructuredTool } from "@langchain/core/tools";
import { CallbackManagerForToolRun } from "@langchain/core/callbacks/manager";
import { z } from "zod";

const BASE_URL = "https://.ai"

export const ZInput = z.object({
    url: z.string(),
})

export const implementation = (baseUrl:string) => {
    return async (
        input : z.infer&#x3C;typeof ZInput>, 
        runnerManger?:CallbackManagerForToolRun, 
        config?:RunnableConfig
    ) => {
        // Pass sessionID through metadata
        const sessionID = config &#x26;&#x26; config.metadata ? config.metadata.sessionID : ""
        if(!sessionID || sessionID === ""){
            return "Failed because Session ID not provided"
        }
        
        try{
            const response = await axios.post(
                `${BASE_URL}/page/goToPage`, 
                input,
                {
                    headers: {
                        "Authorization": "&#x3C;TOKEN_HERE>"
                        "Content-Type": "application/json"
                    },
                }
            )
            
            return `Navigated to ${input.url} page successfully`
        } catch(error:unknown){
<strong>            if(isAxiosError(error)){ 
</strong><strong>                return `Failed to go to page because: ${error.data.message}`
</strong>            }
            
            return `Failed to go to page because: ${result.error ? result.error.message : "unknown reason"}`
        }
    }
}

// Create a DynamicStructuredTool
export const goToPageTool = new DynamicStructuredTool({
    name: "goToPage",
    description: "Navigates to a specific page url",
    schema: ZInput,
    func: implementation(BASE_URL),
})

// Usage
(async () => {
    // Make sure to create the session first before invoking
    const toolResponse = await goToPageTool.invoke({
        url: "https://google.com"
    },{
        metadata: {
            sessionID: "&#x3C;SESSIOND_ID_HERE>"
        }
    })
    console.log(toolResponse)
})()
</code></pre>


# Data Extraction with LLM

How to extract data with LLMs

1. Using **Markdown**
2. Using **Screenshots**


# Exposing Dom to LLM

How to present the DOM to an LLM


# Typescript SDK

A typescript SDK for seamless integration


# NodeJS/Typescript

NodeJs Sdk

### Installation <a href="#installation" id="installation"></a>

```bash
npm install npm i @ajent-foundation/typescript-sdk
```

### Usage

```typescript
import { SessionsApi, PageApi } from "@ajent-foundation/typescript-sdk"
import as dotenv from "dotenv"

// Load environment variables
dotenv.config()

async function main() {
    // Setup authentication
    const mode = "private"
    const apiKeyHeaders = {
        "x-api-key-id": process.env.API_KEY_ID,
        "x-api-key": process.env.API_KEY
    }
    const environmentUUID = process.env.ENVIRONMENT_UUID || ""
    const environmentSecret = process.env.ENVIRONMENT_SECRET || ""
    // Create a new session
    const sessionsApi = new SessionsApi()
    const session = await sessionsApi.modeV1SessionsPost(mode, {
        leaseTime: 5,
        isVncEnabled: true,
        vncMode: "rw",
        driver: "api",
        showMouse: true,
        isProxyEnabled: false
        }, undefined, environmentUUID, environmentSecret, {
        headers: apiKeyHeaders
    })
    // Navigate to a webpage
    const pageApi = new PageApi()
    await pageApi.modeV1PageGoToPagePost(mode, {
        sessionUUID: session.data.sessionUUID,
        url: "https://google.com"
        }, {
        headers: apiKeyHeaders
    })
}
```

### NPM

{% embed url="<https://www.npmjs.com/package/@ajent-foundation/typescript-sdk>" %}

### Github

{% embed url="<https://github.com/Ajent-foundation/typescript-sdk>" %}


# API Reference

API endpoints are documented using OpenAPI specification.

baseUrl: <https://api.tasknet.co>


# Sessions

Create running browser session to use remotely.

## ListSessions

> Retrieves a list of all active browser sessions in your environment, including their status, VNC settings, and lease times.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Sessions","description":"For managing browser sessions lifecycle."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Session":{"type":"object","required":["sessionUUID","fingerprintUUID","currentLeaseTime","driver","isVncEnabled","status","vncMode","createdAt","updatedAt"],"properties":{"sessionUUID":{"type":"string","format":"uuid"},"fingerprintUUID":{"type":"string","format":"uuid"},"currentLeaseTime":{"type":"integer","minimum":1,"maximum":60},"isVncEnabled":{"type":"boolean"},"vncPassword":{"type":"string","description":"VNC password for accessing the session"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"driver":{"$ref":"#/components/schemas/DriverType"},"status":{"$ref":"#/components/schemas/SessionStatus"},"vncMode":{"$ref":"#/components/schemas/VncMode"}}},"DriverType":{"type":"string","enum":["puppeteer","api"],"description":"Browser automation driver type"},"SessionStatus":{"type":"string","enum":["running","terminated"],"description":"The status of the session"},"VncMode":{"type":"string","enum":["rw","ro"],"description":"VNC access mode (read-write or read-only)"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/sessions":{"get":{"tags":["Sessions"],"summary":"ListSessions","description":"Retrieves a list of all active browser sessions in your environment, including their status, VNC settings, and lease times.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"List of active browser sessions","content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/Session"}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## CreateSessionWithoutFingerprint

> Creates a new browser session using a specified fingerprint (OPTIONAL). Configure VNC access, lease time, and other session parameters.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Sessions","description":"For managing browser sessions lifecycle."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"CreateSessionRequestBody":{"type":"object","required":["leaseTime","isVncEnabled","vncMode","driver"],"properties":{"fingerprintUUID":{"type":"string","format":"uuid"},"leaseTime":{"type":"integer","minimum":1,"maximum":60,"description":"Duration of the session lease in minutes"},"isVncEnabled":{"type":"boolean","description":"Whether VNC access is enabled for this session"},"vncMode":{"$ref":"#/components/schemas/VncMode"},"driver":{"$ref":"#/components/schemas/DriverType"},"showMouse":{"type":"boolean","default":false,"description":"Whether to show mouse movements"},"isProxyEnabled":{"type":"boolean","default":false,"description":"Whether to enable proxy for this session"}}},"VncMode":{"type":"string","enum":["rw","ro"],"description":"VNC access mode (read-write or read-only)"},"DriverType":{"type":"string","enum":["puppeteer","api"],"description":"Browser automation driver type"},"Session":{"type":"object","required":["sessionUUID","fingerprintUUID","currentLeaseTime","driver","isVncEnabled","status","vncMode","createdAt","updatedAt"],"properties":{"sessionUUID":{"type":"string","format":"uuid"},"fingerprintUUID":{"type":"string","format":"uuid"},"currentLeaseTime":{"type":"integer","minimum":1,"maximum":60},"isVncEnabled":{"type":"boolean"},"vncPassword":{"type":"string","description":"VNC password for accessing the session"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"driver":{"$ref":"#/components/schemas/DriverType"},"status":{"$ref":"#/components/schemas/SessionStatus"},"vncMode":{"$ref":"#/components/schemas/VncMode"}}},"SessionStatus":{"type":"string","enum":["running","terminated"],"description":"The status of the session"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/sessions":{"post":{"tags":["Sessions"],"summary":"CreateSessionWithoutFingerprint","description":"Creates a new browser session using a specified fingerprint (OPTIONAL). Configure VNC access, lease time, and other session parameters.","parameters":[{"name":"X-Fingerprint-Secret","in":"header","schema":{"type":"string"}},{"name":"X-Environment-Id","in":"header","schema":{"type":"string"}},{"name":"X-Environment-Secret","in":"header","schema":{"type":"string"}},{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequestBody"}}}},"responses":{"200":{"description":"Session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## GetSession

> Retrieves detailed information about a specific browser session, including its status, settings, and remaining lease time.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Sessions","description":"For managing browser sessions lifecycle."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Session":{"type":"object","required":["sessionUUID","fingerprintUUID","currentLeaseTime","driver","isVncEnabled","status","vncMode","createdAt","updatedAt"],"properties":{"sessionUUID":{"type":"string","format":"uuid"},"fingerprintUUID":{"type":"string","format":"uuid"},"currentLeaseTime":{"type":"integer","minimum":1,"maximum":60},"isVncEnabled":{"type":"boolean"},"vncPassword":{"type":"string","description":"VNC password for accessing the session"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"driver":{"$ref":"#/components/schemas/DriverType"},"status":{"$ref":"#/components/schemas/SessionStatus"},"vncMode":{"$ref":"#/components/schemas/VncMode"}}},"DriverType":{"type":"string","enum":["puppeteer","api"],"description":"Browser automation driver type"},"SessionStatus":{"type":"string","enum":["running","terminated"],"description":"The status of the session"},"VncMode":{"type":"string","enum":["rw","ro"],"description":"VNC access mode (read-write or read-only)"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/sessions/{sessionUUID}":{"get":{"tags":["Sessions"],"summary":"GetSession","description":"Retrieves detailed information about a specific browser session, including its status, settings, and remaining lease time.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"sessionUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Session details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## EndSession

> Terminates a browser session immediately, releasing all associated resources and ending the lease.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Sessions","description":"For managing browser sessions lifecycle."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/sessions/{sessionUUID}":{"delete":{"tags":["Sessions"],"summary":"EndSession","description":"Terminates a browser session immediately, releasing all associated resources and ending the lease.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"sessionUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Session terminated successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## UpdateSession

> Updates the settings of an active browser session. Currently supports extending the lease time.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Sessions","description":"For managing browser sessions lifecycle."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"UpdateSessionRequestBody":{"type":"object","properties":{"newLeaseTime":{"type":"integer"}},"required":["newLeaseTime"]},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/sessions/{sessionUUID}":{"patch":{"tags":["Sessions"],"summary":"UpdateSession","description":"Updates the settings of an active browser session. Currently supports extending the lease time.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequestBody"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"sessionUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Session lease time updated successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```


# Enviornments

## CreateEnvironment

> Creates a new environment

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Environments","description":"Endpoints for managing environments."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"EnvironmentWithSecret":{"allOf":[{"$ref":"#/components/schemas/Environment"},{"type":"object","required":["envSecret"],"properties":{"envSecret":{"type":"string"}}}]},"Environment":{"type":"object","required":["environmentUUID","name","publicKey","createdAt"],"properties":{"environmentUUID":{"type":"string","format":"uuid"},"name":{"type":"string"},"publicKey":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/environments":{"post":{"tags":["Environments"],"summary":"CreateEnvironment","description":"Creates a new environment","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}},"responses":{"200":{"description":"Created environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentWithSecret"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## ListEnvironments

> Retrieves a list of all environments

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Environments","description":"Endpoints for managing environments."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Environment":{"type":"object","required":["environmentUUID","name","publicKey","createdAt"],"properties":{"environmentUUID":{"type":"string","format":"uuid"},"name":{"type":"string"},"publicKey":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/environments":{"get":{"tags":["Environments"],"summary":"ListEnvironments","description":"Retrieves a list of all environments","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"List of environments","content":{"application/json":{"schema":{"type":"object","properties":{"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## GetEnvironment

> Retrieves details of a specific environment

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Environments","description":"Endpoints for managing environments."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Environment":{"type":"object","required":["environmentUUID","name","publicKey","createdAt"],"properties":{"environmentUUID":{"type":"string","format":"uuid"},"name":{"type":"string"},"publicKey":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/environments/{environmentUUID}":{"get":{"tags":["Environments"],"summary":"GetEnvironment","description":"Retrieves details of a specific environment","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"environmentUUID","in":"path","schema":{"type":"string","format":"uuid"},"required":true}],"responses":{"200":{"description":"Environment details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Environment"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## DeleteEnvironment

> Deletes a specific environment

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Environments","description":"Endpoints for managing environments."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/environments/{environmentUUID}":{"delete":{"tags":["Environments"],"summary":"DeleteEnvironment","description":"Deletes a specific environment","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"environmentUUID","in":"path","schema":{"type":"string","format":"uuid"},"required":true}],"responses":{"200":{"description":"Environment deleted successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```


# Fingerprints

Generate unique identifiers for your users to create a reusable environment of user session data, proxy, cookies and device configuration.

## GetFingerprint

> Retrieves detailed information about a specific fingerprint, including its configuration, proxy settings, and session status.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Fingerprint":{"type":"object","required":["fingerprintUUID","isArchived","browserConfig","deviceType","language","platform","proxy","timeZone","createdAt","updatedAt"],"properties":{"fingerprintUUID":{"type":"string","format":"uuid"},"isArchived":{"type":"boolean","default":false},"browserConfig":{"type":"object","required":["browser","extensions","numCameras","numMicrophones","numSpeakers","screenDPI","screenDepth","screenResolution"],"properties":{"browser":{"$ref":"#/components/schemas/BrowserType"},"extensions":{"type":"array","items":{"type":"string"},"default":[]},"numCameras":{"type":"integer","minimum":0},"numMicrophones":{"type":"integer","minimum":0},"numSpeakers":{"type":"integer","minimum":0},"screenDPI":{"$ref":"#/components/schemas/ScreenDPI"},"screenDepth":{"$ref":"#/components/schemas/ScreenDepth"},"screenResolution":{"$ref":"#/components/schemas/ScreenResolution"}}},"proxy":{"type":"object","required":["appliedDomains","type","city","country","state"],"properties":{"appliedDomains":{"type":"array","items":{"type":"string"},"default":[]},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"type":{"$ref":"#/components/schemas/ProxyType"}}},"language":{"type":"string","pattern":"^[a-z]{2}-[A-Z]{2}$"},"timeZone":{"type":"string"},"platform":{"$ref":"#/components/schemas/Platform"},"deviceType":{"$ref":"#/components/schemas/DeviceType"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BrowserType":{"type":"string","enum":["chromium"],"description":"Type of browser used for fingerprinting"},"ScreenDPI":{"type":"integer","enum":[96,120,144,192],"description":"Valid DPI (Dots Per Inch) values for screen configuration\nPossible values: 96, 120, 144, 192\n"},"ScreenDepth":{"type":"integer","enum":[24,30,32],"description":"Valid color depth values for screen configuration\nPossible values: 24, 30, 32\n"},"ScreenResolution":{"type":"string","enum":["1280x1024","1920x1080","1366x768","1536x864","1280x720","1440x900","1280x2400"],"description":"Valid screen resolution values\nCommon display resolutions in \"widthxheight\" format\n"},"ProxyType":{"type":"string","enum":["residential"],"description":"Type of proxy connection"},"Platform":{"type":"string","enum":["Windows","MacOS","Linux","Android","iOS"],"description":"Operating system platform"},"DeviceType":{"type":"string","enum":["desktop","mobile","tablet"],"description":"Type of device being emulated"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints/{fingerprintUUID}":{"get":{"tags":["Fingerprints"],"summary":"GetFingerprint","description":"Retrieves detailed information about a specific fingerprint, including its configuration, proxy settings, and session status.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"fingerprintUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Fingerprint details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fingerprint"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## GET /{mode}/v1/fingerprints

> ListFingerprints

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Fingerprint":{"type":"object","required":["fingerprintUUID","isArchived","browserConfig","deviceType","language","platform","proxy","timeZone","createdAt","updatedAt"],"properties":{"fingerprintUUID":{"type":"string","format":"uuid"},"isArchived":{"type":"boolean","default":false},"browserConfig":{"type":"object","required":["browser","extensions","numCameras","numMicrophones","numSpeakers","screenDPI","screenDepth","screenResolution"],"properties":{"browser":{"$ref":"#/components/schemas/BrowserType"},"extensions":{"type":"array","items":{"type":"string"},"default":[]},"numCameras":{"type":"integer","minimum":0},"numMicrophones":{"type":"integer","minimum":0},"numSpeakers":{"type":"integer","minimum":0},"screenDPI":{"$ref":"#/components/schemas/ScreenDPI"},"screenDepth":{"$ref":"#/components/schemas/ScreenDepth"},"screenResolution":{"$ref":"#/components/schemas/ScreenResolution"}}},"proxy":{"type":"object","required":["appliedDomains","type","city","country","state"],"properties":{"appliedDomains":{"type":"array","items":{"type":"string"},"default":[]},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"type":{"$ref":"#/components/schemas/ProxyType"}}},"language":{"type":"string","pattern":"^[a-z]{2}-[A-Z]{2}$"},"timeZone":{"type":"string"},"platform":{"$ref":"#/components/schemas/Platform"},"deviceType":{"$ref":"#/components/schemas/DeviceType"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BrowserType":{"type":"string","enum":["chromium"],"description":"Type of browser used for fingerprinting"},"ScreenDPI":{"type":"integer","enum":[96,120,144,192],"description":"Valid DPI (Dots Per Inch) values for screen configuration\nPossible values: 96, 120, 144, 192\n"},"ScreenDepth":{"type":"integer","enum":[24,30,32],"description":"Valid color depth values for screen configuration\nPossible values: 24, 30, 32\n"},"ScreenResolution":{"type":"string","enum":["1280x1024","1920x1080","1366x768","1536x864","1280x720","1440x900","1280x2400"],"description":"Valid screen resolution values\nCommon display resolutions in \"widthxheight\" format\n"},"ProxyType":{"type":"string","enum":["residential"],"description":"Type of proxy connection"},"Platform":{"type":"string","enum":["Windows","MacOS","Linux","Android","iOS"],"description":"Operating system platform"},"DeviceType":{"type":"string","enum":["desktop","mobile","tablet"],"description":"Type of device being emulated"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints":{"get":{"tags":["Fingerprints"],"summary":"ListFingerprints","parameters":[{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"List of fingerprints","content":{"application/json":{"schema":{"type":"object","properties":{"fingerprints":{"type":"array","items":{"$ref":"#/components/schemas/Fingerprint"}},"prevPage":{"type":"integer"},"nextPage":{"type":"integer"},"total":{"type":"integer"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## CreateFingerprint

> Creates a new fingerprint with specified browser configuration, device settings, and proxy settings. This fingerprint can be used to start new browser sessions.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"CreateFingerprintRequestBody":{"type":"object","required":["environmentUUID","screen"],"properties":{"environmentUUID":{"type":"string","format":"uuid"},"screen":{"type":"object","required":["resolution","depth","dpi"],"properties":{"resolution":{"$ref":"#/components/schemas/ScreenResolution"},"depth":{"$ref":"#/components/schemas/ScreenDepth"},"dpi":{"$ref":"#/components/schemas/ScreenDPI"}}},"device":{"type":"object","properties":{"numSpeakers":{"type":"integer","minimum":0},"numMicrophones":{"type":"integer","minimum":0},"numCameras":{"type":"integer","minimum":0}}},"proxy":{"type":"object","properties":{"country":{"type":"string"}}},"extensions":{"type":"array","items":{"type":"string"},"default":[]}}},"ScreenResolution":{"type":"string","enum":["1280x1024","1920x1080","1366x768","1536x864","1280x720","1440x900","1280x2400"],"description":"Valid screen resolution values\nCommon display resolutions in \"widthxheight\" format\n"},"ScreenDepth":{"type":"integer","enum":[24,30,32],"description":"Valid color depth values for screen configuration\nPossible values: 24, 30, 32\n"},"ScreenDPI":{"type":"integer","enum":[96,120,144,192],"description":"Valid DPI (Dots Per Inch) values for screen configuration\nPossible values: 96, 120, 144, 192\n"},"FingerprintWithSecret":{"allOf":[{"$ref":"#/components/schemas/Fingerprint"},{"type":"object","properties":{"fingerprintSecret":{"type":"string"}}}]},"Fingerprint":{"type":"object","required":["fingerprintUUID","isArchived","browserConfig","deviceType","language","platform","proxy","timeZone","createdAt","updatedAt"],"properties":{"fingerprintUUID":{"type":"string","format":"uuid"},"isArchived":{"type":"boolean","default":false},"browserConfig":{"type":"object","required":["browser","extensions","numCameras","numMicrophones","numSpeakers","screenDPI","screenDepth","screenResolution"],"properties":{"browser":{"$ref":"#/components/schemas/BrowserType"},"extensions":{"type":"array","items":{"type":"string"},"default":[]},"numCameras":{"type":"integer","minimum":0},"numMicrophones":{"type":"integer","minimum":0},"numSpeakers":{"type":"integer","minimum":0},"screenDPI":{"$ref":"#/components/schemas/ScreenDPI"},"screenDepth":{"$ref":"#/components/schemas/ScreenDepth"},"screenResolution":{"$ref":"#/components/schemas/ScreenResolution"}}},"proxy":{"type":"object","required":["appliedDomains","type","city","country","state"],"properties":{"appliedDomains":{"type":"array","items":{"type":"string"},"default":[]},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"type":{"$ref":"#/components/schemas/ProxyType"}}},"language":{"type":"string","pattern":"^[a-z]{2}-[A-Z]{2}$"},"timeZone":{"type":"string"},"platform":{"$ref":"#/components/schemas/Platform"},"deviceType":{"$ref":"#/components/schemas/DeviceType"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BrowserType":{"type":"string","enum":["chromium"],"description":"Type of browser used for fingerprinting"},"ProxyType":{"type":"string","enum":["residential"],"description":"Type of proxy connection"},"Platform":{"type":"string","enum":["Windows","MacOS","Linux","Android","iOS"],"description":"Operating system platform"},"DeviceType":{"type":"string","enum":["desktop","mobile","tablet"],"description":"Type of device being emulated"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints":{"post":{"tags":["Fingerprints"],"summary":"CreateFingerprint","description":"Creates a new fingerprint with specified browser configuration, device settings, and proxy settings. This fingerprint can be used to start new browser sessions.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFingerprintRequestBody"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Created fingerprint","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FingerprintWithSecret"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## CreateRandomFingerprint

> Generates a new fingerprint with randomized browser configuration, device settings, and proxy settings.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"CreateRandomFingerprintRequest":{"type":"object","required":["environmentUUID"],"properties":{"environmentUUID":{"type":"string","format":"uuid","description":"UUID of the environment to create the fingerprint in"}}},"FingerprintWithSecret":{"allOf":[{"$ref":"#/components/schemas/Fingerprint"},{"type":"object","properties":{"fingerprintSecret":{"type":"string"}}}]},"Fingerprint":{"type":"object","required":["fingerprintUUID","isArchived","browserConfig","deviceType","language","platform","proxy","timeZone","createdAt","updatedAt"],"properties":{"fingerprintUUID":{"type":"string","format":"uuid"},"isArchived":{"type":"boolean","default":false},"browserConfig":{"type":"object","required":["browser","extensions","numCameras","numMicrophones","numSpeakers","screenDPI","screenDepth","screenResolution"],"properties":{"browser":{"$ref":"#/components/schemas/BrowserType"},"extensions":{"type":"array","items":{"type":"string"},"default":[]},"numCameras":{"type":"integer","minimum":0},"numMicrophones":{"type":"integer","minimum":0},"numSpeakers":{"type":"integer","minimum":0},"screenDPI":{"$ref":"#/components/schemas/ScreenDPI"},"screenDepth":{"$ref":"#/components/schemas/ScreenDepth"},"screenResolution":{"$ref":"#/components/schemas/ScreenResolution"}}},"proxy":{"type":"object","required":["appliedDomains","type","city","country","state"],"properties":{"appliedDomains":{"type":"array","items":{"type":"string"},"default":[]},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"type":{"$ref":"#/components/schemas/ProxyType"}}},"language":{"type":"string","pattern":"^[a-z]{2}-[A-Z]{2}$"},"timeZone":{"type":"string"},"platform":{"$ref":"#/components/schemas/Platform"},"deviceType":{"$ref":"#/components/schemas/DeviceType"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BrowserType":{"type":"string","enum":["chromium"],"description":"Type of browser used for fingerprinting"},"ScreenDPI":{"type":"integer","enum":[96,120,144,192],"description":"Valid DPI (Dots Per Inch) values for screen configuration\nPossible values: 96, 120, 144, 192\n"},"ScreenDepth":{"type":"integer","enum":[24,30,32],"description":"Valid color depth values for screen configuration\nPossible values: 24, 30, 32\n"},"ScreenResolution":{"type":"string","enum":["1280x1024","1920x1080","1366x768","1536x864","1280x720","1440x900","1280x2400"],"description":"Valid screen resolution values\nCommon display resolutions in \"widthxheight\" format\n"},"ProxyType":{"type":"string","enum":["residential"],"description":"Type of proxy connection"},"Platform":{"type":"string","enum":["Windows","MacOS","Linux","Android","iOS"],"description":"Operating system platform"},"DeviceType":{"type":"string","enum":["desktop","mobile","tablet"],"description":"Type of device being emulated"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints/random":{"post":{"tags":["Fingerprints"],"summary":"CreateRandomFingerprint","description":"Generates a new fingerprint with randomized browser configuration, device settings, and proxy settings.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRandomFingerprintRequest"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Created random fingerprint","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FingerprintWithSecret"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## ArchiveFingerprint

> Archives a fingerprint by deleting all associated session data and marking it as no longer usable. Once archived, the fingerprint cannot be used to create new sessions.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints/{fingerprintUUID}/archive":{"post":{"tags":["Fingerprints"],"summary":"ArchiveFingerprint","description":"Archives a fingerprint by deleting all associated session data and marking it as no longer usable. Once archived, the fingerprint cannot be used to create new sessions.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"fingerprintUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Fingerprint archived","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## CloneFingerprint

> Creates a copy of an existing fingerprint's settings but generates new session data. This allows you to duplicate a successful configuration while maintaining unique session identifiers.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"FingerprintWithSecret":{"allOf":[{"$ref":"#/components/schemas/Fingerprint"},{"type":"object","properties":{"fingerprintSecret":{"type":"string"}}}]},"Fingerprint":{"type":"object","required":["fingerprintUUID","isArchived","browserConfig","deviceType","language","platform","proxy","timeZone","createdAt","updatedAt"],"properties":{"fingerprintUUID":{"type":"string","format":"uuid"},"isArchived":{"type":"boolean","default":false},"browserConfig":{"type":"object","required":["browser","extensions","numCameras","numMicrophones","numSpeakers","screenDPI","screenDepth","screenResolution"],"properties":{"browser":{"$ref":"#/components/schemas/BrowserType"},"extensions":{"type":"array","items":{"type":"string"},"default":[]},"numCameras":{"type":"integer","minimum":0},"numMicrophones":{"type":"integer","minimum":0},"numSpeakers":{"type":"integer","minimum":0},"screenDPI":{"$ref":"#/components/schemas/ScreenDPI"},"screenDepth":{"$ref":"#/components/schemas/ScreenDepth"},"screenResolution":{"$ref":"#/components/schemas/ScreenResolution"}}},"proxy":{"type":"object","required":["appliedDomains","type","city","country","state"],"properties":{"appliedDomains":{"type":"array","items":{"type":"string"},"default":[]},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"type":{"$ref":"#/components/schemas/ProxyType"}}},"language":{"type":"string","pattern":"^[a-z]{2}-[A-Z]{2}$"},"timeZone":{"type":"string"},"platform":{"$ref":"#/components/schemas/Platform"},"deviceType":{"$ref":"#/components/schemas/DeviceType"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BrowserType":{"type":"string","enum":["chromium"],"description":"Type of browser used for fingerprinting"},"ScreenDPI":{"type":"integer","enum":[96,120,144,192],"description":"Valid DPI (Dots Per Inch) values for screen configuration\nPossible values: 96, 120, 144, 192\n"},"ScreenDepth":{"type":"integer","enum":[24,30,32],"description":"Valid color depth values for screen configuration\nPossible values: 24, 30, 32\n"},"ScreenResolution":{"type":"string","enum":["1280x1024","1920x1080","1366x768","1536x864","1280x720","1440x900","1280x2400"],"description":"Valid screen resolution values\nCommon display resolutions in \"widthxheight\" format\n"},"ProxyType":{"type":"string","enum":["residential"],"description":"Type of proxy connection"},"Platform":{"type":"string","enum":["Windows","MacOS","Linux","Android","iOS"],"description":"Operating system platform"},"DeviceType":{"type":"string","enum":["desktop","mobile","tablet"],"description":"Type of device being emulated"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints/{fingerprintUUID}/clone":{"post":{"tags":["Fingerprints"],"summary":"CloneFingerprint","description":"Creates a copy of an existing fingerprint's settings but generates new session data. This allows you to duplicate a successful configuration while maintaining unique session identifiers.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"fingerprintUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Fingerprint cloned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FingerprintWithSecret"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## ResetFingerprint

> Deletes all session data associated with the fingerprint while preserving its configuration. This allows you to start fresh with the same fingerprint settings.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints/{fingerprintUUID}/reset":{"post":{"tags":["Fingerprints"],"summary":"ResetFingerprint","description":"Deletes all session data associated with the fingerprint while preserving its configuration. This allows you to start fresh with the same fingerprint settings.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"fingerprintUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Fingerprint reset","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## UpdateFingerprintProxy

> Updates the proxy settings for a specific fingerprint. This allows you to change the geographic location and routing of browser traffic.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Fingerprints","description":"Endpoints for creating and managing browser fingerprints. Controls browser configurations, device settings, proxy settings, and session data for unique browser identities."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"UpdateFingerprintProxyRequest":{"type":"object","required":["country"],"properties":{"country":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Z]{2}$","description":"Two-letter ISO country code for proxy location"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/fingerprints/{fingerprintUUID}/proxy":{"patch":{"tags":["Fingerprints"],"summary":"UpdateFingerprintProxy","description":"Updates the proxy settings for a specific fingerprint. This allows you to change the geographic location and routing of browser traffic.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFingerprintProxyRequest"}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"fingerprintUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Proxy settings updated","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```


# Extensions

Explore the list of extensions supported by TaskerAI. Session initialized with extensions will create browsers preloaded with listed extensions.

## ListExtensions

> Retrieves a list of all available browser extensions that can be added to fingerprints. These extensions can enhance browser functionality for specific use cases.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Extensions","description":"For listing available extensions and retrieving detailed extension information."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Extension":{"type":"object","required":["description","extensionUUID","name","url"],"properties":{"description":{"type":"string","description":"Brief description of the extension's functionality"},"extensionUUID":{"type":"string","format":"uuid"},"name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/extensions":{"get":{"tags":["Extensions"],"summary":"ListExtensions","description":"Retrieves a list of all available browser extensions that can be added to fingerprints. These extensions can enhance browser functionality for specific use cases.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"List of available extensions","content":{"application/json":{"schema":{"type":"object","properties":{"extensions":{"type":"array","items":{"$ref":"#/components/schemas/Extension"}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## GetExtension

> Retrieves detailed information about a specific browser extension, including its name, description, and installation URL.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Extensions","description":"For listing available extensions and retrieving detailed extension information."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Extension":{"type":"object","required":["description","extensionUUID","name","url"],"properties":{"description":{"type":"string","description":"Brief description of the extension's functionality"},"extensionUUID":{"type":"string","format":"uuid"},"name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/extensions/{extensionUUID}":{"get":{"tags":["Extensions"],"summary":"GetExtension","description":"Retrieves detailed information about a specific browser extension, including its name, description, and installation URL.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true},{"name":"extensionUUID","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Extension details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Extension"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```


# Page

If you selected api driver

## POST /{mode}/v1/page/goToPage

> goToPage

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Page","description":"Endpoints for controlling browser page interactions. Handles navigation, command execution, and automated browsing operations within active sessions."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/page/goToPage":{"post":{"tags":["Page"],"summary":"goToPage","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionUUID":{"type":"string"},"url":{"type":"string"}},"required":["sessionUUID","url"]}}}},"parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## Execute browser commands

> Executes a sequence of browser automation commands within an active session. Supports various actions like clicking, typing, hovering, and more.

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[{"name":"Page","description":"Endpoints for controlling browser page interactions. Handles navigation, command execution, and automated browsing operations within active sessions."}],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"ClickCommand":{"type":"object","required":["action","x","y"],"properties":{"action":{"type":"string","enum":["Click"]},"x":{"type":"number"},"y":{"type":"number"},"clickCount":{"type":"integer","default":1},"button":{"type":"string","enum":["left","right","middle"],"default":"left"}}},"HoverCommand":{"type":"object","required":["action","x","y"],"properties":{"action":{"type":"string","enum":["Hover"]},"x":{"type":"number"},"y":{"type":"number"}}},"TypeInputCommand":{"type":"object","required":["action","x","y","input"],"properties":{"action":{"type":"string","enum":["TypeInput"]},"x":{"type":"number"},"y":{"type":"number"},"input":{"type":"string"}}},"SelectCommand":{"type":"object","required":["action","x","y","value"],"properties":{"action":{"type":"string","enum":["Select"]},"x":{"type":"number"},"y":{"type":"number"},"value":{"type":"string"}}},"DelayCommand":{"type":"object","required":["action","delay"],"properties":{"action":{"type":"string","enum":["Delay"]},"delay":{"type":"number","description":"Delay in milliseconds"}}},"ScreenShotCommand":{"type":"object","required":["action","x","y","width","height"],"properties":{"action":{"type":"string","enum":["ScreenShot"]},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"}}},"ScrollToCommand":{"type":"object","required":["action","x","y"],"properties":{"action":{"type":"string","enum":["ScrollTo"]},"x":{"type":"number"},"y":{"type":"number"}}},"KeyPressCommand":{"type":"object","required":["action","key"],"properties":{"action":{"type":"string","enum":["KeyPress"]},"key":{"type":"string","description":"Key to press (e.g., \"Enter\", \"Tab\", \"a\", etc.)"}}},"ScrollNextCommand":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["ScrollNext"]}}},"ScrollBottomCommand":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["ScrollBottom"]}}},"ScrollTopCommand":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["ScrollTop"]}}},"FullScreenshotCommand":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["FullScreenshot"]}}},"ScrollAtPositionCommand":{"type":"object","required":["action","x","y","factor","axis"],"properties":{"action":{"type":"string","enum":["ScrollAtPosition"]},"x":{"type":"number"},"y":{"type":"number"},"factor":{"type":"number"},"axis":{"type":"string"}}},"GetElmsCommand":{"type":"object","required":["action","selector"],"properties":{"action":{"type":"string","enum":["GetElms"]},"selector":{"type":"string","description":"CSS selector to find elements"}}},"GetRepeatedElmsByXpathCommand":{"type":"object","required":["action","xpath"],"properties":{"action":{"type":"string","enum":["GetRepeatedElmsByXpath"]},"xpath":{"type":"string","description":"XPath selector to find repeated elements"}}},"GetRepeatedElmsCommand":{"type":"object","required":["action","selector"],"properties":{"action":{"type":"string","enum":["GetRepeatedElms"]},"selector":{"type":"string","description":"CSS selector to find repeated elements"}}},"UnknownCommand":{"type":"object","required":["action"],"properties":{"action":{"type":"string","description":"Any action type not covered by specific commands"}},"additionalProperties":true,"description":"Fallback command type for unknown or custom actions"},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/{mode}/v1/page/executeCommands":{"post":{"tags":["Page"],"summary":"Execute browser commands","description":"Executes a sequence of browser automation commands within an active session. Supports various actions like clicking, typing, hovering, and more.","parameters":[{"name":"mode","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sessionUUID","commands"],"properties":{"sessionUUID":{"type":"string","format":"uuid"},"commands":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ClickCommand"},{"$ref":"#/components/schemas/HoverCommand"},{"$ref":"#/components/schemas/TypeInputCommand"},{"$ref":"#/components/schemas/SelectCommand"},{"$ref":"#/components/schemas/DelayCommand"},{"$ref":"#/components/schemas/ScreenShotCommand"},{"$ref":"#/components/schemas/ScrollToCommand"},{"$ref":"#/components/schemas/KeyPressCommand"},{"$ref":"#/components/schemas/ScrollNextCommand"},{"$ref":"#/components/schemas/ScrollBottomCommand"},{"$ref":"#/components/schemas/ScrollTopCommand"},{"$ref":"#/components/schemas/FullScreenshotCommand"},{"$ref":"#/components/schemas/ScrollAtPositionCommand"},{"$ref":"#/components/schemas/GetElmsCommand"},{"$ref":"#/components/schemas/GetRepeatedElmsByXpathCommand"},{"$ref":"#/components/schemas/GetRepeatedElmsCommand"},{"$ref":"#/components/schemas/UnknownCommand"}]}}}}}}},"responses":{"200":{"description":"Commands executed successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```


# Operators

## List all operators

> Retrieves a list of all available operators

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Operator":{"type":"object","required":["numOfBrowsers","info","connectedAt","id"],"properties":{"numOfBrowsers":{"type":"integer","minimum":0},"info":{"$ref":"#/components/schemas/OperatorInfo"},"connectedAt":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"OperatorInfo":{"type":"object","required":["platform","architecture","freeMemory","totalMemory","cpuModel","hostname"],"properties":{"platform":{"type":"string"},"architecture":{"type":"string"},"freeMemory":{"type":"integer"},"totalMemory":{"type":"integer"},"cpuModel":{"type":"string"},"hostname":{"type":"string"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/v1/operators/listAll":{"get":{"tags":["operators"],"summary":"List all operators","description":"Retrieves a list of all available operators","responses":{"200":{"description":"List of all operators","content":{"application/json":{"schema":{"type":"object","required":["nodes"],"properties":{"nodes":{"type":"array","items":{"$ref":"#/components/schemas/Operator"}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## Get operator information

> Retrieves detailed information about a specific operator

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Operator":{"type":"object","required":["numOfBrowsers","info","connectedAt","id"],"properties":{"numOfBrowsers":{"type":"integer","minimum":0},"info":{"$ref":"#/components/schemas/OperatorInfo"},"connectedAt":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"OperatorInfo":{"type":"object","required":["platform","architecture","freeMemory","totalMemory","cpuModel","hostname"],"properties":{"platform":{"type":"string"},"architecture":{"type":"string"},"freeMemory":{"type":"integer"},"totalMemory":{"type":"integer"},"cpuModel":{"type":"string"},"hostname":{"type":"string"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/v1/operators/{operatorId}/info":{"get":{"tags":["operators"],"summary":"Get operator information","description":"Retrieves detailed information about a specific operator","parameters":[{"name":"operatorId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operator information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operator"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## Get random operator

> Retrieves a random operator ID

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/v1/operators/random":{"get":{"tags":["operators"],"summary":"Get random operator","description":"Retrieves a random operator ID","responses":{"200":{"description":"Random operator ID","content":{"application/json":{"schema":{"type":"object","required":["operatorId"],"properties":{"operatorId":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```

## Get operators information

> Retrieves information about all operators and total browser count

```json
{"openapi":"3.0.1","info":{"title":"tasknet-api","version":"1.0.0"},"tags":[],"servers":[{"url":"https://api.tasknet.co"}],"security":[{"ApiKey":[],"ApiKeyUUID":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Operator":{"type":"object","required":["numOfBrowsers","info","connectedAt","id"],"properties":{"numOfBrowsers":{"type":"integer","minimum":0},"info":{"$ref":"#/components/schemas/OperatorInfo"},"connectedAt":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"OperatorInfo":{"type":"object","required":["platform","architecture","freeMemory","totalMemory","cpuModel","hostname"],"properties":{"platform":{"type":"string"},"architecture":{"type":"string"},"freeMemory":{"type":"integer"},"totalMemory":{"type":"integer"},"cpuModel":{"type":"string"},"hostname":{"type":"string"}}},"BaseError":{"type":"object","required":["message","code"],"properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{}}}}},"paths":{"/v1/operators/info":{"get":{"tags":["operators"],"summary":"Get operators information","description":"Retrieves information about all operators and total browser count","responses":{"200":{"description":"Operators information and browser count","content":{"application/json":{"schema":{"type":"object","required":["nodes","browsers"],"properties":{"nodes":{"type":"array","items":{"$ref":"#/components/schemas/Operator"}},"browsers":{"type":"integer","minimum":0}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseError"}}}}}}}}}
```


# Files

Download or upload files from a browser session

listFiles

downloadFile

uploadFile


# Providers


# Commands

Execute commands directly on a browser session

{% hint style="info" %}
Only enabled if a browser session driver is set to api&#x20;
{% endhint %}

### goToPage

### goBack

getMarkDown

getPDF

```typescript
DelayCommand,
HoverCommand,
ClickCommand,
CheckBoxCommand,
GetRepeatedElmsByXpathCommand,
TypeInputCommand,
SelectCommand,
GetSelectOptions,
GetElms,
FullScreenshot,
GetRepeatedElmsCommand,
ScreenShot,
ScrollTop,
ScrollBottom,
ScrollTo,
ScrollNext,
ScrollAtPosition,
IsDialogOpen,
CloseDialog,
SelectFileFromDialog,

```


# Changelog

A chronological list of all updates, fixes, and improvements made to the api

***

## 2025.01.27 (v1.0.0)

**Features**

* Create on-demand browser sessions with fully customizable configurations (device, proxy, etc.), controllable via Puppeteer, or API.
* Use and customize a unique *Fingerprint* for each user, ensuring individualized sessions.
* RealTime View of the browser session.
* Download and Upload files to a browser session.


# Coming Soon


