Skip to main content
Tech Tutorials & Programming13 min readNov 28, 2025

Firecrawl Self Host Guide: 2 Easy Ways to Integrate Proxies

Yazan Sharawi
Yazan Sharawi

Nov 28, 2025

Should I go with a cloud or self-hosted solution? The question of convenience vs control is a topic of discussion in every Slack channel out there. As developers, we love to have control over stuff we build, but sometimes the associated cost and overhead you add to your team is not worth it. One side argues that you should pay the cloud to save time; the other side claims that open-source self hosting is the only way to scale without going bankrupt.

Let’s take Firecrawl as an example. A market intelligence agent needs to scrape thousands of websites to provide high quality data. The discussion naturally turns to whether a Firecrawl self host version would be the most reasonable solution rather than paying for the Firecrawl API.

I would argue that, other than budget, there are always “hidden costs” that we as developers don’t take into consideration — we just love building, what I can say? Let’s put each option side by side. If you’re impatient, you can go straight to the proxy integration.

The Firecrawl API is a great choice. It handles everything for you. You provide what you want and the data will come to you clean and ready; no need to worry about anything else. You might start scraping 100 pages today, but say the business thrives and you suddenly need 100,000 pages. The bill grows larger every month and every month you postpone the dream of buying your own Porsche.

By contrast, Firecrawl self host is a good choice too. You have the code hosted on your servers, which is more secure, saves you money, and — as a developer — you get to modify it. Happy days! You deploy it and soon enough you hit a wall. Your logs turn red with 403 Forbidden errors. The site works locally on your machines, but your DigitalOcean or AWS server is getting instantly blocked by Cloudflare.

The consequences of either choice become more obvious as you scale and scrape more data. Sticking with the cloud is just too expensive and self hosting reveals a brutal truth to you: the system works great, but your IP address is getting flagged as a bot or a spam. It’s like having a Porsche engine you’re forced to drive 20 with.

Every project more complicated than a “Hello World” scrape, explodes into conflicting opinions about rotating IPs, residential proxies, and avoiding captchas. Another day in the life of a developer trying to scrape. It’s so easy to switch back to the cloud and pay up.

That’s why we are going to break down the solution practically. We will show you how to keep the cost savings of your Firecrawl self host and prevent you from getting blocked by websites by using proxies. Cheers to build the ultimate AI data pipelines without getting banned.

a drawing of HTML becoming a JSON under the title

What Is Firecrawl?

Traditional web scraping often returns messy HTML filled with navigation, scripts, styling, and page elements that are irrelevant to an AI pipeline. Teams then need additional parsing and cleanup before the output is useful.

Firecrawl is built to turn website content into cleaner Markdown or structured JSON for LLM, search, and automation workflows. It is one of several AI web scrapers designed for this type of pipeline.

The Web-to-LLM Converter

Firecrawl sits between a website and the downstream AI system. Instead of maintaining a separate selector and cleanup script for every source, teams can use its scraping and crawling endpoints to produce more standardized output for ingestion.

Beyond Basic Scraping: Maps and RAG

Firecrawl supports more than extracting one page. Its mapping, crawling, and batch operations can help teams discover a site’s URLs and collect larger groups of documents for research or retrieval workflows.

The /map Endpoint

Before an AI pipeline can ingest a website, it needs to understand which pages exist. The /map endpoint helps discover URLs that can then be filtered before a crawl begins.

  • Why it matters: A support or documentation assistant may need FAQs, help-center pages, and API documentation rather than only the homepage.
  • Operational consideration: Mapping and crawling can generate many requests quickly, so request pacing, source policies, retries, and proxy rotation should be planned before scaling.

Powering RAG Pipelines

Retrieval-Augmented Generation, or RAG, lets an AI application retrieve approved external documents at query time. Firecrawl can help collect and normalize those documents before they are chunked, embedded, and indexed.

  • Structured output: Clean Markdown preserves headings, lists, and tables that can improve chunking and retrieval quality. For the full pipeline from crawling through vector storage, see our web crawling for AI guide.
  • Source discovery: Mapping and crawling can help a RAG pipeline find and refresh the documentation it is allowed to ingest.

Firecrawl can also sit behind an MCP server. The server can expose narrow tools such as map_site, crawl_docs, or refresh_source, while the AI host manages discovery, permissions, and user approval.

Deep Research and Batch Scraping

For research workflows that need information from several pages or domains, Firecrawl provides crawl and batch operations that can be integrated into a larger data pipeline.

  • The crawl endpoint follows links from a starting page to a configured depth.
  • Batch operations process a defined list of URLs through one job.
  • Self-hosted responsibility: Your team must manage request pacing, infrastructure capacity, proxy configuration, source permissions, and error handling.
a drawing of a server hidden behind another server under the title

The Hidden Problem with Firecrawl Self Hosting

