# Scrapfly Documentation

## Table of Contents

### Dashboard

- [Intro](https://scrapfly.io/docs)
- [Project](https://scrapfly.io/docs/project)
- [Account](https://scrapfly.io/docs/account)
- [Workspace & Team](https://scrapfly.io/docs/workspace-and-team)
- [Billing](https://scrapfly.io/docs/billing)

### Products

#### MCP Server

- [Getting Started](https://scrapfly.io/docs/mcp/getting-started)
- [Tools & API Spec](https://scrapfly.io/docs/mcp/tools)
- [Authentication](https://scrapfly.io/docs/mcp/authentication)
- [Examples & Use Cases](https://scrapfly.io/docs/mcp/examples)
- [FAQ](https://scrapfly.io/docs/mcp/faq)
##### Integrations

- [Overview](https://scrapfly.io/docs/mcp/integrations)
- [Claude Desktop](https://scrapfly.io/docs/mcp/integrations/claude-desktop)
- [Claude Code](https://scrapfly.io/docs/mcp/integrations/claude-code)
- [ChatGPT](https://scrapfly.io/docs/mcp/integrations/chatgpt)
- [Cursor](https://scrapfly.io/docs/mcp/integrations/cursor)
- [Cline](https://scrapfly.io/docs/mcp/integrations/cline)
- [Windsurf](https://scrapfly.io/docs/mcp/integrations/windsurf)
- [Zed](https://scrapfly.io/docs/mcp/integrations/zed)
- [Roo Code](https://scrapfly.io/docs/mcp/integrations/roo-code)
- [VS Code](https://scrapfly.io/docs/mcp/integrations/vscode)
- [LangChain](https://scrapfly.io/docs/mcp/integrations/langchain)
- [LlamaIndex](https://scrapfly.io/docs/mcp/integrations/llamaindex)
- [CrewAI](https://scrapfly.io/docs/mcp/integrations/crewai)
- [OpenAI](https://scrapfly.io/docs/mcp/integrations/openai)
- [n8n](https://scrapfly.io/docs/mcp/integrations/n8n)
- [Make](https://scrapfly.io/docs/mcp/integrations/make)
- [Zapier](https://scrapfly.io/docs/mcp/integrations/zapier)
- [Vapi AI](https://scrapfly.io/docs/mcp/integrations/vapi)
- [Agent Builder](https://scrapfly.io/docs/mcp/integrations/agent-builder)
- [Custom Client](https://scrapfly.io/docs/mcp/integrations/custom-client)


#### Web Scraping API

- [Getting Started](https://scrapfly.io/docs/scrape-api/getting-started)
- [API Specification]()
- [Monitoring](https://scrapfly.io/docs/monitoring)
- [Customize Request](https://scrapfly.io/docs/scrape-api/custom)
- [Debug](https://scrapfly.io/docs/scrape-api/debug)
- [Anti Scraping Protection](https://scrapfly.io/docs/scrape-api/anti-scraping-protection)
- [Proxy](https://scrapfly.io/docs/scrape-api/proxy)
- [Proxy Mode](https://scrapfly.io/docs/scrape-api/proxy-mode)
- [Proxy Mode - Screaming Frog](https://scrapfly.io/docs/scrape-api/proxy-mode/screaming-frog)
- [Proxy Mode - Apify](https://scrapfly.io/docs/scrape-api/proxy-mode/apify)
- [(Auto) Data Extraction](https://scrapfly.io/docs/scrape-api/extraction)
- [Javascript Rendering](https://scrapfly.io/docs/scrape-api/javascript-rendering)
- [Javascript Scenario](https://scrapfly.io/docs/scrape-api/javascript-scenario)
- [SSL](https://scrapfly.io/docs/scrape-api/ssl)
- [DNS](https://scrapfly.io/docs/scrape-api/dns)
- [Cache](https://scrapfly.io/docs/scrape-api/cache)
- [Session](https://scrapfly.io/docs/scrape-api/session)
- [Webhook](https://scrapfly.io/docs/scrape-api/webhook)
- [Screenshot](https://scrapfly.io/docs/scrape-api/screenshot)
- [Errors](https://scrapfly.io/docs/scrape-api/errors)
- [Timeout](https://scrapfly.io/docs/scrape-api/understand-timeout)
- [Throttling](https://scrapfly.io/docs/throttling)
- [Troubleshoot](https://scrapfly.io/docs/scrape-api/troubleshoot)
- [Billing](https://scrapfly.io/docs/scrape-api/billing)
- [FAQ](https://scrapfly.io/docs/scrape-api/faq)

#### Crawler API

- [Getting Started](https://scrapfly.io/docs/crawler-api/getting-started)
- [API Specification]()
- [Retrieving Results](https://scrapfly.io/docs/crawler-api/results)
- [WARC Format](https://scrapfly.io/docs/crawler-api/warc-format)
- [Data Extraction](https://scrapfly.io/docs/crawler-api/extraction-rules)
- [Webhook](https://scrapfly.io/docs/crawler-api/webhook)
- [Billing](https://scrapfly.io/docs/crawler-api/billing)
- [Errors](https://scrapfly.io/docs/crawler-api/errors)
- [Troubleshoot](https://scrapfly.io/docs/crawler-api/troubleshoot)
- [FAQ](https://scrapfly.io/docs/crawler-api/faq)

#### Screenshot API

- [Getting Started](https://scrapfly.io/docs/screenshot-api/getting-started)
- [API Specification]()
- [Accessibility Testing](https://scrapfly.io/docs/screenshot-api/accessibility)
- [Webhook](https://scrapfly.io/docs/screenshot-api/webhook)
- [Billing](https://scrapfly.io/docs/screenshot-api/billing)
- [Errors](https://scrapfly.io/docs/screenshot-api/errors)

#### Extraction API

- [Getting Started](https://scrapfly.io/docs/extraction-api/getting-started)
- [API Specification]()
- [Rules Template](https://scrapfly.io/docs/extraction-api/rules-and-template)
- [LLM Extraction](https://scrapfly.io/docs/extraction-api/llm-prompt)
- [AI Auto Extraction](https://scrapfly.io/docs/extraction-api/automatic-ai)
- [Webhook](https://scrapfly.io/docs/extraction-api/webhook)
- [Billing](https://scrapfly.io/docs/extraction-api/billing)
- [Errors](https://scrapfly.io/docs/extraction-api/errors)
- [FAQ](https://scrapfly.io/docs/extraction-api/faq)

#### Proxy Saver

- [Getting Started](https://scrapfly.io/docs/proxy-saver/getting-started)
- [Fingerprints](https://scrapfly.io/docs/proxy-saver/fingerprints)
- [Optimizations](https://scrapfly.io/docs/proxy-saver/optimizations)
- [SSL Certificates](https://scrapfly.io/docs/proxy-saver/certificates)
- [Protocols](https://scrapfly.io/docs/proxy-saver/protocols)
- [Pacfile](https://scrapfly.io/docs/proxy-saver/pacfile)
- [Secure Credentials](https://scrapfly.io/docs/proxy-saver/security)
- [Billing](https://scrapfly.io/docs/proxy-saver/billing)

#### Cloud Browser API

- [Getting Started](https://scrapfly.io/docs/cloud-browser-api/getting-started)
- [Proxy & Geo-Targeting](https://scrapfly.io/docs/cloud-browser-api/proxy)
- [Unblock API](https://scrapfly.io/docs/cloud-browser-api/unblock)
- [File Downloads](https://scrapfly.io/docs/cloud-browser-api/file-downloads)
- [Session Resume](https://scrapfly.io/docs/cloud-browser-api/session-resume)
- [Human-in-the-Loop](https://scrapfly.io/docs/cloud-browser-api/human-in-the-loop)
- [Debug Mode](https://scrapfly.io/docs/cloud-browser-api/debug-mode)
- [Bring Your Own Proxy](https://scrapfly.io/docs/cloud-browser-api/bring-your-own-proxy)
- [Browser Extensions](https://scrapfly.io/docs/cloud-browser-api/extensions)
- [Native Browser MCP](https://scrapfly.io/docs/cloud-browser-api/mcp)
- [DevTools Protocol](https://scrapfly.io/docs/cloud-browser-api/cdp-reference)
##### Integrations

- [Puppeteer](https://scrapfly.io/docs/cloud-browser-api/puppeteer)
- [Playwright](https://scrapfly.io/docs/cloud-browser-api/playwright)
- [Selenium](https://scrapfly.io/docs/cloud-browser-api/selenium)
- [Vercel Agent Browser](https://scrapfly.io/docs/cloud-browser-api/agent-browser)
- [Browser Use](https://scrapfly.io/docs/cloud-browser-api/browser-use)
- [Stagehand](https://scrapfly.io/docs/cloud-browser-api/stagehand)

- [Billing](https://scrapfly.io/docs/cloud-browser-api/billing)
- [Errors](https://scrapfly.io/docs/cloud-browser-api/errors)


### Tools

- [Antibot Detector](https://scrapfly.io/docs/tools/antibot-detector)

### SDK

- [Golang](https://scrapfly.io/docs/sdk/golang)
- [Python](https://scrapfly.io/docs/sdk/python)
- [Rust](https://scrapfly.io/docs/sdk/rust)
- [TypeScript](https://scrapfly.io/docs/sdk/typescript)
- [Scrapy](https://scrapfly.io/docs/sdk/scrapy)

### Integrations

- [Getting Started](https://scrapfly.io/docs/integration/getting-started)
- [LangChain](https://scrapfly.io/docs/integration/langchain)
- [LlamaIndex](https://scrapfly.io/docs/integration/llamaindex)
- [CrewAI](https://scrapfly.io/docs/integration/crewai)
- [Zapier](https://scrapfly.io/docs/integration/zapier)
- [Make](https://scrapfly.io/docs/integration/make)
- [n8n](https://scrapfly.io/docs/integration/n8n)

### Academy

- [Overview](https://scrapfly.io/academy)
- [Web Scraping Overview](https://scrapfly.io/academy/scraping-overview)
- [Tools](https://scrapfly.io/academy/tools-overview)
- [Reverse Engineering](https://scrapfly.io/academy/reverse-engineering)
- [Static Scraping](https://scrapfly.io/academy/static-scraping)
- [HTML Parsing](https://scrapfly.io/academy/html-parsing)
- [Dynamic Scraping](https://scrapfly.io/academy/dynamic-scraping)
- [Hidden API Scraping](https://scrapfly.io/academy/hidden-api-scraping)
- [Headless Browsers](https://scrapfly.io/academy/headless-browsers)
- [Hidden Web Data](https://scrapfly.io/academy/hidden-web-data)
- [JSON Parsing](https://scrapfly.io/academy/json-parsing)
- [Data Processing](https://scrapfly.io/academy/data-processing)
- [Scaling](https://scrapfly.io/academy/scaling)
- [Walkthrough Summary](https://scrapfly.io/academy/walkthrough-summary)
- [Scraper Blocking](https://scrapfly.io/academy/scraper-blocking)
- [Proxies](https://scrapfly.io/academy/proxies)

---

 1. [DevTools Protocol](https://scrapfly.io/docs/cloud-browser-api/cdp-reference)
2. BluetoothEmulation
 
  # BluetoothEmulation

 Experimental 

This domain allows configuring virtual Bluetooth devices to test the web-bluetooth API.

 - [Commands (15)](#commands)
- [Events (3)](#events)
- [Types (9)](#types)
 
   

No symbols match your filter.

## Commands

#### `BluetoothEmulation.enable`

 

Enable the BluetoothEmulation domain.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `state` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-CentralState">CentralState</a>` | State of the simulated central. |
| `leSupported` | `boolean` | If the simulated central supports low-energy. |

 

 

 

#### `BluetoothEmulation.setSimulatedCentralState`

 

Set the state of the simulated central.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `state` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-CentralState">CentralState</a>` | State of the simulated central. |

 

 

 

#### `BluetoothEmulation.disable`

 

Disable the BluetoothEmulation domain.

 

 

#### `BluetoothEmulation.simulatePreconnectedPeripheral`

 

Simulates a peripheral with |address|, |name| and |knownServiceUuids|
that has already been connected to the system.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `address` | `string` |  |
| `name` | `string` |  |
| `manufacturerData` | `array<<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-ManufacturerData">ManufacturerData</a>>` |  |
| `knownServiceUuids` | `array<<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-string">string</a>>` |  |

 

 

 

#### `BluetoothEmulation.simulateAdvertisement`

 

Simulates an advertisement packet described in |entry| being received by
the central.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `entry` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-ScanEntry">ScanEntry</a>` |  |

 

 

 

#### `BluetoothEmulation.simulateGATTOperationResponse`

 

Simulates the response code from the peripheral with |address| for a
GATT operation of |type|. The |code| value follows the HCI Error Codes from
Bluetooth Core Specification Vol 2 Part D 1.3 List Of Error Codes.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `address` | `string` |  |
| `type` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-GATTOperationType">GATTOperationType</a>` |  |
| `code` | `integer` |  |

 

 

 

#### `BluetoothEmulation.simulateCharacteristicOperationResponse`

 

Simulates the response from the characteristic with |characteristicId| for a
characteristic operation of |type|. The |code| value follows the Error
Codes from Bluetooth Core Specification Vol 3 Part F 3.4.1.1 Error Response.
The |data| is expected to exist when simulating a successful read operation
response.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `characteristicId` | `string` |  |
| `type` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-CharacteristicOperationType">CharacteristicOperationType</a>` |  |
| `code` | `integer` |  |
| `data`  (optional) | `binary` |  |

 

 

 

#### `BluetoothEmulation.simulateDescriptorOperationResponse`

 

Simulates the response from the descriptor with |descriptorId| for a
descriptor operation of |type|. The |code| value follows the Error
Codes from Bluetooth Core Specification Vol 3 Part F 3.4.1.1 Error Response.
The |data| is expected to exist when simulating a successful read operation
response.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `descriptorId` | `string` |  |
| `type` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-DescriptorOperationType">DescriptorOperationType</a>` |  |
| `code` | `integer` |  |
| `data`  (optional) | `binary` |  |

 

 

 

#### `BluetoothEmulation.addService`

 

Adds a service with |serviceUuid| to the peripheral with |address|.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `address` | `string` |  |
| `serviceUuid` | `string` |  |

 

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `serviceId` | `string` | An identifier that uniquely represents this service. |

 

 

 

#### `BluetoothEmulation.removeService`

 

Removes the service respresented by |serviceId| from the simulated central.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `serviceId` | `string` |  |

 

 

 

#### `BluetoothEmulation.addCharacteristic`

 

Adds a characteristic with |characteristicUuid| and |properties| to the
service represented by |serviceId|.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `serviceId` | `string` |  |
| `characteristicUuid` | `string` |  |
| `properties` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-CharacteristicProperties">CharacteristicProperties</a>` |  |

 

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `characteristicId` | `string` | An identifier that uniquely represents this characteristic. |

 

 

 

#### `BluetoothEmulation.removeCharacteristic`

 

Removes the characteristic respresented by |characteristicId| from the
simulated central.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `characteristicId` | `string` |  |

 

 

 

#### `BluetoothEmulation.addDescriptor`

 

Adds a descriptor with |descriptorUuid| to the characteristic respresented
by |characteristicId|.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `characteristicId` | `string` |  |
| `descriptorUuid` | `string` |  |

 

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `descriptorId` | `string` | An identifier that uniquely represents this descriptor. |

 

 

 

#### `BluetoothEmulation.removeDescriptor`

 

Removes the descriptor with |descriptorId| from the simulated central.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `descriptorId` | `string` |  |

 

 

 

#### `BluetoothEmulation.simulateGATTDisconnection`

 

Simulates a GATT disconnection from the peripheral with |address|.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `address` | `string` |  |

 

 

 

 

## Events

#### `BluetoothEmulation.gattOperationReceived`

 

Event for when a GATT operation of |type| to the peripheral with |address|
happened.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `address` | `string` |  |
| `type` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-GATTOperationType">GATTOperationType</a>` |  |

 

 

 

#### `BluetoothEmulation.characteristicOperationReceived`

 

Event for when a characteristic operation of |type| to the characteristic
respresented by |characteristicId| happened. |data| and |writeType| is
expected to exist when |type| is write.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `characteristicId` | `string` |  |
| `type` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-CharacteristicOperationType">CharacteristicOperationType</a>` |  |
| `data`  (optional) | `binary` |  |
| `writeType`  (optional) | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-CharacteristicWriteType">CharacteristicWriteType</a>` |  |

 

 

 

#### `BluetoothEmulation.descriptorOperationReceived`

 

Event for when a descriptor operation of |type| to the descriptor
respresented by |descriptorId| happened. |data| is expected to exist when
|type| is write.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `descriptorId` | `string` |  |
| `type` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-DescriptorOperationType">DescriptorOperationType</a>` |  |
| `data`  (optional) | `binary` |  |

 

 

 

 

## Types

#### `CentralState`

 (string) 

Indicates the various states of Central.

###### Allowed Values

- `absent`
- `powered-off`
- `powered-on`
 
 

 

#### `GATTOperationType`

 (string) 

Indicates the various types of GATT event.

###### Allowed Values

- `connection`
- `discovery`
 
 

 

#### `CharacteristicWriteType`

 (string) 

Indicates the various types of characteristic write.

###### Allowed Values

- `write-default-deprecated`
- `write-with-response`
- `write-without-response`
 
 

 

#### `CharacteristicOperationType`

 (string) 

Indicates the various types of characteristic operation.

###### Allowed Values

- `read`
- `write`
- `subscribe-to-notifications`
- `unsubscribe-from-notifications`
 
 

 

#### `DescriptorOperationType`

 (string) 

Indicates the various types of descriptor operation.

###### Allowed Values

- `read`
- `write`
 
 

 

#### `ManufacturerData`

 (object) 

Stores the manufacturer data

###### Properties

 | Name | Type | Description |
|---|---|---|
| `key` | `integer` | Company identifier https://bitbucket.org/bluetooth-SIG/public/src/main/assigned\_numbers/company\_identifiers/company\_identifiers.yaml https://usb.org/developers |
| `data` | `binary` | Manufacturer-specific data |

 

 

 

#### `ScanRecord`

 (object) 

Stores the byte data of the advertisement packet sent by a Bluetooth device.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `name`  (optional) | `string` |  |
| `uuids`  (optional) | `array<<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-string">string</a>>` |  |
| `appearance`  (optional) | `integer` | Stores the external appearance description of the device. |
| `txPower`  (optional) | `integer` | Stores the transmission power of a broadcasting device. |
| `manufacturerData`  (optional) | `array<<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-ManufacturerData">ManufacturerData</a>>` | Key is the company identifier and the value is an array of bytes of manufacturer specific data. |

 

 

 

#### `ScanEntry`

 (object) 

Stores the advertisement packet information that is sent by a Bluetooth device.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `deviceAddress` | `string` |  |
| `rssi` | `integer` |  |
| `scanRecord` | `<a href="/docs/cloud-browser-api/cdp-reference/BluetoothEmulation#type-ScanRecord">ScanRecord</a>` |  |

 

 

 

#### `CharacteristicProperties`

 (object) 

Describes the properties of a characteristic. This follows Bluetooth Core
Specification BT 4.2 Vol 3 Part G 3.3.1. Characteristic Properties.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `broadcast`  (optional) | `boolean` |  |
| `read`  (optional) | `boolean` |  |
| `writeWithoutResponse`  (optional) | `boolean` |  |
| `write`  (optional) | `boolean` |  |
| `notify`  (optional) | `boolean` |  |
| `indicate`  (optional) | `boolean` |  |
| `authenticatedSignedWrites`  (optional) | `boolean` |  |
| `extendedProperties`  (optional) | `boolean` |  |