PHPackages                             andrey-helldar/blacklist-server - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. andrey-helldar/blacklist-server

Abandoned → [johannebert/laravel-spam-protector](/?search=johannebert%2Flaravel-spam-protector)ArchivedLibrary

andrey-helldar/blacklist-server
===============================

The blacklist server package

v2.2.1(5y ago)260[1 issues](https://github.com/andrey-helldar/blacklist-server/issues)MITPHPPHP ^7.1.3|^8.0

Since Sep 14Pushed 5y ago1 watchersCompare

[ Source](https://github.com/andrey-helldar/blacklist-server)[ Packagist](https://packagist.org/packages/andrey-helldar/blacklist-server)[ RSS](/packages/andrey-helldar-blacklist-server/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (8)Versions (19)Used By (0)

Blacklist server
================

[](#blacklist-server)

[![blacklist server](https://user-images.githubusercontent.com/10347617/64910710-359f4100-d722-11e9-9cc0-071b06330edf.png)](https://user-images.githubusercontent.com/10347617/64910710-359f4100-d722-11e9-9cc0-071b06330edf.png)

 [![StyleCI](https://camo.githubusercontent.com/0ced8d0ac8809d9d8f7ba79fc4a797ec673371c6cad33a636150dc4731a43380/68747470733a2f2f7374796c6563692e696f2f7265706f732f3230363539313631312f736869656c64)](https://styleci.io/repos/206591611) [![Total Downloads](https://camo.githubusercontent.com/9e35b35b7b09df58047649e5c107740021c66e807574db04e7970999b5306e8e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616e647265792d68656c6c6461722f626c61636b6c6973742d7365727665722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/andrey-helldar/blacklist-server) [![Latest Stable Version](https://camo.githubusercontent.com/f21835ad8cb064c9a902f89ef859243fe99dcf0d394498a3cc69bc4508615ce6/68747470733a2f2f706f7365722e707567782e6f72672f616e647265792d68656c6c6461722f626c61636b6c6973742d7365727665722f762f737461626c653f666f726d61743d666c61742d737175617265)](https://packagist.org/packages/andrey-helldar/blacklist-server) [![Latest Unstable Version](https://camo.githubusercontent.com/4ca1fd2a9e9c9817ceb51480a1e13f35dbdf2d633de92b3dd4c919ab0458a789/68747470733a2f2f706f7365722e707567782e6f72672f616e647265792d68656c6c6461722f626c61636b6c6973742d7365727665722f762f756e737461626c653f666f726d61743d666c61742d737175617265)](https://packagist.org/packages/andrey-helldar/blacklist-server) [![License](https://camo.githubusercontent.com/1731e61555bdc4d11e350b1d92c0202503d8cfc56dc65f3a1ad8eeec05d38571/68747470733a2f2f706f7365722e707567782e6f72672f616e647265792d68656c6c6461722f626c61636b6c6973742d7365727665722f6c6963656e73653f666f726d61743d666c61742d737175617265)](LICENSE)

Content
-------

[](#content)

- [Installation](#installation)
- [Using](#using)
- [License](#license)

Installation
------------

[](#installation)

To get the latest version of Laravel Blacklist Server, simply require the project using [Composer](https://getcomposer.org):

```
composer require andrey-helldar/blacklist-server

```

Instead, you may of course manually update your require block and run `composer update` if you so choose:

```
{
    "require": {
        "andrey-helldar/blacklist-server": "^2.0"
    }
}
```

Now, you can also publish the config file to change implementations (ie. interface to specific class):

```
php artisan vendor:publish --provider="Helldar\BlacklistClient\ServiceProvider"

```

Using
-----

[](#using)

First look at the [config](src/config/settings.php).

After installation, your application will accept incoming requests for the creation and verification of spammers in stop lists. To do this, you can use packet [andrey-helldar/blacklist-client](https://github.com/andrey-helldar/blacklist-client) or simply send a POST or GET request to address `https:///api/blacklist`, passing the necessary parameters:

fieldrequiredcommenttypesometimesavailable is: "email", "url", "ip", "phone"valueyesstringIn order for the server part to be able to add or check spammers on its own, you can install package [andrey-helldar/blacklist-client](https://github.com/andrey-helldar/blacklist-client) on it or go the more complicated way using facades:

```
use Helldar\BlacklistServer\Facades\Blacklist;

return Blacklist::store('foo@example.com', 'email') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('foo@example.com') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('foo@example.com') : bool

return Blacklist::store('http://example.com', 'url') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('http://example.com') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('http://example.com') : bool

return Blacklist::store('192.168.1.1', 'ip') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('192.168.1.1') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('192.168.1.1') : bool

return Blacklist::store('+0 (000) 000-00-00', 'phone') : Helldar\BlacklistServer\Models\Blacklist
return Blacklist::check('+0 (000) 000-00-00') // throw Helldar\BlacklistCore\Exceptions\BlacklistDetectedException if exists.
return Blacklist::exists('+0 (000) 000-00-00') : bool
```

However, we recommend using the [client](https://github.com/andrey-helldar/blacklist-client).

### store

[](#store)

When sending a POST request to the address of server `https:///api/blacklist` with the correct data. Foe example:

```
POST https:///api/blacklist
Content-Type: application/json

{
  "type": "email",
  "value": "foo@example.com"
}

```

It will return a JSON object:

```
{
  "type": "email",
  "value": "foo@example.com",
  "expired_at": "2024-05-11 16:41:04",
  "created_at": "2019-09-14 11:45:04",
  "updated_at": "2019-09-14 16:41:04"
}
```

If the data being sent is filled incorrectly, the server will return an error with code 400 and the following JSON object:

```
{
  "error": {
    "code": 400,
    "msg": [""]
  },
  "request": {
    // incoming data
  }
}
```

For example:

```
{
  "error": {
    "code": 400,
    "msg": ["The type must be one of email, url, phone or ip, null given."]
  },
 "request": {
   "type": "foo",
   "value": "foo@example.com"
 }
}
```

### exists

[](#exists)

If the requested data is not found in the database, the site will return a 200 code:

```
"ok"
```

If the requested data is found in the database, the site will return the code 423 (Locked):

```
{
  "error": {
    "code": 423,
    "msg": ["Checked email foo@example.com was found in our database."]
  },
  "request": {
    "value": "foo@example.com"
  }
}
```

If the data being sent is filled incorrectly, the server will return an error with code 400 and the following JSON object. For example:

```
{
  "error": {
    "code": 400,
    "msg": ["The value field is required."]
  },
  "request": {}
}

{
  "error": {
    "code": 400,
    "msg": ["The type must be one of email, url, phone or ip, null given."]
  },
  "request": {
    "type": "foo",
    "value": "foo@example.com"
  }
}
```

License
-------

[](#license)

This package is released under the [MIT License](LICENSE).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~31 days

Recently: every ~112 days

Total

16

Last Release

1956d ago

Major Versions

v1.4.1 → v2.0.02019-10-07

PHP version history (2 changes)v1.0.0PHP ^7.1.3

v2.2.0PHP ^7.1.3|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/b77790e612f1c9beed1e1533e36eba4954fbd6da2a5c9f71e845cd0f5465f0ad?d=identicon)[Helldar](/maintainers/Helldar)

---

Top Contributors

[![andrey-helldar](https://avatars.githubusercontent.com/u/10347617?v=4)](https://github.com/andrey-helldar "andrey-helldar (1 commits)")

---

Tags

laravelspamblacklistantispamanti-spam

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/andrey-helldar-blacklist-server/health.svg)

```
[![Health](https://phpackages.com/badges/andrey-helldar-blacklist-server/health.svg)](https://phpackages.com/packages/andrey-helldar-blacklist-server)
```

###  Alternatives

[watson/validating

Eloquent model validating trait.

9723.3M47](/packages/watson-validating)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[axlon/laravel-postal-code-validation

Worldwide postal code validation for Laravel and Lumen

3853.3M1](/packages/axlon-laravel-postal-code-validation)[clickbar/laravel-magellan

This package provides functionality for working with the postgis extension in Laravel.

423715.4k1](/packages/clickbar-laravel-magellan)[reedware/laravel-relation-joins

Adds the ability to join on a relationship by name.

2121.2M13](/packages/reedware-laravel-relation-joins)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
