# FilterLists

> Find the filter and host lists that ad blockers, DNS blockers and firewalls subscribe to, with the free, open-source FilterLists directory: more than 2,000 lists that block ads, trackers, malware, phishing and annoyances. Search them by words, tag, language, syntax, the software that can use them, license or maintainer, watch for lists added since a workflow last looked, and get a list's subscription URL and mirrors, home page, issue tracker and the lists it forks, includes or depends on. List the tags, languages, syntaxes, software, licenses and maintainers the directory uses too. Every action only reads. No account or API key required.

App · Compliance & Security · 8 actions. Web page: https://docs.lodol.com/docs/integrations/filterlists

## Actions

### Get a filter list

Get one filter list by id, name or its filterlists.com link: the URL to subscribe to and its mirrors, what it blocks, its syntaxes, languages, license and maintainers, the software that can use it, its home page, issue tracker and forum, and the lists it was forked from, includes or depends on. No API key required.

**Inputs**

- Filter list (`filter_list`, text, required): The list's id, such as 301, its name, such as EasyList, or its page link, such as https://filterlists.com/lists/easylist. A name is matched ignoring case and accents, whole or by its words, but must fit one list; otherwise the step fails naming those it fits.

**Outputs**

- `list` (object): The list, with where it is published and how it relates to others.

**Example output**

```json
{
  "list": {
    "chat_url": null,
    "dependents": [],
    "depends_on": [],
    "description": "EasyList is the primary filter list that removes most adverts from international web pages, including unwanted frames, images, and objects. It is the most popular list used by many ad blockers and forms the basis of over a dozen combination and supplementary filter lists.",
    "donate_url": null,
    "email_address": "easylist@protonmail.com",
    "forked_from": [],
    "forks": [
      {
        "id": 166,
        "name": "AdGuard Base filter + EasyList (AdGuard for Chromium)"
      },
      {
        "id": 565,
        "name": "EasyList - Lite"
      }
    ],
    "forum_url": "https://forums.lanik.us/viewforum.php?f=23",
    "home_url": "https://easylist.to/",
    "id": 301,
    "included_in": [
      {
        "id": 11,
        "name": "Liste FR + EasyList"
      },
      {
        "id": 13,
        "name": "Liste AR + Liste FR + EasyList"
      },
      {
        "id": 168,
        "name": "AdGuard DNS Filter"
      }
    ],
    "includes": [],
    "issues_url": "https://github.com/easylist/easylist/issues",
    "languages": [
      {
        "code": "cy",
        "id": 30,
        "name": "Welsh"
      },
      {
        "code": "en",
        "id": 37,
        "name": "English"
      }
    ],
    "license": {
      "id": 4,
      "name": "GPLv3",
      "permits_commercial_use": true,
      "permits_modification": true,
      "url": "https://www.gnu.org/licenses/gpl-3.0.en.html"
    },
    "maintainers": [
      {
        "email_address": null,
        "id": 7,
        "name": "The EasyList Authors",
        "twitter_handle": null,
        "url": "https://easylist.to/"
      }
    ],
    "name": "EasyList",
    "onion_url": null,
    "page_url": "https://filterlists.com/lists/easylist",
    "policy_url": null,
    "software": [
      {
        "id": 1,
        "name": "uBlock Origin"
      },
      {
        "id": 2,
        "name": "Adblock Plus"
      },
      {
        "id": 3,
        "name": "AdGuard (free versions)"
      },
      {
        "id": 6,
        "name": "AdBlock"
      },
      {
        "id": 32,
        "name": "AdNauseam"
      },
      {
        "id": 39,
        "name": "pfBlockerNG"
      },
      {
        "id": 40,
        "name": "Opera's built-in adblocker"
      },
      {
        "id": 44,
        "name": "AdGuard for Windows/macOS"
      },
      {
        "id": 45,
        "name": "AdGuard for Android"
      },
      {
        "id": 46,
        "name": "Vivaldi's Privacy settings"
      }
    ],
    "submission_url": null,
    "syntaxes": [
      {
        "id": 3,
        "name": "Adblock Plus"
      }
    ],
    "tags": [
      {
        "description": "Blocks advertisements",
        "id": 2,
        "name": "ads"
      }
    ],
    "view_url": "https://easylist.to/easylist/easylist.txt",
    "view_urls": [
      {
        "primariness": 1,
        "segment": 1,
        "url": "https://easylist.to/easylist/easylist.txt"
      },
      {
        "primariness": 2,
        "segment": 1,
        "url": "https://fanboy.co.nz/easylist.txt"
      },
      {
        "primariness": 3,
        "segment": 1,
        "url": "https://easylist-downloads.adblockplus.org/easylist.txt"
      },
      {
        "primariness": 4,
        "segment": 1,
        "url": "https://downloads.vivaldi.com/easylist/easylist-current.txt"
      }
    ]
  }
}
```

