API v1
Вопросы к техподдержке: support.lf@statusnick.com
Концепция
Запросы
Только POST-запросы в формате JSON принимаются скриптом. Вы можете передать application/json
данные, исключая загрузки файлов.
Недопускаются пустые значения, включая false
. Если почему-то вам нужно указать false
, то впишите 0
. Ничего особенного не случится, если вы отправите пустое значение, просто система удалит такой параметр из запроса.
Частота запросов
Частота запросов в этой версии API, если нет персональной копии скрипта на отдельном сервере, не должна превышать 1 запрос в 1 секунду с каждого источника. В качестве альтернативы, можно объединять несколько текстов и отправлять их одним запросом.
- это условие держите в голове и в коде, поскольку на данный момент фактического ограничения частоты нет - оно просто предусмотрено - но считайте, что есть.
Виды обрабатываемого контента
Данная версия API работает только со сплошным текстом, то есть очищает полностью все теги, знаки препинания, цифры. То есть нужно понимать, что текст вида <html>запретное слово</html>
не будет по версии API v1
содержать запрещенного слова.
Основной узел
Основным узлом обращения всех внешних запросов к API является /api/
.
Логика API
Основное действие определяется адресом запроса. Например, /api/source/edit_status
определит, что именно нужно сделать, а параметры, переданные в JSON
, например, [query_details]=>[source_tags]=>[telegram, discord, personal]
- как именно нужно сделать.
Источник (source)
Основной сущностью сервиса LF является источник (source) - что-то вроде хранилища информации о том, с чем работает скрипт.
Например, можно создать источник с названием "Telegram_bot" и через него проверять контент относящийся именно к вашему Телеграм-боту. При этом такой источник будет собирать некоторую статистику, например, расходы на проверку контента по Телеграм-боту, хранить персональные настройки для этого источника, например, статус активен или нет.
Ответы от API
Ответы от сервиса возвращаются в JSON-формате в следующей структуре:
[result]
- Верхний ключ ответа[successes]
- Содержит все успешные проверки обращения к скрипту[API]
- Идентификатор области ответа[M-002]
- Идентификатор номера ответа[description]
- Описание ответа[details]
- Прочая информация об ответе
[errors]
- Содержит все неудачные проверки обращения к скрипту[API]
- Идентификатор области ответа[M-002]
- Идентификатор номера ответа[description]
- Описание ответа[details]
- Прочая информация об ответе
[final]
- Содержит итоговый результат работы, если позволяют выявленные ошибки обращения. В большинстве случаев, если этот ключ отсуствует, это означает что запрос прошел неуспешно.[time]
- Содержит время unixtime, когда ответ был сгенерирован.
Некоторые ошибки в ответе малозначимые и разрешают обращение к скрипту и обработку запроса. Например, если вы не указали [api_version]
, LF-сервис покажет ошибку, вставит сам последнюю актуальную версию, но продолжит выполнение запроса.
Версия API
Настоятельно рекомендуем указывать предпочитаемую версию API во всех запросах, потому что при отсутствии версии, LF подставляет последнюю актуальную. Иначе, может случится так, что ваш собственный скрипт отправляет запрос, будучи настроенным на v1, а LF подставляет версию v1.3 или v2, где совсем другая обработка, другие ответы, другая логика узлов.
В запросе к узлам можно указывать версию API следующим образом (цифры и латинские буквы):
"api_version": "string"
Главный токен
Главный токен используется для идентификации пользователя во всех запросах без исключения. Его можно изменить только вручную с личного кабинета.
В запросе в значении допускаются только цифры "0-9"
, латинские буквы "a-z"
и "A-Z"
, знак подчеркивания "_"
. Пример:
"main_token": "PD1k0qeo123j4rJ"
Описание API
Название данной версии API: v1
- так нужно прописывать при обращении к скрипту.
source
Узел через который вы можете управлять определенным источником. Используя его, вы можете менять источник (статус и т.д.), создавать источник, удалять источник и проводить прочие манипуляции. Пример обращения: /api/source/create
create
Конечный узел, через который создается источник. Лимит источников для данной версии API - 20.
https://lf.statusnick.com/api/source/create
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_name": "name"
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_name] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Имя источника для визуальной идентификации в личном кабинете LF-сервиса. На своей стороне вы можете генерировать автоматически, например, в PHP: "Discord_" . date('d-m-Y') . |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_name] | string | Имя источника. Должно быть уникальным среди всех источников аккаунта. Как вариант можно вписывать сюда префикс из названия и внешний ID, например, discord_987654321123456789. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_created] | string | Дата создания источника. |
[source][source_status] | string | Статус источника по умолчанию. |
[source][source_balance] | integer | Баланс источника после создания. По умолчанию - 0 . |
[source][source_balance_solo] | string | Параметр для определения самостоятельности баланса. Источник может иметь свой собственный баланс, отдельный от баланса аккаунта. По умолчанию no/false . |
[source][source_count] | string | Общее количество источников для контроля их количества с учетом ограничения. |
get
Этот пункт позволит вам получить информацию о конкретном источнике.
https://lf.statusnick.com/api/source/get
{
"api_version": "v1",
"main_token": "user_token_code",
"query_details": {
"source_token": "source_token_code"
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_token] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Уникальный токен источника. |
Параметр | Тип | Описание |
---|---|---|
[count] | string | Количество найденных источников. |
[source] | array | Массив полезных данных. |
[source][create_date] | string | Дата создания источника YYYY-MM-DD HH:MM:SS. |
[source][source_name] | string | Имя источника. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_status] | string | Статус источника. Может быть active или pause . |
[source][source_tags] | array | Массив меток. |
[source][source_tags][n] | string | Строка с названием одной метки. |
[source][source_balance] | integer/float | Баланс отдельного источника. |
[source][source_balance_solo] | string | Параметр для определения самостоятельности баланса. Источник может иметь свой собственный баланс, отдельный от баланса аккаунта. По умолчанию false . |
delete
Конечная точка для удаления одного источника.
Совсем навсегда, без дополнительного подтверждения.
Не забудьте перенести средства с такого источника на промо-баланс.
https://lf.statusnick.com/api/source/delete
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_token": "source_token_code"
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_token] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Уникальный токен источника. |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_name] | string | Имя источника. |
[source][source_count] | string | Общее количество источников после удаления. |
edit_status
Конечная точка для изменения статуса источника. Доступные варианты: active/pause
. Может быть полезно, если у источника самостоятельный баланс или просто хотите поставить работу источника на паузу, чтобы избежать автоматической обработки и лишних трат, например, когда был утерян токен источника.
https://lf.statusnick.com/api/source/edit_status
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_token": "source_token_code",
"source_status": "active"
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_token] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Уникальный токен источника. |
[source_status] | string | Обязательно. Принимается только active или pause . | Параметр, который задает новый статус для источника. |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_status] | array | Массив с данными о статусах до и после изменения. |
[source][source_status][before] | string | Статус источника до изменения. |
[source][source_status][after] | string | Статус источника после изменения. |
sources
Обращение к этому узлу генерирует ответ, связанный с несколькими (а не только с одним) проверяемыми источниками. Например, /api/sources/get
- возвращает список источников с основными характеристиками, а /api/sources/delete
- удалит все источники.
Не следует сильно полагаться на этот узел, потому что он сделан как временное решение и может быть отключен в какой-то период, например, по достижении некоторой степени нагрузки. Лучше сохраняйте данные о созданных источниках на своей стороне. Скажем, лучше запоминать на своей стороне токен источника, чтобы потом по нему получать данные об источнике через узел source.
get
Конечный узел для получения информации по вашим источникам в LF-сервисе.
https://lf.statusnick.com/api/sources/get
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
- | - | - | Не имеет специальных параметров. |
Параметр | Тип | Описание |
---|---|---|
[count] | string | Количество найденных источников. |
[sources] | array | Массив полезных данных по нескольким источникам. |
[sources][n] | array | Массив данных о конкретном источнике. |
[sources][n][create_date] | string | Дата создания источника YYYY-MM-DD HH:MM:SS. |
[sources][n][source_name] | string | Имя источника. |
[sources][n][source_token] | string | Уникальный токен источника. |
[sources][n][source_status] | string | Статус источника. Может быть active или pause . |
[sources][n][source_tags] | array | Массив из меток источника. В будущих версиях API метки помогут с идентификацией, группировкой, массовой обработкой. |
[sources][n][source_tags][n] | string | Строка с названием метки. |
[sources][n][source_balance] | integer/float | Баланс отдельного источника. |
[sources][n][source_balance_solo] | string | Параметр показывает, имеет ли источник независимый баланс. Если имеет, то источник тратит средства только со своего собственного баланса, а не с баланса аккаунта. |
delete
Конечный узел, который позволяет удалить все источники навсегда.
Совсем навсегда, без дополнительного подтверждения.
Не забудьте перенести средства с таких источников на промо-баланс.
https://lf.statusnick.com/api/sources/delete
{
"main_token": "token_code",
"api_version": "v1"
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
- | - | - | Не имеет специальных параметров. |
Параметр | Тип | Описание |
---|---|---|
[sources] | array | Массив полезных данных по нескольким источникам. |
[sources][n] | string | Строки с названиями удаленных источников. |
balance
Узел, который позволяет работать с балансом, средствами, например, перемещать средства.
Существует общий баланс счета, а также балансы отдельных источников. Отдельный баланс необходим, если вам нужно ограничить работу определенного источника определенной суммой, в то время как другие источники будут использовать общий баланс пользователя и не перестанут работать до тех пор, пока общий баланс пользователя не перестанет быть положительным.
По умолчанию каждый созданный источник имеет общий баланс с пользователем. Это контролируется параметром source_balance_solo.
На данный момент существует два типа пользовательского баланса и один тип баланса источника:user_balance_promo
,user_balance_payed
,source_balance
.
Будьте внимательны: все средства, возвращенные из источника, поступают на промо-баланс пользователя.
get
Этот конечный узел позволяет получить полное состояние баланса, включая баланс всех источников суммарно и балансы пользовательские.
https://lf.statusnick.com/api/balance/get
{
"main_token": "token_code",
"api_version": "v1"
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
- | - | - | Не имеет специальных параметров. |
Параметр | Тип | Описание |
---|---|---|
[balance] | array | Набор различных данных о балансе |
[balance][total] | integer/float | Суммарный баланс со всех источников и балансов аккаунта. |
[balance][sources] | integer/float | Суммарный баланс всех источников. |
[balance][user] | array | Содержит массив с данными о промо-балансе и оплаченном балансе. |
[balance][user][user_balance_payed] | integer/float | Информация о текущем оплаченном балансе. |
[balance][user][user_balance_promo] | integer/float | Информация о текущем промо-балансе. |
move
Этот конечный узел позволяет перемещать средства между конкретным источником и балансом пользователя. Пригодится, когда источник должен иметь отдельный расход средств.
Это единственный способ пополнить баланс источника.
При перемещении средств внутри аккаунта, сумма после запятой (копейки) обнуляется и на доноре и на реципиенте.
https://lf.statusnick.com/api/balance/move
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_token": "source_token_code",
"direction": "source",
"amount": 10
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_token] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Уникальный токен источника. |
[direction] | string | По умолчанию source , другое значение user . | Направление перевода - куда направить баланс. Любые непредусмотренные значения равны параметру по умолчанию. Перевод в сторону пользователя возможен только на промо-баланс. |
[amount] | integer | Обязательно. Максимально 10000 (десять тысяч), минимально 10. | Количество средств для перевода. |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_balance] | array | Содержит два параметра, характеризующих состояние баланса источника до и после перевода средств. |
[source][source_balance][before] | string | Состояние баланса до перевода средств. |
[source][source_balance][after] | string | Состояние баланса после перевода средств. |
[user] | array | Набор данных о пользовательском балансе. |
[user][user_balance_payed] | array | Содержит два параметра, характеризующих состояние оплаченного баланса пользователя до и после перевода средств. |
[user][user_balance_payed][before] | string | Состояние баланса пользователя на оплаченном балансе до перевода средств. |
[user][user_balance_payed][after] | string | Состояние баланса пользователя на оплаченном балансе после перевода средств. |
[user][user_balance_promo] | array | Содержит два параметра, характеризующих состояние промо-баланса пользователя до и после перевода средств. |
[user][user_balance_promo][before] | string | Состояние баланса пользователя на промо-балансе до перевода средств. |
[user][user_balance_promo][after] | string | Состояние баланса пользователя на промо-балансе после перевода средств. |
edit_solo
Этим запросом вы можете повлиять на то, будет ли финансироваться источник из общего баланса пользователя или будет ограничен лишь тем балансом, который на источник переведен.
https://lf.statusnick.com/api/balance/edit_solo
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_token": "source_token_code",
"source_balance_solo": "yes"
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_token] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Уникальный токен источника. |
[source_balance_solo] | string | Может быть только 'yes' или 'no' | Параметр для определения самостоятельности баланса. |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_name] | string | Имя источника. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_balance] | string | Содержит данные о балансе выбранного источника |
[source][source_balance_solo] | string | Параметр для определения самостоятельности баланса. Источник может иметь свой собственный баланс, отдельный от баланса аккаунта. По умолчанию false . |
text
В этом узле происходит проверка и предпроверка (оценка длины и стоимости) вашего текста.
Существует два основных метода: precheck
- чтобы на своей стороне перед проверкой (и оплатой) ваш скрипт мог посчитать какая длина проверяемого текста по мнению нашего API, и какая конечная стоимость будет за проверку переданного текста перед непосредственно проверкой методом check
.
precheck
Таким запросом вы можете узнать, какая длина переданного текста распознается на нашей стороне и стоимость за проверку текста. Если скрипт на вашей стороне согласится с результатами предпроверки, то можно запросить уже непосредственно саму проверку текста методом check
.
Рекомендуем использовать precheck
перед отправкой на проверку. Например, вы можете установить на стороне вашего скрипта, чтобы отклонение стоимости проверки было не более 5% (или другого значения на ваше усмотрение), и если наш precheck
посчитает сумму больше, чем ожидает ваш скрипт, то вы предотвратите неожиданные траты.
Длину проверяемого текста оба узла считают одним методом.
https://lf.statusnick.com/api/text/precheck
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_token": "source_token_code",
"text": "some_1000_symbols_text"
}
}
Описание |
---|
Все параметры аналогичны запросу на узел check с той разницей, что здесь возвращается только стоимость проверки |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_name] | string | Имя источника. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_balance_solo] | string | Параметр для определения самостоятельности баланса. Источник может иметь свой собственный баланс, отдельный от баланса аккаунта. По умолчанию false . |
[text] | array | Массив с параметрами, относящимися к предварительной проверке текста. |
[text][encoding] | string | Какой тип строки определило наше API. |
[text][length] | string | Какую длину в символах определило наше API. |
[text][check_cost] | string | В какую стоимость оценило наше API проверку входящего текста. |
[balance] | array | Массив с данными о балансе источника ИЛИ о балансе пользователя. Что будет отображено зависит от того, включен ли отдельный расход у источника или расход со счета пользователя - через параметр source_balance_solo . |
[balance][source_balance] | array | Содержит два значения: баланс до проверки и расчетный баланс после проверки. |
[balance][source_balance][before] | string | Баланс источника до проверки. |
[balance][source_balance][after] | string | Баланс источника после проверки. |
[balance][user_balance_total] | array | Содержит два значения: баланс до проверки и расчетный баланс после проверки. |
[balance][user_balance_total][before] | string | Баланс пользователя до проверки. |
[balance][user_balance_total][after] | string | Баланс пользователя после проверки. |
check
Этот конечный узел принимает текст на проверку, проверяет и выдает результат проверки. Ради него мы все здесь собрались.
https://lf.statusnick.com/api/text/check
{
"main_token": "token_code",
"api_version": "v1",
"query_details": {
"source_token": "source_token_code",
"text": "some_1000_symbols_text",
"dictionaries": {
"rus": [
"heavy",
"expletive",
"terrorism",
"weapon",
"sex",
"economic",
"politic"
],
"eng": [
"heavy"
]
},
"deep_check": "yes",
"translit_check": "yes",
"stylized_check": "yes"
}
}
Параметр | Тип | Requirements | Описание |
---|---|---|---|
[source_token] | string | Обязательно. Цифры, латинские буквы и подчеркивание. | Токен того или иного источника. |
[dictionaries] | array | Опционально. Максимум 5 языков и максимум 5 вариантов словарей по каждому языку. | Массив с требующимися словарями. Если не указывать, по умолчанию подключается словарь русских тяжелых матов. |
[dictionaries][rus] | array | Обязательно. Варианты в API v1 : rus , eng . | Массив, содержащий указание на типы словарей. |
[dictionaries][rus][heavy] | string | Обязательно. Варианты в API v1 : rus: heavy , expletive , terrorism, weapon, sex , economic , politic . eng: heavy . | Тип словаря конкретного языка. 23.04.22 - словари секс-слов объединены со словарем для защиты детства, но название словаря для версии API v1 остается sex . В будущих версиях будет изменено. |
[deep_check] | string | Опционально. Принимает один параметр 'yes' . | Позволяет сделать двойную проверку: после обычной морфемной проверки, будет проведена общая. Двойная проверка может заподозрить обычные слова. |
[translit_check] | string | Опционально. Принимает один параметр 'yes' . | Если нужно включить проверки на частичный транслит. Обратите внимание, что речь о частичном транслите. |
[stylized_check] | string | Опционально. Принимает один параметр 'yes' . | Если нужно включить учет стилизованного текста, например, 𝕷𝖆𝖓𝖌𝖚𝖆𝖌𝖊 𝓕𝓲𝓵𝓽𝓮𝓻 |
[text] | string | Обязательно. UTF-8. Ограничение (в этой версии API) 1000 символов за один запрос. | Ваши текстовые данные для проверки. Можете разбить на два запроса, если лимит превышается. Обратите внимание, что на вашей стороне разбивать иногда нужно чаще, потому что некоторые символы, преобразуясь, увеличивают длину входящего текста, например, € -> EUR . В данной версии API вырезаются все теги. Теги вырезаются до подсчета количества знаков. Обратите внимание, если будут вырезаны все теги вместе с текстом, то система сочтет, что параметр пустой и вернет соответствующую ошибку. |
Параметр | Тип | Описание |
---|---|---|
[source] | array | Массив полезных данных. |
[source][source_name] | string | Имя источника. |
[source][source_token] | string | Уникальный токен источника. |
[source][source_balance_solo] | string | Параметр для определения самостоятельности баланса. Источник может иметь свой собственный баланс, отдельный от баланса аккаунта. По умолчанию false . |
[source][source_expenses] | string | Отображает суммарные расходы по источнику. |
[user] | array | Массив данных об аккаунте. |
[user][user_expenses] | string | Расходы по аккаунту. |
[text] | array | Массив с параметрами, относящимися к предварительной проверке текста. |
[text][encoding] | string | Какой тип строки определило наше API. |
[text][length] | string | Какую длину в символах определило наше API. |
[text][check_cost] | string | Сколько списано за проверку входящего текста. |
[balance] | array | Массив с данными о балансе источника ИЛИ о балансе пользователя. Что будет отображено зависит от того, включен ли отдельный расход у источника или расход со счета пользователя - через параметр source_balance_solo . |
[balance][source_balance] | array | Содержит два значения: баланс до проверки и расчетный баланс после проверки. |
[balance][source_balance][before] | string | Баланс источника до проверки. |
[balance][source_balance][after] | string | Баланс источника после проверки. |
[balance][user_balance_total] | array | Содержит два значения: баланс до проверки и расчетный баланс после проверки. |
[balance][user_balance_total][before] | string | Баланс пользователя до проверки. |
[balance][user_balance_total][after] | string | Баланс пользователя после проверки. |
[check][check_result][n] | array | Массив данных о результатах проверки. |
[check][check_result][n][suspected_word] | string | Найденное запрещенное слово. |
[check][check_result][n][approximate_position] | string | Примерная позиция слова в тексте. В данной версии API мы указываем приблизительную позицию в тексте, поскольку эта версия API вырезает HTML-теги, знаки препинания и т.д. Обратите внимание, что этот параметр иногда может не приходить - зависит от ситуации обнаружения слова. |
[check][check_result][n][approximate_length] | string | Длина запрещенного слова. |
[check][check_result][n][translit_found] | string | Если присутствует в выдаче, значит в этом слове найдено использование букв из разных языков. Разработчик здесь не акцентирует внимание на той или иной степени запрещенности слова с частичной транслитерацией, подразумевая, что частичная транслитерация - признак вуалирования чего-бы то ни было, даже не входящего в установленные словари LF-сервиса. |
[check][check_result][n][substitution_found] | string | Если присутствует в выдаче, значит в этом слове найдено использование символов заменяющих буквы. Разработчик здесь не акцентирует внимание на той или иной степени запрещенности слова, подразумевая, что факт замены - признак вуалирования чего-бы то ни было, даже не входящего в установленные словари LF-сервиса. |
Стоимость
Расчеты приведены в российских рублях.
C 09.01.23 стоимость каждой проверки:
- 0.000004 руб. (0.0004 коп.) - за один знак при обычной проверке
- 0.000015 руб. (0.0015 коп.) - за один знак при глубокой проверке
deep_check
- 0.004 руб. (0,4 коп.) - стоимость одного обращения к API
С 07.08.24 добавлено:
- 0.000003 руб - за один знак при включении поиска стилизованного текста
stylized_check
С 09.01.23:
- При подключении более 2-х словарей, за каждый последующий добавляется 0.0006 руб. (0.06 коп.).
- При включении метода
translit_check
, к стоимости добавляется 0.000005 руб. (0.0005 коп.) за симв.
Другими словами, при управлении через API, для вас открыта свобода настройки, каким словарями пользоваться, какие методы проверки подключать, каким образом расходовать средства. При использовании наших приложений (ботов, плагинов и т.д.) стоимость установлена набором заранее включенных методов и словарей. Смотрите описание приложений в кабинете.
Пример расчета
Вариант 1: проверим роман "Война и мир".
Этот роман удобно брать для расчета, потому что все его читали и представляют объем произведения.
Входные данные:
- Текст: "Война и мир" - 3 млн. знаков * 0.000004 = 12 руб.
- Если включили 'deep_check', то: 3 млн. знаков * 0.000015 = 45 руб.
- Количество обращений к API если разделить роман на 3000 частей = 12 руб.
Другими словами, при ограничении в API v1
на количество символов в размере 1000, можно разделить проверку романа "Война и мир" на 3000 обращений к API. Тогда, с учетом стоимости обращения к API и при глубокой проверке, общая стоимость составит: 12 + 45 + 12 = 69 рублей.
Вариант 2: сообщения из чата
Этот расчет чуть сложнее предыдущего, но даст больше понимания владельцам чатов, сайтов, смс-служб и т.д..
Возьмем по максимуму обороты в условном чате. Будем считать, что длинные сообщения (более 200 знаков) пишут редко, в основном все короткие, вроде "Как дела" или какой-то анекдот в 4-5 строчек. Например, этот абзац длиной примерно 270 знаков. Много ли у вас таких сообщений?
При таком подходе все равно будем считать по искусственно завышенным показателям. Сразу вычисляем с глубокой проверкой.
Входные данные:
- Каждую секунду в чате появляется сообщение - в сутки выйдет 86400 сообщений.
- 70% сообщений - 200 знаков = 86400 * 0.7 * 0.000019 * 200 = 229,824 руб.
- 30% сообщений - 1000 знаков = 86400 * 0.3 * 0.000019 * 1000 = 492,48 руб.
- Суммарная стоимость всех обращений к сервису = 86400 * 0.004 = 345,6 руб.
Итого: 1067,904 (одна тысяча шестьдесят семь) рублей.
По наблюдениям, только 2-5% пользователей чата пишут сообщения, остальные пребывают в пассивном состоянии. Это значит, что для достижения подобных трат в день, необходимо, чтобы в вашем чате было - возьмем 10% активных - минимум 864 000 пользователей.