Self-hosting is great. You deploy your own version of the code and you scrape whatever you want with it. You do whatever you want with the data. In other words, you are in control, with no middle man required. However, there is a catch. When you switch from cloud to self-host you gain a lot, but you lose out as well. You lose the invisible infrastructure that makes scraping possible in the first place, i.e. IP rotation.

The “Localhost” IP Trap

When you self-host Firecrawl locally or deploy it via Docker, every single request comes from your machine’s static IP address. It’s like calling someone a million times from one number (you will get blocked eventually).

Firecrawl Cloud manages the infrastructure required to scrape and crawl websites, including the proxy layer. When you self-host Firecrawl, that responsibility moves to you. Without a proxy, every request may come from the same local or datacenter IP address, which can quickly trigger rate limits or blocks as your workload grows. Connecting Firecrawl to a pool of residential or mobile proxies lets you distribute requests across multiple IP addresses, control session rotation, and avoid relying on a single server IP for large-scale web scraping.

If you are self-hosting Firecrawl and want to choose a provider yourself, start with our guide to choosing a residential proxy provider. Then use our best residential proxies for web scraping comparison to assess specific providers by pricing, geo-coverage, IP quality, session control, and success rate. Before estimating infrastructure cost, compare residential proxy pricing against expected bandwidth, page weight, and retry volume.

Why Cloudflare Hates Your VPS

Most developers deploy their self-hosted instances on cloud providers such as AWS, DigitalOcean, or Hetzner because it’s cheap and scalable. But something they sometimes forget to take into account is IP reputation. Modern anti-bot systems can see the reputation of the incoming IP addresses. If you have a bad one, you are in trouble:

  • The Datacenter Flag: Let’s be clear here. Websites know that real people don’t doomscroll or tweet from AWS servers, so that’s already a red flag.
  • The ASN Block: Security systems look at the ASN (Autonomous System Number) of your IP. If it belongs to a hosting provider like AWS or Google Cloud, for example, it is automatically flagged as a “non-human” traffic.

Even if your scraper is the best, most efficient code in the world, you will probably hit 403 Forbidden errors or 502 error screens before you even load the HTML. That’s why you need a high-quality third-party proxy provider to help you overcome the anti-bot systems and identify as a human. Choosing the right type matters as much as having one at all, and the best proxies for web scraping break down which proxy types hold up against which targets.

A drawing of the firecrawl logo next to a server under the title

Why You Need a Firecrawl Proxy

Since you are self hosting Firecrawl, you are responsible for the “networking” layer. Most developers try to save money by buying cheap proxies, but this is a mistake that will cost you money and time. To scrape more high value data without having any problems, you need to fundamentally change how your crawler looks to the outside world. That starts with proxy servers.

The Problem with Cheap Proxy Providers

Buying cheap proxies is not the solution for trying to get better results while scraping because they have IPs that have been abused by thousands of other users before you and thus they’re already on numerous blacklists.

  • Instant Flagging: Providers like Cloudflare have vast databases of these “dirty IPs”. Trying to use these IPs will get you flagged right away and get black listed before you even hit your first request.
  • The Captcha Loop: Maybe your first few requests went through and life is good. Your IP is not clean so you will get captchas from time to time and it will be annoying. More than just annoying, it’s expensive, so it’s something you should consider as well.

Scraping Sophisticated Platforms

Platforms like LinkedIn and Instagram have really strict anti-scraping measures and lots of mechanisms to verify that people are human. Trying to scrape them with a cheap proxy or your own local IP won’t work at scale. You will need high quality IP addresses, which you can only get via trusted proxy providers.

Another thing to consider is that once you scroll these website or any website in general, session continuity and sticky session are super important, you don’t want your crawl to fail mid session after hours of waiting it and for the so sophisticated platforms you need sticky sessions to keep you logged in and keep scraping them non-stop.

A drawing of a server and laptops with proxies under the title

Step-by-Step Guide: Configuring Proxies for Firecrawl Self Host

Since Firecrawl python sdk or Node client connects to your self host, your proxy confirmation should happen on the Docker side, i.e. at the infrastructure level. If you don’t do that your crawl will be exposed to be blocked by Cloudflare and we don’t want that.

Here are two ways you can inject your proxies and mask your request with them to prevent your Firecrawl self host from getting blocked while crawling websites.

Method 1: The Simple .env

This is one of the simplest ways out there. You just need to create an .env file in your project (preferably in the root). Here are the steps to make it easier for you:

  1. Navigate to the root of the project you are working on.
  2. Open (or create) your .env file.
  3. After creating the .env file you should add the proxy variables to it, normally this kind of information you get from the proxy provider you subscribed with.
bash

This is a very simple, straightforward way to do it. When you run the Docker file, it will read the variables inside the .env file and use them. Make sure you specify the location of the .env file for the Docker file to know the path to get the data from.

Note: Proxy formats can be different between proxy providers. You can change the format, but each provider will have a different way to do that.

