# FlareSolverr Standby (`rl1987/flaresolverr-helper`) Actor

Runs FlareSolverr (Cloudflare/DDoS-Guard bypass proxy) as an always-on Apify Standby Actor, with optional Apify Proxy.

- **URL**: https://apify.com/rl1987/flaresolverr-helper.md
- **Developed by:** [R.L.](https://apify.com/rl1987) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### FlareSolverr Standby

Runs [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) — a proxy server that bypasses Cloudflare and DDoS-Guard protection using a real, undetected Chromium browser — as an always-on [Apify Standby Actor](https://docs.apify.com/platform/actors/development/programming-interface/standby). No local Docker, browser, or infrastructure to run: start the Actor once and call it like a hosted API.

### Why use this?

Running FlareSolverr yourself means managing a Chromium container, xvfb, and uptime. This Actor puts FlareSolverr behind an Apify Standby URL so it stays warm and reachable over HTTPS, with [Apify Proxy](https://docs.apify.com/platform/proxy) wired in for IP rotation without touching FlareSolverr's own proxy config.

**Use a residential proxy group.** Apify's datacenter IPs are widely fingerprinted and get outright IP-banned by Cloudflare on a lot of sites — in testing, requests to Yellow Pages and Truth Social failed instantly with "Cloudflare has blocked this request. Probably your IP is banned," and other sites (Redbubble, SearchPeopleFree) hung until timeout instead of ever getting a challenge page to solve. Switching to the `RESIDENTIAL` proxy group fixed every one of those cases — same URLs, same FlareSolverr call, 200 OK. Datacenter IPs may work fine for less aggressively protected sites, but residential is the reliable default for real Cloudflare/DDoS-Guard challenges.

### How to use it

1. **Proxy configuration** defaults to Apify Proxy with the **Residential** group — no setup needed. Only change it in the Actor's **Input** tab if you know the target site doesn't IP-ban datacenter ranges, or want to disable proxying entirely.
2. Start the Actor (or just call its Standby URL — Apify starts it for you on first request).
3. Send requests to the Standby URL exactly as you would to a local FlareSolverr instance, using your [Apify API token](https://console.apify.com/account/integrations) as a bearer token:

```bash
curl -X POST 'https://<owner>--flaresolverr-helper.apify.actor/v1' \
  -H 'Authorization: Bearer <APIFY_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "cmd": "request.get",
    "url": "https://example.com",
    "maxTimeout": 60000
  }'
````

The `/v1` endpoint accepts the same commands and fields as upstream FlareSolverr (`request.get`, `request.post`, sessions, cookies, `maxTimeout`, etc.) — see the [FlareSolverr API docs](https://github.com/FlareSolverr/FlareSolverr#-usage) for the full request/response shape. You can still pass a per-request `"proxy": {"url": "..."}` field in the body to override the Actor's proxy configuration for that call, e.g. to use your own residential proxy:

```bash
curl -X POST 'https://<owner>--flaresolverr-helper.apify.actor/v1' \
  -H 'Authorization: Bearer <APIFY_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "cmd": "request.get",
    "url": "https://example.com",
    "maxTimeout": 60000,
    "proxy": {"url": "http://groups-RESIDENTIAL:<PROXY_PASSWORD>@proxy.apify.com:8000"}
  }'
```

### Input

- **Proxy configuration** (`proxyConfiguration`) — Apify Proxy setup, applied to every FlareSolverr request that doesn't specify its own `proxy` field. Defaults to the `RESIDENTIAL` group — datacenter proxies (and no proxy at all) get IP-banned or stall on many Cloudflare-protected sites. Turn off "Use Apify Proxy" only if you know the target doesn't need it.
- **Log level** (`logLevel`) — FlareSolverr log verbosity (`info`, `debug`, `warning`, `error`). Default `info`.
- **Headless browser** (`headless`) — keep enabled unless debugging. Default `true`.

### Output

This Actor has no dataset output — it's a live HTTP service. Every request to the Standby URL gets FlareSolverr's normal JSON response synchronously:

```json
{
  "status": "ok",
  "message": "Challenge not detected!",
  "solution": {
    "url": "https://example.com/",
    "status": 200,
    "cookies": [
      { "name": "cf_clearance", "value": "...", "domain": ".example.com" }
    ],
    "userAgent": "Mozilla/5.0 ...",
    "response": "<!DOCTYPE html>..."
  }
}
```

The `cf_clearance` cookie plus the returned `userAgent` is what you replay on subsequent plain HTTP requests to the same site — you don't need to solve the challenge again for every call.

### Pricing

Billed on Apify's [Standby Actor](https://docs.apify.com/platform/actors/development/programming-interface/standby) compute-time model — you pay for the time the container is up and serving requests, not per call. Add [Apify Proxy](https://docs.apify.com/platform/proxy) usage cost if you enable the recommended residential proxy. Solving a Cloudflare challenge typically takes a few seconds of browser time.

### FAQ

- **Do I need Apify Proxy?** Not strictly, but datacenter IPs (the default without proxy) get flagged and either IP-banned outright or left hanging until timeout on many real-world sites. Residential proxy is the recommended, tested-working default.
- **Does this store any scraped data?** No, responses are returned directly over HTTP and nothing is written to a dataset.
- **Can I use my own proxy instead of Apify Proxy?** Yes — pass `"proxy": {"url": "..."}` in the request body per FlareSolverr's own API; it takes priority over the Actor's proxy configuration.
- Only use this Actor against sites you're authorized to access; you're responsible for complying with target sites' Terms of Service.

# Actor input Schema

## `proxyConfiguration` (type: `object`):

Route FlareSolverr's browser traffic through Apify Proxy. Defaults to the RESIDENTIAL group - datacenter IPs get outright IP-banned or hang until timeout on many Cloudflare-protected sites. Turn off 'Use Apify Proxy' to let FlareSolverr connect directly, or set it per-request by sending your own 'proxy' field in the /v1 request body.

## `logLevel` (type: `string`):

FlareSolverr log verbosity.

## `headless` (type: `boolean`):

Run the underlying Chromium browser in headless mode. Keep enabled unless debugging.

## Actor input object example

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "logLevel": "info",
  "headless": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("rl1987/flaresolverr-helper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("rl1987/flaresolverr-helper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call rl1987/flaresolverr-helper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=rl1987/flaresolverr-helper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FlareSolverr Standby",
        "description": "Runs FlareSolverr (Cloudflare/DDoS-Guard bypass proxy) as an always-on Apify Standby Actor, with optional Apify Proxy.",
        "version": "0.0",
        "x-build-id": "ztgqBDHjKpKgjZgfk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rl1987~flaresolverr-helper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rl1987-flaresolverr-helper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/rl1987~flaresolverr-helper/runs": {
            "post": {
                "operationId": "runs-sync-rl1987-flaresolverr-helper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/rl1987~flaresolverr-helper/run-sync": {
            "post": {
                "operationId": "run-sync-rl1987-flaresolverr-helper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Route FlareSolverr's browser traffic through Apify Proxy. Defaults to the RESIDENTIAL group - datacenter IPs get outright IP-banned or hang until timeout on many Cloudflare-protected sites. Turn off 'Use Apify Proxy' to let FlareSolverr connect directly, or set it per-request by sending your own 'proxy' field in the /v1 request body.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "logLevel": {
                        "title": "Log level",
                        "enum": [
                            "info",
                            "debug",
                            "warning",
                            "error"
                        ],
                        "type": "string",
                        "description": "FlareSolverr log verbosity.",
                        "default": "info"
                    },
                    "headless": {
                        "title": "Headless browser",
                        "type": "boolean",
                        "description": "Run the underlying Chromium browser in headless mode. Keep enabled unless debugging.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
