ПУБЛИЧНЫЙ API
Подключай к боту, сервису или таблице. GET-запросы, без ключей, ответ в JSON.
curl https://aff.top/api/check/mostbet
{
"found": true,
"username": "mostbet",
"reports_count": 23,
"categories": ["gambling"]
}
https://aff.top
Все запросы — GET, без авторизации. Формат ответа — JSON. Без ключей, без rate-limits на чтение.
/api/check/{username}
— проверить спамераПроверяет, есть ли username в базе. Передай с @ или без — работает в обоих случаях. Если найден — вернёт статистику и связанные компании.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
username |
string | Telegram username. Знак @ необязателен. |
curl https://aff.top/api/check/spammer_username
{
"found": true,
"username": "spammer_username",
"reports_count": 23,
"confidence_max": 75,
"first_seen": "2026-01-15T10:23:00Z",
"last_seen": "2026-03-10T18:41:00Z",
"categories": ["gambling", "crypto"],
"companies": ["Mostbet", "1xBet"],
"url": "https://aff.top/reports?q=spammer_username"
}
{
"found": false,
"username": "clean_user",
"reports_count": 0
}
/api/companies
— рейтинг компанийКомпании по числу жалоб. Есть пагинация и фильтр по slug.
Query параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
limit |
integer | 50 | Записей на страницу. Макс. 200. |
page |
integer | 1 | Номер страницы. |
slug |
string | — | Фильтр по конкретной компании. |
curl "https://aff.top/api/companies?limit=10&page=1"
curl "https://aff.top/api/companies?slug=mostbet"
{
"data": [
{
"id": 1,
"name": "Mostbet",
"slug": "mostbet",
"reports_count": 142,
"url": "https://aff.top/company/mostbet"
},
...
],
"total": 8029,
"page": 1,
"pages": 161
}
/api/spammers
— список спамеровСпамеры с известным username. Можно фильтровать по категории или искать конкретный аккаунт.
Query параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
limit |
integer | 50 | Записей на страницу. Макс. 200. |
username |
string | — | Поиск конкретного пользователя. |
category |
string | — | Фильтр по категории: gambling crypto nutra traffic affiliate job adult forex tools payments infobiz other |
curl "https://aff.top/api/spammers?limit=20"
curl "https://aff.top/api/spammers?category=gambling"
curl "https://aff.top/api/spammers?username=someuser"
{
"data": [
{
"username": "spammer123",
"reports_count": 14,
"last_seen": "2026-03-10T18:41:00Z",
"category": "gambling",
"url": "https://aff.top/reports?q=spammer123"
},
...
],
"total": 187
}
/api/search
— live-поискПоиск по компаниям и спамерам одновременно. Возвращает оба типа результатов.
Query параметры
| Параметр | Тип | Описание |
|---|---|---|
q | string | Поисковый запрос (мин. 2 символа). Компания, @username или домен. |
curl "https://aff.top/api/search?q=mostbet"
{
"companies": [
{"name": "Mostbet", "url": "/company/mostbet", "count": 142, "cat": "gambling"}
],
"spammers": [
{"username": "mostbet_agent", "url": "/reports?q=mostbet_agent", "count": 5}
]
}
/api/company/{slug}
— проверить компаниюПодробная информация о компании: категория, тренд за неделю, алиасы, ссылки на бейдж и карточку.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
slug | string | Slug или название компании. |
curl https://aff.top/api/company/mostbet
{
"found": true,
"name": "Mostbet",
"slug": "mostbet",
"category": "gambling",
"reports_count": 142,
"week_trend": 12.5,
"last_7_days": 9,
"aliases": ["мосбет", "mostbet.com"],
"badge_url": "/api/badge/mostbet.svg",
"card_url": "/card/mostbet",
"url": "/company/mostbet"
}
/api/widget/{slug}
— данные для виджетаКомпактные данные для встраиваемых виджетов: тренд, график за 7 дней, ссылки на бейдж и embed-виджет.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
slug | string | Slug компании. |
{
"found": true,
"name": "Mostbet",
"slug": "mostbet",
"reports_count": 142,
"trend": "+12.5%",
"trend_direction": "up",
"last_7_days": [3, 1, 0, 2, 1, 0, 2],
"top_category": "gambling",
"badge_url": "/api/badge/mostbet.svg",
"embed_url": "/embed/counter-dark/mostbet",
"page_url": "/company/mostbet"
}
🏷️ Виджеты и бейджи
GET /api/badge/{slug}.svg
— SVG-бейдж для сайта
<img src="https://aff.top/api/badge/mostbet.svg" alt="aff.top badge">
GET /api/card/{slug}.svg
— SVG-карточка с деталями
GET /embed/{style}/{slug}
— iframe-виджет
badge, counter-dark, counter-light, banner-dark, banner-light<iframe src="https://aff.top/embed/counter-dark/mostbet" width="200" height="60"></iframe>
🛡️ API защиты чатов
GET /api/chat/{username}/status
— статус чата (активен ли бот, статистика)
GET /api/chat/{username}/badge.svg
— SVG-бейдж защиты чата
GET /api/detection-rules
— правила детекции спама в JSON (публичная прозрачность)
💡 Примеры использования
Telegram бот на Python
import requests
def is_spammer(username):
r = requests.get(
f"https://aff.top/api/check/{username}"
)
data = r.json()
return data.get("found", False)
# В хэндлере нового участника:
if is_spammer(new_member.username):
await bot.ban_chat_member(chat_id, new_member.id)
JavaScript / Node.js
async function checkSpammer(username) {
const res = await fetch(
`https://aff.top/api/check/${username}`
);
const data = await res.json();
return {
isSpammer: data.found,
reports: data.reports_count,
companies: data.companies ?? [],
};
}
PHP
function checkSpammer(string $username): bool {
$response = file_get_contents(
"https://aff.top/api/check/{$username}"
);
$data = json_decode($response, true);
return $data['found'] ?? false;
}
Google Sheets / Apps Script
function CHECK_SPAM(username) {
const url = "https://aff.top/api/check/"
+ username.replace("@", "");
const r = UrlFetchApp.fetch(url);
const d = JSON.parse(r.getContentText());
return d.found ? d.reports_count : 0;
}
📋 Ограничения и заметки
- ✓ Без ключей. API публичный, авторизация не нужна.
- ✓ Rate limit. Мягкий лимит ~60 запросов/минуту с одного IP. При злоупотреблении IP блокируется.
- ✓ CORS. Разрешены запросы из браузера (CORS открыт).
- ⚠ 404 не значит чистый. Просто жалоб ещё не было. Данные собирают люди — база пополняется постепенно.
- ⚠ Не для автобана. Используй данные как сигнал, не как автоматическое решение.
🔓 Открытые данные
Данные открыты для исследователей, разработчиков и аналитиков.
Получил спам — перешли боту, добавим в базу
📩 Написать @SPAMpartnersBOT