Skip to main content
Эндпоинт POST /api/v1/profanity/filter маскирует нецензурную и грубую лексику в готовом тексте — той же маской, что опция profanity_filter при транскрипции (см. Анализ звонка). Подходит для чатов, комментариев, расшифровок из других источников.
Эндпоинт бесплатный — запросы не тарифицируются и баланс не расходуют.
Все запросы требуют авторизации через токен в заголовке: Authorization: Bearer <ваш_токен>

Запрос

Тело — JSON. Передайте либо text, либо texts:
  • Всего в запросе — не больше 100 000 символов (сумма по всем текстам).
  • Неизвестные поля не допускаются (422) — опечатка в имени параметра не превратится молча в значение по умолчанию.
  • Эвфемизмы и смягчённые формы («блин», «хрен» и т. п.) не маскируются ни на одном уровне.
  • Пунктуация, пробелы, регистр оставленных букв и длина текста сохраняются. Маска необратима; присланный текст сервис не сохраняет.

Пример запроса

Формат ответа

В примерах Х****Х — условное обозначение замаскированного слова. Запрос с text:
Запрос с texts:

Позиции (hits)

Каждая позиция — полуинтервал [start, end): start — первый символ слова, end — символ сразу после него. Маска не меняет длину слова, поэтому позиции верны и для исходного, и для маскированного текста.
Позиции считаются в символах Unicode (кодовых точках): ё — один символ, эмодзи — тоже один. В JavaScript String.length и индексы строки считают в UTF-16, где эмодзи занимает два символа, — если в тексте могут быть эмодзи, индексируйте через Array.from(text):
В Python индексы строки совпадают с позициями напрямую: text[hit["start"]:hit["end"]].

Ограничения частоты

У эндпоинта есть ограничения на частоту и число одновременных запросов. При превышении сервис отвечает 429 с заголовком Retry-After — через сколько секунд повторить запрос. Отказ из-за объёма текста, недоступности функции или занятости сервиса лимит частоты не расходует.

Ошибки