# 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. Profiler
 
  # Profiler

 

**Dependencies:** [Runtime](https://scrapfly.io/docs/cloud-browser-api/cdp-reference/Runtime), [Debugger](https://scrapfly.io/docs/cloud-browser-api/cdp-reference/Debugger)

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

No symbols match your filter.

## Commands

#### `Profiler.disable`

 

 

 

#### `Profiler.enable`

 

 

 

#### `Profiler.getBestEffortCoverage`

 

Collect coverage data for the current isolate. The coverage data may be incomplete due to
garbage collection.

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `result` | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-ScriptCoverage">ScriptCoverage</a>>` | Coverage data for the current isolate. |

 

 

 

#### `Profiler.setSamplingInterval`

 

Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `interval` | `integer` | New sampling interval in microseconds. |

 

 

 

#### `Profiler.start`

 

 

 

#### `Profiler.startPreciseCoverage`

 

Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code
coverage may be incomplete. Enabling prevents running optimized code and resets execution
counters.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `callCount`  (optional) | `boolean` | Collect accurate call counts beyond simple 'covered' or 'not covered'. |
| `detailed`  (optional) | `boolean` | Collect block-based coverage. |
| `allowTriggeredUpdates`  (optional) | `boolean` | Allow the backend to send updates on its own initiative |

 

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `timestamp` | `number` | Monotonically increasing time (in seconds) when the coverage update was taken in the backend. |

 

 

 

#### `Profiler.stop`

 

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `profile` | `<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-Profile">Profile</a>` | Recorded profile. |

 

 

 

#### `Profiler.stopPreciseCoverage`

 

Disable precise code coverage. Disabling releases unnecessary execution count records and allows
executing optimized code.

 

 

#### `Profiler.takePreciseCoverage`

 

Collect coverage data for the current isolate, and resets execution counters. Precise code
coverage needs to have started.

###### Return Object

 | Name | Type | Description |
|---|---|---|
| `result` | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-ScriptCoverage">ScriptCoverage</a>>` | Coverage data for the current isolate. |
| `timestamp` | `number` | Monotonically increasing time (in seconds) when the coverage update was taken in the backend. |

 

 

 

 

## Events

#### `Profiler.consoleProfileFinished`

 

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `id` | `string` |  |
| `location` | `<a href="/docs/cloud-browser-api/cdp-reference/Debugger#type-Location">Debugger.Location</a>` | Location of console.profileEnd(). |
| `profile` | `<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-Profile">Profile</a>` |  |
| `title`  (optional) | `string` | Profile title passed as an argument to console.profile(). |

 

 

 

#### `Profiler.consoleProfileStarted`

 

Sent when new profile recording is started using console.profile() call.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `id` | `string` |  |
| `location` | `<a href="/docs/cloud-browser-api/cdp-reference/Debugger#type-Location">Debugger.Location</a>` | Location of console.profile(). |
| `title`  (optional) | `string` | Profile title passed as an argument to console.profile(). |

 

 

 

#### `Profiler.preciseCoverageDeltaUpdate`

 Experimental 

Reports coverage delta since the last poll (either from an event like this, or from
`takePreciseCoverage` for the current isolate. May only be sent if precise code
coverage has been started. This event can be trigged by the embedder to, for example,
trigger collection of coverage data immediately at a certain point in time.

###### Parameters

 | Name | Type | Description |
|---|---|---|
| `timestamp` | `number` | Monotonically increasing time (in seconds) when the coverage update was taken in the backend. |
| `occasion` | `string` | Identifier for distinguishing coverage events. |
| `result` | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-ScriptCoverage">ScriptCoverage</a>>` | Coverage data for the current isolate. |

 

 

 

 

## Types

#### `ProfileNode`

 (object) 

Profile node. Holds callsite information, execution statistics and child nodes.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `id` | `integer` | Unique id of the node. |
| `callFrame` | `<a href="/docs/cloud-browser-api/cdp-reference/Runtime#type-CallFrame">Runtime.CallFrame</a>` | Function location. |
| `hitCount`  (optional) | `integer` | Number of samples where this node was on top of the call stack. |
| `children`  (optional) | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-integer">integer</a>>` | Child node ids. |
| `deoptReason`  (optional) | `string` | The reason of being not optimized. The function may be deoptimized or marked as don't optimize. |
| `positionTicks`  (optional) | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-PositionTickInfo">PositionTickInfo</a>>` | An array of source position ticks. |

 

 

 

#### `Profile`

 (object) 

Profile.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `nodes` | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-ProfileNode">ProfileNode</a>>` | The list of profile nodes. First item is the root node. |
| `startTime` | `number` | Profiling start timestamp in microseconds. |
| `endTime` | `number` | Profiling end timestamp in microseconds. |
| `samples`  (optional) | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-integer">integer</a>>` | Ids of samples top nodes. |
| `timeDeltas`  (optional) | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-integer">integer</a>>` | Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime. |

 

 

 

#### `PositionTickInfo`

 (object) 

Specifies a number of samples attributed to a certain source position.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `line` | `integer` | Source line number (1-based). |
| `ticks` | `integer` | Number of samples attributed to the source line. |

 

 

 

#### `CoverageRange`

 (object) 

Coverage data for a source range.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `startOffset` | `integer` | JavaScript script source offset for the range start. |
| `endOffset` | `integer` | JavaScript script source offset for the range end. |
| `count` | `integer` | Collected execution count of the source range. |

 

 

 

#### `FunctionCoverage`

 (object) 

Coverage data for a JavaScript function.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `functionName` | `string` | JavaScript function name. |
| `ranges` | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-CoverageRange">CoverageRange</a>>` | Source ranges inside the function with coverage data. |
| `isBlockCoverage` | `boolean` | Whether coverage data for this function has block granularity. |

 

 

 

#### `ScriptCoverage`

 (object) 

Coverage data for a JavaScript script.

###### Properties

 | Name | Type | Description |
|---|---|---|
| `scriptId` | `<a href="/docs/cloud-browser-api/cdp-reference/Runtime#type-ScriptId">Runtime.ScriptId</a>` | JavaScript script id. |
| `url` | `string` | JavaScript script name or url. |
| `functions` | `array<<a href="/docs/cloud-browser-api/cdp-reference/Profiler#type-FunctionCoverage">FunctionCoverage</a>>` | Functions contained in the script that has coverage data. |