### List languages

List the languages FilterLists has lists for, with each one's two letter code and how many lists are made for sites in it, optionally only those whose name or code holds some words. No API key required.

**Inputs**

- Name (`name`, text): Only languages whose name or two letter code holds every one of these words, ignoring case and accents (for example, german, or de for German and every language with de in its name). Leave empty for all of them.

**Outputs**

- `count` (number): How many languages are listed.
- `languages` (list): The languages, in alphabetical order.

**Example output**

```json
{
  "count": 1,
  "languages": [
    {
      "code": "de",
      "id": 32,
      "list_count": 3,
      "name": "German"
    }
  ]
}
```

### List licenses

List the licenses filter lists are released under, with whether FilterLists records that each allows changes and commercial use, and how many lists use it, optionally only those whose name holds some words. No API key required.

**Inputs**

- Name (`name`, text): Only licenses whose name holds every one of these words, ignoring case and accents (for example, cc by finds the Creative Commons licenses). Leave empty for all of them.

**Outputs**

- `count` (number): How many licenses are listed.
- `licenses` (list): The licenses, in alphabetical order.

**Example output**

```json
{
  "count": 2,
  "licenses": [
    {
      "id": 12,
      "list_count": 7,
      "name": "CC BY-SA 3.0",
      "permits_commercial_use": true,
      "permits_modification": true,
      "url": "https://creativecommons.org/licenses/by-sa/3.0/"
    },
    {
      "id": 8,
      "list_count": 6,
      "name": "CC BY-SA 4.0",
      "permits_commercial_use": true,
      "permits_modification": true,
      "url": "https://creativecommons.org/licenses/by-sa/4.0/"
    }
  ]
}
```

### List maintainers

List the people, groups and companies that maintain filter lists, with their home pages, email addresses and X handles where FilterLists has them and how many lists each maintains, optionally only those whose name holds some words. No API key required.

**Inputs**

- Name (`name`, text): Only maintainers whose name holds every one of these words, ignoring case and accents (for example, easylist finds The EasyList Authors). Leave empty for all of them.

**Outputs**

- `count` (number): How many maintainers are listed.
- `maintainers` (list): The maintainers, in alphabetical order.

**Example output**

```json
{
  "count": 1,
  "maintainers": [
    {
      "email_address": null,
      "id": 7,
      "list_count": 9,
      "name": "The EasyList Authors",
      "twitter_handle": null,
      "url": "https://easylist.to/"
    }
  ]
}
```

### List software

List the ad blockers, DNS blockers, firewalls and other programs that use filter lists, such as uBlock Origin, AdGuard Home and Pi-hole, each with its home and download pages, the syntaxes it reads and how many lists it can use, optionally only those whose name holds some words. No API key required.

**Inputs**

- Name (`name`, text): Only programs whose name holds every one of these words, ignoring case and accents (for example, adguard finds the four AdGuard programs). Leave empty for all of them.

**Outputs**

- `count` (number): How many programs are listed.
- `software` (list): The programs, in alphabetical order.

**Example output**

