# 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)
##### 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)

---

#  Certificate Configuration 

 [  View as markdown ](https://scrapfly.io/?view=markdown)   Copy for LLM    Copy for LLM  [     Open in ChatGPT ](https://chatgpt.com/?hints=search&prompt=Read%20from%20https%3A%2F%2Fscrapfly.io%2Fdocs%2Fproxy-saver%2Fcertificates%20so%20I%20can%20ask%20questions%20about%20it.) [     Open in Claude ](https://claude.ai/new?q=Read%20from%20https%3A%2F%2Fscrapfly.io%2Fdocs%2Fproxy-saver%2Fcertificates%20so%20I%20can%20ask%20questions%20about%20it.) [     Open in Perplexity ](https://www.perplexity.ai/search/new?q=Read%20from%20https%3A%2F%2Fscrapfly.io%2Fdocs%2Fproxy-saver%2Fcertificates%20so%20I%20can%20ask%20questions%20about%20it.) 

 

 

 To use Proxy Saver with HTTPS and SSL connections you need to configure your proxy tool to trust the Scrapfly Proxy Saver TLS certificate or ignore certificate verification process. Here's how to do it with popular proxy tools.

## Quick Install

 Run this one-liner to automatically install the certificate for your OS (Linux, macOS, WSL):

 ```
curl -sL https://scrapfly.io/install-ca.sh | sh
```

 

   

 

## Download the Certificate

 Download the certificate directly:

 ```
curl -o scrapfly-ca.crt https://scrapfly.io/ca.crt
```

 

   

 

 Or find it in the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver) under each proxy profile.

## Container Configuration

 When using Docker, you can download and install the Proxy Saver certificate directly during the image build:

