Overview

FilterLists serves as a public registry and API for a wide array of content filtering lists. These lists are collections of rules used by web browsers, ad blockers, and other software to identify and block undesirable content, including advertisements, tracking scripts, malicious domains, and distracting social media elements. The project provides a centralized, open-source database that aggregates, categorizes, and provides access to thousands of such lists, maintained by various community contributors and organizations.

The primary utility of FilterLists lies in its ability to empower users and developers to enhance digital privacy and security. By integrating these lists, applications can effectively prevent unwanted content from loading, improving page load times, reducing data consumption, and mitigating exposure to potential threats. For instance, a browser extension might fetch an updated list of known ad domains from FilterLists to ensure its ad-blocking capabilities are current, or a network-level firewall could use malware filter lists to block access to malicious websites across an entire organization.

Developers are the core audience for the FilterLists API, enabling programmatic access to its extensive catalog of lists. This allows for the creation of new content-blocking tools, the integration of filtering capabilities into existing applications, or the automated management of filter list subscriptions. The platform aims to be a comprehensive resource for anyone involved in developing or deploying solutions that require up-to-date content filtering rules, offering structured data on each list, including its purpose, language, and update frequency. This structured approach facilitates easier discovery and integration compared to manually searching for and maintaining individual list URLs.

FilterLists distinguishes itself by its commitment to openness and community collaboration. All the data, including the lists themselves and the metadata describing them, is openly accessible, fostering transparency and allowing for independent verification and contribution. This model helps ensure the lists remain current and effective against evolving online threats and content delivery methods. The platform is particularly effective for projects that require a dynamic and verifiable source of filtering rules, ranging from personal privacy tools to enterprise-level network security solutions that need to block specific types of traffic or content.

The project provides a valuable service by consolidating and standardizing access to a fragmented ecosystem of content filtering rules. This consolidation reduces the overhead for developers who would otherwise need to track and aggregate these lists independently. Furthermore, by offering an API, FilterLists supports automated processes for list updates and integration, which is crucial for maintaining effective content blocking in a rapidly changing online environment. The range of lists covers multiple categories, including specific language-based ad lists, privacy-focused trackers, and lists targeting specific types of malware, making it a versatile resource for diverse content filtering needs.

Key features

  • Extensive List Directory: Access thousands of curated ad, privacy, malware, and social media filter lists from various sources. Each list is cataloged with metadata such as its purpose, maintainer, and update frequency.
  • Categorization and Tagging: Lists are organized by categories (e.g., ad blocking, privacy, malware, social) and tags (e.g., specific languages, regions, content types) to facilitate discovery.
  • Public API Access: Programmatic access to the entire filter list directory, allowing developers to integrate list data into their applications and services. The API supports querying lists based on various parameters.
  • Open-Source Data: All data, including the list metadata and the lists themselves, is openly available, promoting transparency and community contribution.
  • Community Contributions: The platform supports submissions and updates from the community, ensuring the database remains current and comprehensive against new threats and content.
  • List Statistics and Metadata: Provides information on each list, including its homepage, issues page, syntax, and when it was last updated, aiding in selection and maintenance.
  • Multiple List Formats: Supports various filter list syntaxes, such as Adblock Plus filters and uBlock Origin filters, making it compatible with a wide range of blocking software.

Pricing

FilterLists operates as an entirely free service. All filter lists and API access are provided without charge, reflecting its open-source and community-driven nature. There are no paid tiers, subscriptions, or premium features.

Service Cost Details As-of Date
FilterLists Access Free Access to all filter lists and API endpoints 2026-05-28

For additional information on the project's operational model, refer to the FilterLists About page.

Common integrations

FilterLists is designed to be integrated into various applications and services that require content filtering capabilities. It primarily serves as a data source for tools that consume filter lists.

  • Ad Blockers: Browser extensions like uBlock Origin and Adblock Plus can import or subscribe to lists found on FilterLists to enhance their blocking rules.
  • Privacy Tools: Privacy-focused browser extensions and network-level privacy filters can utilize privacy-focused lists to block trackers and telemetry.
  • Network Firewalls & DNS Blockers: Tools such as Pi-hole or corporate firewalls can fetch malware or ad-blocking domain lists to apply filtering at the network level.
  • Parental Control Software: Applications designed for content filtering for children can use specific lists to block inappropriate or distracting content.
  • Custom Applications: Developers building their own content filtering solutions can integrate the FilterLists API to programmatically discover and fetch relevant lists. For example, a developer might build a custom content filtering proxy that uses a combination of ad and malware lists from the FilterLists API for list access.