```json
{
  "count": 1,
  "software": [
    {
      "description": null,
      "download_url": "https://github.com/AdguardTeam/AdGuardHome/releases",
      "home_url": "https://github.com/AdguardTeam/AdGuardHome",
      "id": 31,
      "list_count": 51,
      "name": "AdGuard Home",
      "supports_abp_links": false,
      "syntaxes": [
        {
          "id": 1,
          "name": "Hosts (localhost IPv4)"
        },
        {
          "id": 2,
          "name": "Domains"
        },
        {
          "id": 9,
          "name": "IPs (IPv4)"
        },
        {
          "id": 14,
          "name": "Non-localhost hosts (IPv4)"
        },
        {
          "id": 16,
          "name": "Domains with wildcards"
        },
        {
          "id": 22,
          "name": "DNS servers"
        },
        {
          "id": 28,
          "name": "Adblocker-syntax domains"
        },
        {
          "id": 34,
          "name": "CIDRs (IPv4)"
        },
        {
          "id": 36,
          "name": "Hosts (localhost IPv6)"
        },
        {
          "id": 47,
          "name": "Adblocker-syntax domains w/o ABP tag"
        }
      ]
    }
  ]
}
```

### List syntaxes

List the syntaxes filter lists are written in, such as Adblock Plus, Domains and hosts files, each with how many lists use it and the programs that read it, optionally only those whose name holds some words. No API key required.

**Inputs**

- Name (`name`, text): Only syntaxes whose name holds every one of these words, ignoring case and accents (for example, hosts finds every kind of hosts file). Leave empty for all of them.

**Outputs**

- `count` (number): How many syntaxes are listed.
- `syntaxes` (list): The syntaxes, in alphabetical order.

**Example output**

```json
{
  "count": 3,
  "syntaxes": [
    {
      "description": null,
      "id": 1,
      "list_count": 23,
      "name": "Hosts (localhost IPv4)",
      "software": [
        {
          "id": 1,
          "name": "uBlock Origin"
        },
        {
          "id": 4,
          "name": "DNS66"
        },
        {
          "id": 7,
          "name": "AdAway"
        },
        {
          "id": 11,
          "name": "Hosts File Editor"
        },
        {
          "id": 12,
          "name": "Gas Mask"
        },
        {
          "id": 14,
          "name": "Pi-hole"
        },
        {
          "id": 22,
          "name": "Diversion"
        },
        {
          "id": 25,
          "name": "uMatrix"
        },
        {
          "id": 26,
          "name": "Blokada"
        },
        {
          "id": 28,
          "name": "personalDNSfilter"
        },
        {
          "id": 31,
          "name": "AdGuard Home"
        },
        {
          "id": 32,
          "name": "AdNauseam"
        },
        {
          "id": 39,
          "name": "pfBlockerNG"
        },
        {
          "id": 45,
          "name": "AdGuard for Android"
        },
        {
          "id": 46,
          "name": "Vivaldi's Privacy settings"
        }
      ],
      "url": "https://en.wikipedia.org/wiki/Hosts_(file)"
    },
    {
      "description": null,
      "id": 36,
      "list_count": 1,
      "name": "Hosts (localhost IPv6)",
      "software": [
        {
          "id": 1,
          "name": "uBlock Origin"
        },
        {
          "id": 7,
          "name": "AdAway"
        },
        {
          "id": 11,
          "name": "Hosts File Editor"
        },
        {
          "id": 12,
          "name": "Gas Mask"
        },
        {
          "id": 14,
          "name": "Pi-hole"
        },
        {
          "id": 22,
          "name": "Diversion"
        },
        {
          "id": 31,
          "name": "AdGuard Home"
        },
        {
          "id": 45,
          "name": "AdGuard for Android"
        }
      ],
      "url": "https://en.wikipedia.org/wiki/Hosts_(file)"
    },
    {
      "description": null,
      "id": 14,
      "list_count": 1,
      "name": "Non-localhost hosts (IPv4)",
      "software": [
        {
          "id": 7,
          "name": "AdAway"
        },
        {
          "id": 11,
          "name": "Hosts File Editor"
        },
        {
          "id": 12,
          "name": "Gas Mask"
        },
        {
          "id": 14,
          "name": "Pi-hole"
        },
        {
          "id": 31,
          "name": "AdGuard Home"
        },
        {
          "id": 45,
          "name": "AdGuard for Android"
        }
      ],
      "url": "https://en.wikipedia.org/wiki/Hosts_(file)"
    }
  ]
}
```

