API

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

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

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

Примеры кода

В спойлерах приведены примеры использования сервиса с запросом к API. Такой код пока что не тестировался (кроме PHP, JS, Python) и приведен для ускорения написания.

PHP
// Пример класса с проверкой
class Check
{
    public function run(string $main_token, string $source_token, string $api_version, string $point, string $endpoint, string $text)
    {
        // Параметры проверки текста
        $query_details = [
            'source_token' => $source_token,
            'text' => $text,
            'dictionaries' =>
            [
                'rus' => [
                    'heavy',
                    'expletive',
                    'weapon',
                    'terrorism',
                    'sex',
                ],
                'eng' => [
                    'heavy',
                ]
            ],
            'deep_check' => 'yes',
            'translit_check' => 'yes',
            'stylized_check':'yes'
        ];

        // Формируем набор POST-данных
        $send_data['main_token'] = $main_token;
        $send_data['api_version'] = $api_version;
        $send_data['query_details'] = $query_details;

        // Определяем узел для запроса
        $url = 'https://lf.statusnick.com/api/' . $point . '/' . $endpoint;

        $curl = curl_init();
        curl_setopt_array(
            $curl,
            [
                CURLOPT_POST => 1,
                CURLOPT_HEADER => 0,
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_URL => $url,
                CURLOPT_POSTFIELDS => json_encode($send_data),
                CURLOPT_HTTPHEADER => array("Content-Type: application/json"),
            ]
        );
        $result = curl_exec($curl);
        $result_json = json_decode($result, 1);
        curl_close($curl);

        return $result_json;
    }
}

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

// Если обнаружены запрещенные слова
if (!empty($check_result['result']['final']['check']['check_result'])) :
    // Делаем что-то
endif;
JS
function check(main_token, source_token, api_version, point, endpoint, text) {
  
  // Параметры проверки текста
  var query_details = {
      source_token: source_token,
      text: text,
      dictionaries: {
          rus: ['heavy', 'expletive', 'weapon', 'terrorism', 'sex'],
          eng: ['heavy']
      },
      deep_check: 'yes',
      translit_check: 'yes',
      stylized_check:'yes'
  };

  // Формируем набор POST-данных
  var send_data = {
      main_token: main_token,
      api_version: api_version,
      query_details: query_details
  };

  // Определяем узел для запроса
  var url = 'https://lf.statusnick.com/api/' + point + '/' + endpoint;

  // Выполняем AJAX-запрос
  var xhr = new XMLHttpRequest();
  xhr.open('POST', url, true);
  xhr.setRequestHeader('Content-Type', 'application/json');

  xhr.onreadystatechange = function () {
      if (xhr.readyState == 4 && xhr.status == 200) {
          var result_json = JSON.parse(xhr.responseText);

          // Пример использования результата
          if (result_json.result.final.check.check_result) {
              // Делаем что-то
          }
      }
  };

  xhr.send(JSON.stringify(send_data));
}

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


def check(main_token, source_token, api_version, point, endpoint, text):

    # Параметры проверки текста
    query_details = {
        'source_token': source_token,
        'text': text,
        'dictionaries': {
            'rus': ['heavy', 'expletive', 'weapon', 'terrorism', 'sex'],
            'eng': ['heavy']
        },
        'deep_check': 'yes',
        'translit_check': 'yes',
        'stylized_check':'yes'
    }

    # Формируем набор POST-данных
    send_data = {
        'main_token': main_token,
        'api_version': api_version,
        'query_details': query_details
    }

    # Определяем узел для запроса
    url = f'https://lf.statusnick.com/api/{point}/{endpoint}'

    # Выполняем POST-запрос
    headers = {'Content-Type': 'application/json'}
    response = requests.post(url, data=json.dumps(send_data), headers=headers)

    # Пример обработки результата
    result_json = response.json()

    return result_json


# Пример использования
res = check('main_token', 'source_token', 'v1', 'text', 'check', 'content to check')


if res.get('result', {}).get('final', {}).get('check', {}).get('check_result'):
    print(res)
else:
    print('OK')

Версии API

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

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

Словари

Словари создаются под каждую градацию API и постоянно пополняются в зависимости от логики API даже спустя 2 года после создания проекта.

Действующие (28.05.24) словари для API v1 и v1_up_limits:

ЯзыкОписаниеПрименение в API
РусскийТяжелые маты, очень грубая нецензурная лексика.heavy
РусскийРугательства, обзывательства, в том числе не являющиеся нецензурными.expletive
РусскийСловарь, связанный с террористической деятельностью, в частности: название организаций, опасных веществ.terrorism
РусскийСловарь оружейный, включает в себя названия частей и типов оружия (шомпол, пуля, коллиматорный и т.д.), некоторых веществ.weapon
РусскийСловарь, направленный на ограждение лиц до 18 лет от запрещенной тематики вроде ЛГБТ, наркотиков, курения, алкоголя.sex
РусскийСлова, связанные с экономикой. В большинстве своем представлены запрещенными организациями, вроде названий он-лайн казино, финансовыми пирамидами.economic
РусскийНабор для поиска оскорбительных высказываний по национальному, социальному, религиозному признакам.

Словарь внедрен 28.05.24 и находится в стадии тестирования. Это означает, что на дату внедрения словарь сравнительно небольшой и идет отработка пересечения с обычными словами.
politic
АнглийскийТяжелые маты, очень грубая нецензурная лексика.heavy