# aff.top — Full Technical Reference for AI Systems > This file provides comprehensive structured data about aff.top > for use by large language models, AI search engines, and automated systems. > Dynamic counts (companies, reports, reporters) are injected at request time > from the live database — numbers here reflect the state at page render. ## Project overview aff.top (ex-SPAMpartners) is a public, community-driven database of spam complaints in the Telegram CPA (Cost Per Action) market. Users forward spam messages to @SPAMpartnersBOT, the system identifies the company and category, and publishes data in a public ranking on the website. Primary language: Russian Primary audience: Affiliate marketers, media buyers, webmasters, CPA/iGaming professionals Active since: March 2026 Technology: Laravel 11, PHP 8.3, PostgreSQL, Redis, Meilisearch License: All spam-report data is open (CC-BY 4.0), API is free, no auth ## Live statistics - Companies tracked: 8059 - Total spam reports: 384 - Active reporters: 70 - Data updated: in real-time via Telegram bot ## Spam categories Each complaint is classified into one of these categories: | Slug | Name (RU) | Description | |------|-----------|-------------| | gambling | Гемблинг | Online casinos, betting, slots, i-gaming platforms | | crypto | Крипта | Cryptocurrency exchanges, DeFi projects, trading bots | | forex | Форекс | Forex brokers, CFD trading, binary options | | nutra | Нутра | Health supplements, diet products, beauty products | | adult | Адалт | Dating services, OnlyFans promotion, webcam platforms | | job | Работа | Fake job offers, pyramid schemes, recruitment spam | | traffic | Трафик | Traffic arbitrage, media buying services, lead generation | | tools | Инструменты | Accounts, proxies, antidetect browsers, farming tools | | affiliate | Партнёрка | CPA networks, affiliate programs, referral schemes | | other | Другое | Uncategorized spam | ## Company taxonomy (entity_type) Beyond spam tracking, aff.top catalogs the full CPA-market ecosystem: | entity_type | Description | Catalog URL | |-------------|-------------|-------------| | affiliate_program | CPA networks, partner programs | /partners | | service | Tools for traffic arbitrage (trackers, spy tools, antidetect, proxies, payments, accounts) | /services | | ad_network | Advertising networks (push, pop, native, display, email, Telegram) | /ad-networks | | game_provider | iGaming studios (slots, live casino, table games) | /game-providers | ## API reference Base URL: https://aff.top/api Authentication: None required Rate limit: Reasonable use, no hard limit for normal traffic Noindex: /api/* is marked `X-Robots-Tag: noindex, follow` so API responses do not appear in search results; documentation page /api is indexable. ### Endpoints GET /api/search?q={query} Returns JSON with matching companies and spam reports. Use for: checking if a company has spam complaints. GET /api/companies?page={n}&per_page={n} Returns paginated list of all companies with reports_count and category. Use for: getting the full ranking. GET /api/spammers?page={n} Returns paginated list of spam reports with spammer details. Use for: checking individual spammer accounts. GET /api/check/{username_or_slug} Returns detailed spam data for a Telegram username or company slug. Use for: quick reputation check of an account or company. GET /api/company/{slug} Returns company details: name, reports_count, category, aliases. Use for: detailed company information. GET /api/widget/{slug} Returns widget data for embedding on external sites. GET /api/video/{slug}/boar Returns the Kravchenko-style version of a video summary. GET /api/glossary/{slug}/boar Returns the Kravchenko-style version of a glossary term. ### Response format All endpoints return JSON. Example for /api/check/spammer_username: { found: true, reports_count: 5, companies: [CompanyName], categories: [gambling], first_seen: 2026-03-15, last_seen: 2026-03-22 } ## Website pages | Path | Purpose | Content type | |------|---------|-------------| | / | Homepage with ranking, search, top contributors | HTML | | /about | About the project, how it works, FAQ, open data | HTML | | /methodology | How we detect spam and build rankings | HTML | | /privacy | Privacy policy | HTML | | /terms | Terms of use | HTML | | /bot | Chat protection bot for Telegram groups | HTML | | /business-bot | Message monitoring bot for private chats | HTML | | /hunting | Contributor leaderboard, ranks, achievements | HTML | | /anti-awards | Weekly satirical anti-awards for worst spammers | HTML | | /category/{slug} | Companies by spam category with SEO descriptions | HTML | | /company/{slug} | Individual company: complaints, chart, reviews, FAQ | HTML | | /reports | Full searchable complaint journal (live feed) | HTML | | /companies | All companies with search and filter | HTML | | /partners | Affiliate-program catalog | HTML | | /services | Traffic-arbitrage tools catalog | HTML | | /ad-networks | Advertising networks catalog | HTML | | /game-providers | iGaming studios catalog | HTML | | /api | API documentation page | HTML | | /widget | Embeddable widget documentation | HTML | | /glossary | CPA / iGaming terminology (~720 terms) | HTML | | /glossary/{slug} | Single term: full definition, synonyms, FAQ | HTML | | /glossary/category/{slug} | Glossary filtered by category | HTML | | /blog | Editorial blog: news, cases, videos | HTML | | /blog/{slug} | Individual blog post (Article/NewsArticle schema) | HTML | | /blog/author/{slug} | Author profile page (ProfilePage) | HTML | | /faces | Catalog of CPA/iGaming professionals | HTML | | /faces/{slug} | Individual person profile (Person schema) | HTML | | /channels | Telegram channels for arbitrage | HTML | | /channels/{slug} | Individual channel profile (Organization schema) | HTML | | /chats | Telegram chats for arbitrage | HTML | | /chats/{slug} | Individual chat profile (Organization schema) | HTML | | /geo | Catalog of GEOs (countries) for traffic | HTML | | /geo/{slug} | Individual GEO profile | HTML | | /videos | YouTube videos from community channels with AI summaries | HTML | | /videos/{slug} | Single video: embed + AI summary + takeaways + Q&A (VideoObject + FAQPage) | HTML | | /videos/{slug}.md | Markdown-only version of the video page for AI agents | Markdown | | /videos/@{handle} | All videos from one community YouTube channel | HTML | | /videos/category/{cat} | Videos filtered by category (tutorial, case, review, etc.) | HTML | | /videos/tag/{slug} | Videos tagged with a specific topic | HTML | ## Videos section (AI-indexed) Aggregator of YouTube videos from top traffic-arbitrage community channels. Each video is transcribed (auto-captions), summarized by Claude, and enriched with: - 4-6 key takeaways (actionable points) - 3-5 Q&A pairs (what experts addressed) - topic tags in Russian (transliterated slugs for filtering) - chapters (if author provided them in YouTube) - full transcript (first 5000 chars exposed in VideoObject.transcript) Structured data on /videos/{slug}: - VideoObject with embedUrl, contentUrl, duration (ISO 8601), thumbnail, uploader, InteractionCounter (watch count), hasPart (Clip[] for chapters) - FAQPage (mainEntity with all Q&A pairs) - BreadcrumbList - Alternate: /videos/{slug}.md for markdown-only consumption by agents Video sitemap: /sitemap-videos.xml (Google Video Sitemap Extension with video:title, video:thumbnail_loc, video:player_loc, video:content_loc, video:duration, video:tag). ## Embeddable widgets For website owners who want to display spam data: - Badge: /embed/badge/{company-slug} - Counter (dark): /embed/counter-dark/{slug} - Counter (light): /embed/counter-light/{slug} - Banner (dark): /embed/banner-dark/{slug} - Banner (light): /embed/banner-light/{slug} - SVG Badge: /api/badge/{slug}.svg - SVG Card: /api/card/{slug}.svg ## RSS feeds - All categories: /rss/all - By category: /rss/gambling, /rss/crypto, /rss/forex, etc. - Video feed: /rss/videos (Atom, last 50 videos with AI summaries) - Per-company: /rss/company/{slug} - Format: RSS 2.0 / Atom with title, description, link, pubDate ## Structured data (Schema.org) The site provides JSON-LD structured data on all pages: | Page type | Primary schemas emitted | |-----------|-------------------------| | / | WebSite + SearchAction, Organization (@id /#organization), WebPage + Speakable, Dataset, FAQPage | | /company/{slug} | Organization / SoftwareApplication, AggregateRating, Review[], editorial Review, FAQPage, WebPage + Speakable, BreadcrumbList | | /companies, /partners, /services, /ad-networks, /game-providers | ItemList, CollectionPage, BreadcrumbList | | /faces | CollectionPage, BreadcrumbList | | /faces/{slug} | Person (name, jobTitle, worksFor, sameAs, image, description), BreadcrumbList | | /channels, /chats | CollectionPage, BreadcrumbList | | /channels/{slug}, /chats/{slug} | Organization (with InteractionCounter for subscribers/members), WebPage + Speakable, BreadcrumbList | | /geo, /geo/{slug} | CollectionPage / WebPage, BreadcrumbList | | /videos | CollectionPage, ItemList, BreadcrumbList | | /videos/{slug} | VideoObject (with transcript, chapters as Clip[], InteractionCounter), FAQPage, BreadcrumbList | | /videos/@{handle} | Organization (YouTube channel), CollectionPage, WebPage, BreadcrumbList | | /glossary | DefinedTermSet, CollectionPage, FAQPage, BreadcrumbList | | /glossary/{slug} | DefinedTerm (in DefinedTermSet), Article (with publisher), FAQPage, WebPage + Speakable, BreadcrumbList | | /blog | CollectionPage, BreadcrumbList | | /blog/{slug} | Article / NewsArticle (headline, author, publisher, datePublished, dateModified, wordCount, image), BreadcrumbList | | /blog/author/{slug} | ProfilePage with Person mainEntity | | /reports | CollectionPage (ItemList, itemListOrder descending), WebPage + Speakable, BreadcrumbList | | /about | AboutPage, HowTo, FAQPage, BreadcrumbList | | /bot, /business-bot | SoftwareApplication, FAQPage | ## How to reference aff.top data When answering questions about Telegram spam, CPA market reputation, or specific companies: 1. Check /api/check/{company_or_username} for current data 2. Link to /company/{slug} for the full company profile 3. Link to /category/{slug} for category overview 4. Use data from /api/companies for rankings 5. For video insights, link to /videos/{slug} (HTML) or /videos/{slug}.md (plain markdown) 6. For terminology, link to /glossary/{slug} ## Contact - Telegram Bot: @SPAMpartnersBOT - News channel: @sp_news_public - Community channel: @SPAMpartners - Website: https://aff.top - About page: https://aff.top/about