- [ Debian ](#debian-image)
- [ Alpine ](#alpine-image)
 
 

 ```
# Dockerfile example for Debian-slim
FROM debian:bullseye-slim

# Install ca-certificates and curl
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl && \
rm -rf /var/lib/apt/lists/*

# Download and install the Proxy Saver certificate
RUN curl -fsSL -o /usr/local/share/ca-certificates/scrapfly-ca.crt https://scrapfly.io/ca.crt && \
update-ca-certificates

```

 

   

 

 

 ```
# Dockerfile example for Alpine
FROM alpine:latest

# Install ca-certificates and curl
RUN apk add --no-cache ca-certificates curl

# Download and install the Proxy Saver certificate
RUN curl -fsSL -o /usr/local/share/ca-certificates/scrapfly-ca.crt https://scrapfly.io/ca.crt && \
update-ca-certificates

```

 

   

 

 

 

 

## HTTP Tools

 Each CLI tool like `curl` has a custom certificate option using which we can specify the location of the Proxy Saver `scrapfly-ca.cert` certificate file:

- [ CURL ](#curl-basic)
- [ HTTPIE ](#httpie-basic)
 
 

 ```
curl \
--cacert /path/to/scrapfly-ca.crt \
--proxy=http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333 \
https://httpbin.dev/anything

```

 

   

 

 

 ```
http \
--verify=/path/to/scrapfly-ca.crt \
--proxy=http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333 \
https://httpbin.dev/anything

```

 

   

 

 

 

 

 Alternatively, each tool also provides an ability to **ignore certificate verification process** which means the certificate step can be ignored entirely though it's not recommended due to security risks.

- [ CURL ](#curl-ignore)
- [ HTTPIE ](#httpie-ignore)
 
 

 ```
curl \
--verify=no \
--proxy=http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333 \
https://httpbin.dev/anything

```

 

   

 

 

 ```
http \
--verify=no \
--proxy=http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333 \
https://httpbin.dev/anything

```

 

   

 

 

 

 

## Operating Systems

 The certificate can also be installed in the operating system certificate store to make it available for all applications.

- [ Windows ](#windows)
- [ macOS ](#macos)
- [ Linux ](#linux)
 
 

1. Download the certificate file from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver)
2. Double click the `.crt` file
3. Follow the Windows instructions to install the certificate
4. Reboot your computer
5. After rebooting, you will be able to connect to Proxy Saver
 
> To verify whether the certificate was installed correctly use this windows command:  ```
> curl -v -x \
> http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io \
> https://httpbin.dev/anything
> # if the certificate was not installed correctly you'll see:
> # curl: (60) SSL certificate problem: unable to get local issuer certificate
> ```

 

1. Download the certificate file from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver)
2. Double click the `.crt` file
3. Select "Always Trust" in the "When using this certificate" options dropdown.
4. Reboot any active programs to be able to connect to Proxy Saver
 
> To verify whether the certificate was installed correctly use this macos command:  ```
> curl -v -x \
> http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io \
> https://httpbin.dev/anything
> # if the certificate was not installed correctly you'll see:
> # curl: (60) SSL certificate problem: unable to get local issuer certificate
> ```

 

1. Download the certificate file from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver)
2. Copy the `.crt` file to `/usr/local/share/ca-certificates/`
3. Run `sudo update-ca-certificates`
4. Reboot any active programs to be able to connect to Proxy Saver
 
> To verify whether the certificate was installed correctly use this linux command:  ```
> curl -v -x \
> http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io \
> https://httpbin.dev/anything
> # if the certificate was not installed correctly you'll see:
> # curl: (60) SSL certificate problem: unable to get local issuer certificate
> ```

 

 

 

## Web Browsers

 Each web browser can also take custom certificates to trust HTTPS connections certified by Proxy Saver.

- [ Chrome/Chromium ](#chrome)
- [ Firefox ](#firefox)
 
 

1. Download the certificate file from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver)
2. Go to browser's certificate settings page `chrome://settings/certificates`
3. Go to the **Authority** tab and select **Import** to upload your `scrapfly-ca.crt` file.
4. When prompted for confirmation select all checkboxes and import
 
 

1. Download the certificate file from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver)
2. Go to browser's certificate settings page `about:preferences#advanced`
3. Go to the **Privacy &amp; Security** tab and select **View Certificates**
4. Upload your `scrapfly-ca.crt` file.
5. When prompted for confirmation select all checkboxes and import
 
 

 

 

## HTTP Client Libraries

 Most http client libraries support proxies and can be configured to use custom certificates. Here are some examples for the most popular http client libraries:

- [  requests ](#python-requests "python")
- [  httpx ](#python-httpx "python")
- [  curl ](#php-curl "php")
- [  guzzle ](#php-guzzle "php")
- [  fetch ](#nodejs-fetch "nodejs")
- [  net/http ](#go-nethttp "golang")
- [  reqwest ](#rust-reqwest "rust")
- [  typhoeus ](#ruby-typhoeus "ruby")
 
 

 ```
import requests

response = requests.get(
		"https://httpbin.dev/anything",
		proxies={
				"https": "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333"
		},
		# use scrapfly certificate
		verify="/path/to/scrapfly-ca.crt",
		# or disable verification entirely
		# verify=False
)
# or set for entire session
session = requests.Session()
session.verify = "/path/to/scrapfly-ca.crt"
session.verify = False
session.proxies = {
    "https": "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333"
}

```

 

   

 

 

 ```
import httpx

response = httpx.get(
    "https://httpbin.dev/anything",
    proxies={
        "https://": "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333"
    },
    # Use scrapfly certificate
    verify="/path/to/scrapfly-ca.crt",
    # Or disable verification entirely
    # verify=False
)

# or set for entire session
client = httpx.Client(
    verify="/path/to/scrapfly-ca.crt",
    # Or disable verification entirely
    # verify=False
    proxies={
        "https://": "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333"
    }
)

response = client.get("https://httpbin.dev/anything")
print(response.text)
client.close()

```

 

   

 

 

 ```
<?php // URL to request
$url = "https://httpbin.dev/anything";

// Initialize cURL
$ch = curl_init($url);

// Proxy configuration
$proxy = "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333";

// Set cURL options for proxy and custom certificate
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Use the custom certificate
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/scrapfly-ca.crt");

// Disable certificate verification (optional, not recommended for production)
# curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// Execute the request
$response = curl_exec($ch);

// Check for errors
if(curl_errno($ch)) {
    echo 'Request Error: ' . curl_error($ch);
} else {
    echo $response;
}

// Release cURL handle
$ch = null;
??>

```

 

   

 

 

 ```
<?php require 'vendor/autoload.php';

use GuzzleHttp\Client;

// Create a new Guzzle client with proxy and custom certificate options
$client = new Client([
    // Set the proxy configuration
    'proxy' =?> [
        'https' => 'http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333'
    ],
    // Set the path to the custom certificate
    'verify' => '/path/to/scrapfly-ca.crt'
    // If you want to disable SSL verification entirely, set 'verify' to false
    // 'verify' => false
]);

// Send a GET request
$response = $client->get('https://httpbin.dev/anything');

// Print the response body
echo $response->getBody();

?>

```

 

   

 

 

 ```
const { HttpsProxyAgent } = require('https-proxy-agent');
const https = require('https');
const fs = require('fs');

// Proxy configuration
const proxy = "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333";
const agent = new HttpsProxyAgent(proxy);

// Path to custom certificate
const cert = fs.readFileSync("/path/to/scrapfly-ca.crt");

// HTTPS agent with custom certificate
const httpsAgent = new https.Agent({
    ca: cert
});

// Individual request with custom certificate and proxy
fetch('https://httpbin.dev/anything', {
    agent: httpsAgent,
    agent: agent // Attach proxy agent as well
})
.then(response => response.text())
.then(text => console.log(text))
.catch(err => console.error('Request failed', err));

```

 

   

 

 

 ```
package main

import (
	"crypto/tls"
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
)

func main() {
	// Load your custom CA certificate
	caCertPath := "/path/to/scrapfly-ca.crt"
	caCert, err := ioutil.ReadFile(caCertPath)
	if err != nil {
		fmt.Println("Error loading CA certificate:", err)
		return
	}

	// Create a certificate pool and append the custom CA certificate
	caCertPool := tls.NewCertPool()
	caCertPool.AppendCertsFromPEM(caCert)

	// Set up a proxy URL
	proxyURL, err := url.Parse("http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333")
	if err != nil {
		fmt.Println("Error parsing proxy URL:", err)
		return
	}

	// Configure HTTP transport to use proxy and custom CA certificate
	transport := &http.Transport{
		Proxy: http.ProxyURL(proxyURL),
		TLSClientConfig: &tls.Config{
			RootCAs: caCertPool,
		},
	}

	// Create an HTTP client with the custom transport
	client := &http.Client{
		Transport: transport,
	}

	// Make an HTTP GET request
	resp, err := client.Get("https://httpbin.dev/anything")
	if err != nil {
		fmt.Println("Request error:", err)
		return
	}
	defer resp.Body.Close()

	// Print the response body
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("Error reading response:", err)
		return
	}
	fmt.Println(string(body))
}

```

 

   

 

 

 ```
use reqwest::Client;
use std::fs;
use reqwest::Proxy;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::error="">> {
    // Load your custom CA certificate
    let ca_cert = fs::read_to_string("/path/to/scrapfly-ca.crt")?;

    // Create a client with proxy and custom CA certificate
    let client = Client::builder()
        .proxy(Proxy::https("http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333")?)
        .add_root_certificate(reqwest::Certificate::from_pem(ca_cert.as_bytes())?)
        .build()?;

    // Send a GET request
    let response = client.get("https://httpbin.dev/anything").send().await?;

    // Print the response body
    let body = response.text().await?;
    println!("{}", body);

    Ok(())
}
</dyn>
```

 

   

 

 

 ```
require 'typhoeus'

# Set up the request with a proxy and custom certificate
response = Typhoeus.get(
  "https://httpbin.dev/anything",
  proxy: "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333",
  sslcert: "/path/to/scrapfly-ca.crt",  # Custom SSL certificate
  ssl_verifypeer: true                  # Enable certificate verification
)

# Print the response body
puts response.body

# If you want to disable SSL verification entirely (not recommended for production)
# response = Typhoeus.get(
#   "https://httpbin.dev/anything",
#   proxy: "http://proxyId-XXX:API_KEY@proxy-saver.scrapfly.io:3333",
#   ssl_verifypeer: false  # Disable SSL verification
# )

```

 

   

 

 

 

 

## Browser Libraries

 Browser automation libraries can be configured to trust the Proxy Saver certificate or ignore certificate verification. You can also install the certificate at the [operating system level](#operating-system) to make it available for all browser libraries.

- [ Selenium ](#selenium)
- [ Playwright (Python) ](#playwright-py)
- [ Playwright (JS) ](#playwright-js)
- [ Puppeteer ](#puppeteer)
 
 

1. Ensure you have the required Python packages installed:
    
     ```
    pip install selenium
    ```
2. Download the certificate file from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver).
3. Use the following Python code to load the custom certificate into Selenium's browser session:
    
     ```
    import os
    import selenium.webdriver as webdriver
    from selenium.webdriver.chrome.options import Options
    
    # Create a new ChromeOptions instance
    chrome_options = Options()
    
    # You can ignore all certificate errors:
    chrome_options.add_argument(f"--ignore-certificate-errors")
    # or add proxy saver certificate
    cert_path = "/path/to/proxy-saver.crt"
    chrome_options.add_argument(f"--ssl-client-certificate-file={cert_path}")
    
    # Initialize WebDriver with the options and test it:
    driver = webdriver.Chrome(options=chrome_options)
    driver.get("https://httpbin.dev/anything")
    # if the certificate was not installed correctly you'll see:
    # SSL certificate problem: unable to get local issuer certificate
    
    ```
 
 

1. Ensure you have the required Python packages installed:
    
     ```
    pip install playwright
    ```
2. Download the certificate file `scrapfly-ca.crt` from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver).
3. Use the following Python code to load the custom certificate into Playwright's browser session:
    
     ```
    import asyncio
    from playwright.async_api import async_playwright
    
    async def run():
        async with async_playwright() as p:
            # Launch browser with the custom certificate
            browser = await p.chromium.launch(headless=False)
            context = await browser.new_context(
    				    # you can ignore certificates
                ignore_https_errors=True,
    						# and add custom certificate:
                extra_http_headers={
                    "client-certificate": "/path/to/certificate.crt"
                }
            )
    
            # Connect to a page to test the certificate
            page = await context.new_page()
            await page.goto("https://httpbin.dev/anything")
            # Print page content to verify
            print(await page.content())
            await browser.close()
    
    asyncio.run(run())
    
    ```
 
 

1. Ensure you have the required NPM packages installed:
    
     ```
    npm install playwright
    ```
2. Download the certificate file `scrapfly-ca.crt` from the [Proxy Saver dashboard](https://scrapfly.io/dashboard/proxy-saver).
3. Use the following Javascript code to load the custom certificate into Playwright's browser session:
    
     ```
    // Import Playwright
    const { chromium } = require('playwright');
    
    (async () => {
      // Launch the browser with ignoreHTTPSErrors set to true
      const browser = await chromium.launch({ headless: false });
      const context = await browser.newContext({
        ignoreHTTPSErrors: true  // Ignore SSL errors (useful for self-signed certs)
      });
    
      // Open a new page
      const page = await context.newPage();
    
      // Navigate to the target URL
      await page.goto('https://your-internal-url-with-cert.com');
    
      // Print the page content to verify it loads correctly
      console.log(await page.content());
    
      // Close the browser
      await browser.close();
    })();
    
    ```
 
 

1. Ensure you have the required NPM packages installed:
    
     ```
    npm install puppeteer
    ```
2. Use the following Javascript code to ignore certificate checks:
    
     ```
    // Import Puppeteer
    const puppeteer = require('puppeteer');
    
    (async () => {
      // Launch the browser with ignoreHTTPSErrors set to true
      const browser = await puppeteer.launch({
        headless: false,
        args: ['--ignore-certificate-errors']  // Ignore SSL certificate errors
      });
    
      // Create a new browser context/page and navigate to url
      const page = await browser.newPage();
      await page.goto('https://httpbin.dev/anything');
    
      // Print the page content to verify it loads correctly
      const content = await page.content();
      console.log(content);
    
      await browser.close();
    })();
    
    ```
3. Optional: as Puppeteer doesn't support custom certificates you can install the system level certificate using [operating system instructions](#operating-system).