### List tags

List the tags FilterLists sorts lists by, such as ads, privacy, malware, phishing, cookies and annoyances, each with what it means and how many lists have it, optionally only those whose name holds some words. No API key required.

**Inputs**

- Name (`name`, text): Only tags whose name holds every one of these words, ignoring case and accents (for example, anti finds anti-adblock and anti-corp). Leave empty for all of them.

**Outputs**

- `count` (number): How many tags are listed.
- `tags` (list): The tags, in alphabetical order.

**Example output**

```json
{
  "count": 2,
  "tags": [
    {
      "description": "Blocks adblock detection scripts",
      "id": 5,
      "list_count": 2,
      "name": "anti-adblock"
    },
    {
      "description": "Blocks resources from certain companies",
      "id": 19,
      "list_count": 2,
      "name": "anti-corp"
    }
  ]
}
```

### Search filter lists

Search the more than 2,000 filter and host lists in the FilterLists directory by words in their name or description, tag (such as ads, privacy or malware), language, syntax, the software that can use them (such as uBlock Origin or Pi-hole), license or maintainer, a page at a time with the real total. Newest first, with Added after list ID, finds the lists added since a workflow last looked. No API key required.

**Inputs**

- Query (`query`, text): Only lists with every one of these words somewhere in their name or description, ignoring case and accents, such as easylist, cookie or japanese ads. Leave it empty to search by the other filters alone.
- Tag (`tag`, text): Only lists with this tag, such as ads, privacy, malware, phishing, cookies or annoyances. Pick it from the list, which is read from FilterLists itself, or type its name or id.
- Language (`language`, text): Only lists made for sites in this language, by name, two letter code (en, de, ja) or id. Most lists name no language, as they work on sites in any, and those are left out when this is set.
- Syntax (`syntax`, text): Only lists written in this syntax, such as Adblock Plus, Domains or Hosts (localhost IPv4). Pick it from the list or type its name or id.
- Software (`software`, text): Only lists this program can use, such as uBlock Origin, Pi-hole or AdGuard Home: those written in at least one syntax it reads, as the FilterLists site works it out. Pick it from the list or type its name or id.
- License (`license`, text): Only lists released under this license, such as The MIT License or GPLv3. A list whose license is not known is recorded as All Rights Reserved.
- Maintainer (`maintainer`, text): Only lists this person, group or company maintains, such as The EasyList Authors, HaGeZi or Steven Black.
- Commercial use allowed (`commercial_use`, true/false): Only lists whose license, as FilterLists records it, allows commercial use. Read the license itself before relying on it. Default: `false`.
- Added after list ID (`added_after_id`, number): Only lists added to FilterLists after the list with this id. Ids only grow, so a workflow that runs on a schedule can save the latest list id a search returns and pass it here next time, to hear only about lists added since. At least 0.
- Sort (`sort`, text): How to order the lists found. Best match, the default, puts a list named exactly as the query first, then lists whose name starts with it, then those whose name holds every word, then those found by their description, each group A to Z; with no query it is A to Z. Name (A to Z) ignores the query, and Newest first puts the most recently added list first. One of: `best_match` (Best match), `name` (Name (A to Z)), `newest` (Newest first). Default: `best_match`.
- Page (`page`, number): Which page of results to return, starting at 1. Leave empty for the first page. A page past the last one returns no lists, but still gives the real total. At least 1.
- Page size (`page_size`, number): How many lists a page holds, from 1 to 100. Defaults to 20. From 1 to 100. Default: `20`.

**Outputs**

- `latest_list_id` (number): The id of the list added to FilterLists most recently, whatever the filters. Save it and pass it as Added after list ID next time to find only lists added since.
- `lists` (list): This page of the lists found. Empty when nothing matches or the page is past the last one.
- `page` (number): The page this is, from 1.
- `page_size` (number): How many lists a page holds.
- `pages` (number): How many pages the matches fill; 0 when none match.
- `total` (number): How many lists match, across every page.

