Join the chat at
NPM version Build Status
Dependency Status
Codacy Badge
Code Climate
Test Coverage

A nodejs wrapper for the REST API


$ npm install --save stopforumspam


var stopforumspam = require('stopforumspam');

The simplest way to use this is to create a user like this

var sfsUser = stopforumspam.User('', '', 'testUserName');
// REMEMBER! only supports IPv4, not IPv6 addresses

Then you can check the database easily.

	 .then(function (result) {
			// result is false if not found
			// if true result looks something like this
			// result = {
			//   success: 1,
			//   username: {
			//     lastseen: '2015-03-09 15:22:49',
			//     frequency: 3830,
			//     appears: 1,
			//     confidence: 90.2 } }

You can easily submit them if they're spammers too.

sfsUser.submit('This text is an optional way to tell SFS why you submitted the user.');
// you can use .then() if you want to wait until after the submit, though I can't imagine why

If you would prefer to call things manually, that's fine too. For example:

stopforumspam.isSpammer({ ip: '123.456.789.100', email: '', username: 'Spammer!' })
	.then(function (result) {
		// result is just like above

You don't need to search with every parameter. You can search only for one or two if you like.

stopforumspam.isSpammer({ ip: '123.456.789.100' })
	.then(function (result) {
		// result is just like above

And if you're using ES6 and want synchronous code, then there's a Sync function for everything

var spammer = stopforumspam.isSpammerSync({ ip: '123.456.789.100', email: '', username: 'Spammer!' });
if (spammer) {
	// do stuff
// User functions too!
var sfsUser = stopforumspam.User('', '', 'testUserName');
if (sfsUser.isSpammerSync()) {
	// do stuff

These are promises, so you can capture errors as well if you like.

sfsUser.submit('This text is an optional way to tell SFS why you submitted the user.')
	.fail(function (error) {
		// deal with the error that occured while submitting


MIT © Ted