API

Примеры запросов в PostMan

https://www.postman.com/statusnick/workspace/public

При составлении запросов в PostMan для v1 убирайте Header User-Agent.

Примеры кода

В спойлерах приведены примеры использования сервиса с запросом к API v2.

CURL
Bash
curl -X POST 'https://api.statusnick.com/lf/' \
	-H 'Content-Type: application/json' \
	-H 'Authorization: Bearer XXXXXXXXXXXXXXXXXX' \
	-H 'Api-Version: v2' \
	-d '{
		"endpoint": "text/check",
		"payload": {
			"text": "some_text",
			"dicts": {
	      "rus": [
	      	"childhood", 
	      	"expletive", 
	      	"hate", 
	      	"heavy", 
	      	"terrorism", 
	      	"weapons"
	      ]
	    },
	    "modes": [
	    	"tags", 
	    	"patterns", 
	    	// "translit", не работает одновременно с "subst"
	      "subst",
	      "masks",
	      "deep"
	    ]
		}
	}'
PHP
declare(strict_types=1);

class Check
{
    private const URL = 'https://api.statusnick.com/lf/';

    public function run(
        string $token,
        string $text,
        array $dicts = [
            'rus' => ['heavy', 'expletive', 'weapons', 'terrorism']
        ],
        array $modes = ['deep', 'masks', 'patterns', 'tags'],
        string $endpoint = 'text/check',
        string $apiVersion = 'v2'
    ): array {
    
        $body = [
            'endpoint' => $endpoint,
            'payload'  => [
                'text'  => $text,
                'dicts' => $dicts,
                'modes' => $modes,
            ],
        ];

        $handle = curl_init();
        curl_setopt_array($handle, [
            CURLOPT_URL            => self::URL,
            CURLOPT_POST           => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT        => 10,
            CURLOPT_TCP_KEEPALIVE  => 1,
            CURLOPT_POSTFIELDS     => 
                json_encode(
                    $body, 
                    JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
                ),
            CURLOPT_HTTPHEADER     => [
                'Content-Type: application/json',
                'Authorization: Bearer ' . $token,
                'Api-Version: ' . $apiVersion,
            ],
        ]);

        $response = curl_exec($handle);
        curl_close($handle);

        return is_string($response) ? (json_decode($response, true) ?? []) : [];
    }
}

// Пример использования
$checker = new Check();
$result =$checker->run('XXXXXXX', 'content for check');

if (!empty($result['data']['f'])) {
    // Обнаружены запрещенные слова
}
JS
async function check(
  token,
  text,
  dicts = { rus: ['heavy', 'expletive', 'weapons', 'terrorism'] },
  modes = ['deep', 'masks', 'patterns', 'tags'],
  endpoint = 'text/check',
  apiVersion = 'v2'
) {
  const url = 'https://api.statusnick.com/lf/';

  const body = {
    endpoint: endpoint,
    payload: {
      text: text,
      dicts: dicts,
      modes: modes
    }
  };

  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`,
      'Api-Version': apiVersion
    },
    body: JSON.stringify(body)
  });

  const result = await response.json();

  if (result?.data?.f?.length > 0) {
    // Обнаружены запрещенные слова
  }

  return result;
}

// Пример использования
check('XXXXXXX', 'content for check');
Python
import requests

def check(
    token: str,
    text: str,
    dicts: dict = None,
    modes: list = None,
    endpoint: str = 'text/check',
    api_version: str = 'v2'
) -> dict:
    url = 'https://api.statusnick.com/lf/'

    if dicts is None:
        dicts = {'rus': ['heavy', 'expletive', 'weapons', 'terrorism']}

    if modes is None:
        modes = ['deep', 'masks', 'patterns', 'tags']

    payload = {
        'endpoint': endpoint,
        'payload': {
            'text': text,
            'dicts': dicts,
            'modes': modes
        }
    }

    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {token}',
        'Api-Version': api_version
    }

    response = requests.post(url, json=payload, headers=headers, timeout=30)
    result = response.json()

    return result

# Пример использования
res = check('XXXXXXX', 'content for check')

if res.get('data', {}).get('f'):
    print('Найдены запрещенные слова:', res['data']['f'])
else:
    print('OK')

Версии API

API v2

Вторая версия с полностью измененным подходом. Быстрее, дешевле.

Перейти к описанию API v2

Признана устаревшей с 27.09.26, будет закрыта 27.02.27.

Признана устаревшей с 27.09.26, будет закрыта 27.02.27.

Дубликат первой версии с повышенными границами лимитов и другой стоимостью. Подходит для проверки больших текстов, не подходит для частых запросов и проверки коротких текстов. Поскольку по логике это дубликат API v1, то удобно в коде переключаться с одной версии проверки на другую всего лишь меняя один параметр в зависимости от длины текста. Также можно компоновать множество коротких текстов в один большой, чтобы добиться ускорения обработки.

Перейти к описанию API v1_up_limits