**Example output**

```json
{
  "latest_list_id": 2866,
  "lists": [
    {
      "description": "EasyList is the primary filter list that removes most adverts from international web pages, including unwanted frames, images, and objects. It is the most popular list used by many ad blockers and forms the basis of over a dozen combination and supplementary filter lists.",
      "id": 301,
      "languages": [
        {
          "code": "cy",
          "id": 30,
          "name": "Welsh"
        },
        {
          "code": "en",
          "id": 37,
          "name": "English"
        }
      ],
      "license": {
        "id": 4,
        "name": "GPLv3",
        "permits_commercial_use": true,
        "permits_modification": true,
        "url": "https://www.gnu.org/licenses/gpl-3.0.en.html"
      },
      "maintainers": [
        {
          "email_address": null,
          "id": 7,
          "name": "The EasyList Authors",
          "twitter_handle": null,
          "url": "https://easylist.to/"
        }
      ],
      "name": "EasyList",
      "page_url": "https://filterlists.com/lists/easylist",
      "software": [
        {
          "id": 1,
          "name": "uBlock Origin"
        },
        {
          "id": 2,
          "name": "Adblock Plus"
        },
        {
          "id": 3,
          "name": "AdGuard (free versions)"
        },
        {
          "id": 6,
          "name": "AdBlock"
        },
        {
          "id": 32,
          "name": "AdNauseam"
        },
        {
          "id": 39,
          "name": "pfBlockerNG"
        },
        {
          "id": 40,
          "name": "Opera's built-in adblocker"
        },
        {
          "id": 44,
          "name": "AdGuard for Windows/macOS"
        },
        {
          "id": 45,
          "name": "AdGuard for Android"
        },
        {
          "id": 46,
          "name": "Vivaldi's Privacy settings"
        }
      ],
      "syntaxes": [
        {
          "id": 3,
          "name": "Adblock Plus"
        }
      ],
      "tags": [
        {
          "description": "Blocks advertisements",
          "id": 2,
          "name": "ads"
        }
      ]
    },
    {
      "description": "EasyList Germany is a filter list written by the EasyList authors MonztA, Famlam, and Khrin that specifically removes adverts on German language websites.",
      "id": 293,
      "languages": [
        {
          "code": "de",
          "id": 32,
          "name": "German"
        }
      ],
      "license": {
        "id": 4,
        "name": "GPLv3",
        "permits_commercial_use": true,
        "permits_modification": true,
        "url": "https://www.gnu.org/licenses/gpl-3.0.en.html"
      },
      "maintainers": [
        {
          "email_address": null,
          "id": 7,
          "name": "The EasyList Authors",
          "twitter_handle": null,
          "url": "https://easylist.to/"
        }
      ],
      "name": "EasyList Germany",
      "page_url": "https://filterlists.com/lists/easylist-germany",
      "software": [
        {
          "id": 1,
          "name": "uBlock Origin"
        },
        {
          "id": 2,
          "name": "Adblock Plus"
        },
        {
          "id": 3,
          "name": "AdGuard (free versions)"
        },
        {
          "id": 6,
          "name": "AdBlock"
        },
        {
          "id": 32,
          "name": "AdNauseam"
        },
        {
          "id": 39,
          "name": "pfBlockerNG"
        },
        {
          "id": 40,
          "name": "Opera's built-in adblocker"
        },
        {
          "id": 44,
          "name": "AdGuard for Windows/macOS"
        },
        {
          "id": 45,
          "name": "AdGuard for Android"
        },
        {
          "id": 46,
          "name": "Vivaldi's Privacy settings"
        }
      ],
      "syntaxes": [
        {
          "id": 3,
          "name": "Adblock Plus"
        }
      ],
      "tags": [
        {
          "description": "Blocks advertisements",
          "id": 2,
          "name": "ads"
        }
      ]
    }
  ],
  "page": 1,
  "page_size": 2,
  "pages": 6,
  "total": 12
}
```