Alternatives

  • EasyList: A widely used set of filter lists that forms the basis for many ad blockers, offering a comprehensive solution for blocking ads and trackers.
  • AdGuard DNS: Provides a DNS service that blocks ads, trackers, and malicious domains at the network level, offering an alternative to client-side filtering.
  • Disconnect.me: Focuses on privacy protection by visualizing and blocking third-party tracking requests, complementing or replacing some privacy-focused filter lists.
  • Pi-hole: A network-wide ad blocker that runs on a Raspberry Pi or other Linux devices, providing DNS-based filtering for all devices on a network. It often relies on similar types of blocklists to those cataloged by FilterLists.
  • StevenBlack/hosts: A popular consolidated hosts file that blocks many ad and malware domains, suitable for system-level blocking without browser extensions. Detailed information on managing hosts files can be found on Microsoft's Windows Firewall documentation, which explains how local system configurations impact network communication.

Getting started

To get started with FilterLists, developers can use its public API to fetch a list of available filter lists and then retrieve the content of specific lists. The API provides a JSON-based interface for querying the directory.

Here’s a basic example in Python demonstrating how to fetch a list of all available filter lists and then retrieve the raw content of a specific list, using the requests library. This example assumes you want to find an ad-blocking list and fetch its raw rules.

import requests

# Base URL for the FilterLists API
API_BASE_URL = "https://filterlists.com/api/v1/lists"

def get_all_lists():
    """Fetches a list of all filter lists from the API."""
    try:
        response = requests.get(API_BASE_URL)
        response.raise_for_status() # Raise an HTTPError for bad responses (4xx or 5xx)
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"Error fetching lists: {e}")
        return None

def get_list_details(list_id):
    """Fetches details for a specific list by ID."""
    try:
        response = requests.get(f"{API_BASE_URL}/{list_id}")
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"Error fetching list details for ID {list_id}: {e}")
        return None

def get_raw_list_content(view_url):
    """Fetches the raw content of a filter list using its viewUrl."""
    try:
        response = requests.get(view_url)
        response.raise_for_status()
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"Error fetching raw list content from {view_url}: {e}")
        return None

if __name__ == "__main__":
    all_lists = get_all_lists()
    if all_lists:
        print(f"Found {len(all_lists)} filter lists.\n")

        # Find an example ad-blocking list (e.g., EasyList) by name or category
        ad_list_id = None
        ad_list_view_url = None
        for list_item in all_lists:
            if "ad" in list_item["name"].lower() and "easylist" in list_item["name"].lower():
                ad_list_id = list_item["id"]
                # The 'viewUrl' is the direct link to the raw content of the list
                ad_list_view_url = list_item["viewUrl"]
                print(f"Found Ad-blocking list: {list_item['name']} (ID: {ad_list_id})\n")
                break
        
        if ad_list_id and ad_list_view_url:
            # Optionally fetch more details about the specific list
            list_details = get_list_details(ad_list_id)
            if list_details:
                print(f"Details for {list_details['name']}:\n")
                print(f"  Description: {list_details.get('description', 'N/A')}")
                print(f"  Homepage: {list_details.get('homePageUrl', 'N/A')}\n")

            # Fetch and print the first few lines of the raw list content
            raw_content = get_raw_list_content(ad_list_view_url)
            if raw_content:
                print(f"First 10 lines of raw content from {ad_list_view_url}:\n")
                for line in raw_content.splitlines()[:10]:
                    print(f"  {line}")
                print("... (truncated)\n")
        else:
            print("Could not find a suitable ad-blocking list (e.g., EasyList) to demonstrate.\n")
    else:
        print("No filter lists retrieved.")

This Python script first retrieves all available lists, then attempts to locate a list identified as an "ad-blocking" list, such as EasyList. Once identified, it fetches the raw content of that list using its viewUrl. This raw content can then be parsed and used by applications to implement content filtering. Developers should consult the FilterLists API documentation for specific endpoint details and query parameters to refine list searches.