Method 2: Docker Compose for Playwright

For scraping at scale, Playwright — a Python library for web scraping — is one of the best options a developer can make. It’s open-source, easy to use, and lets you integrate proxies.

Sometimes the .env file isn’t the ideal solution since the Playwright container might be isolated. In that case, you need to inject proxies specifically into the browser service configuration:

  1. Open your Docker-compose.yaml file
  2. Locate the playwright-service section.
  3. Add the proxy variables under the environment key.
python

Pro Tip: If you do a large amount of web scraping, make sure that you have a provider that offers session rotation, i.e. the ability to rotate after every request or at will. It’s super important to have it since every request or every Playwright browser opened will have a new clean IP to use, which prevents you from getting blocked.

Firecrawl Licensing and Responsible Use

Firecrawl’s core open-source project is primarily licensed under the GNU Affero General Public License v3.0 (AGPL-3.0), while its SDKs and some UI components use the MIT License.

The Proxidize integration does not copy, modify, or redistribute Firecrawl’s source code. It provides separate configuration files, scripts, and documentation that help users connect the official self-hosted Firecrawl project to a Proxidize residential or mobile proxy. Firecrawl remains subject to its own licensing terms, while the Proxidize integration repository is distributed separately under the MIT License.

Teams that modify Firecrawl, redistribute it, or provide a modified Firecrawl deployment to users over a network should review the applicable AGPL-3.0 requirements. See Firecrawl’s official license for full details.

Using a proxy changes how Firecrawl’s requests are routed, but it does not grant permission to access or collect data from a website. Users remain responsible for complying with applicable laws, website terms, privacy policies, access restrictions, and robots.txt directives.

Proxidize proxies provide IP routing, geographic selection, IP diversity, rotation, and session control. They do not guarantee access to a website or authorize the bypassing of restrictions.

Conclusion

Firecrawl is one of the best scraping platforms out there. Yes it’s still a startup, but it has a large audience of developers and, let’s not forget, it’s also backed by one of the most famous combinators in the world.

Key takeaways:

  • If you have the technical experience and you don’t mind putting in a little bit of effort, going with a Firecrawl self host option might be a good option for you.
  • The more you scale your project, the more you are going to pay to operate it. That’s life.
  • If you prefer to have everything in one place and spare yourself a headache while scraping — and you don’t mind the cost — going with Firecrawl API is the best option for you.
  • If you decide to self host Firecrawl, having a great proxy provider is essential to prevent any problems and get great results.
  • Don’t ever use your local IP for scraping projects, large or small, since it might get blacklisted.

Firecrawl have some decent features to offer. That’s why people are using it. The ability to take messy HTML with unused divs and CSS selectors and turn it into a clean JSON or markdown that can be used directly into LLMs is a great feature to have. It really saves time and effort. No need to create additional scripts to clean the data after collecting it, unlike  traditional scrapers.

The ability to choose between scraping, crawling, and mapping is great as well. Many people might want to know what a website has to offer, so they’ll decide to generate a content ma. By contrast, if you want to explore the website’s URLs you go with the crawl option. If you want to get all the information from one website you normally go with scraping.

To have all of Firecrawl’s amazing features and remain in complete control, you should choose the Firecrawl self host option. A good proxy provider is involved one way or another to prevent any problems or cutoffs while scraping. Choosing to go with the cloud version means you don’t have to worry about it, though.

FAQ

Got questions?
We've got answers.

Quick answers to the most common questions about this topic.

Yes, the self-hosted version of Firecrawl is open-source and can be used by anyone under the AGPL-3.0 license, though you will be responsible for the costs of the server (VPS) and proxy infrastructure needed to run Firecrawl’s self-hosted version.

In the cloud version the service is fully managed by the Firecrawl team. Both technical and non-technical people can use it. With Firecrawl’s self-hosted version you will have to manage all the infrastructure and the servers related to hosting the code, which requires some technical expertise.

To prevent such errors, you usually need to use mobile proxies or residential proxies. If you are not sure which one fits your scraping setup, compare mobile proxies vs residential proxies before choosing.

Yes. By default, it will search for a website’s robots.txt first and see what it is allowed and disallowed from and adjust the scraper accordingly.

Yes, Firecrawl does support that, but you will need to provide it with the credentials in the header of the request. Using sticky sessions here is important to prevent any information from being deleted mid-session.

/scrape is used to extract data from a single URL into a markdown or JSON; /map is used to draw a sitemap of the website you are trying to scrape, without scraping it; and /crawl is used to follow links from start to finish.

To run the server comfortably you will need to run it with Docker Compose with 2GB of RAM, along with PostgreSQL databases and redis instance.

No it’s unlimited. There is no limit rate and you can scrape as much as your hardware allows you to.

Ready to launch?

Proxies built for real operations.

For teams that depend on stability, not luck.