AI Tools Blocklist
Home AI Tools Database Taxonomy Pricing
Solutions
Enterprise IT & CISO Education Firewall Admins Shadow AI Prevention REST API Customer Login
Download Free Sample
OEM Domain Feed

Ship an AI-Blocking Category
Your Customers Are Already Demanding

Your customers need to block AI tools — and they are asking for a category you do not have. Our OEM feed gives you 17,410+ classified AI domains to ship as a native category in weeks, not quarters.

17,410+Classified Domains
18Functional Categories
DailyUpdate Cadence
RESTAPI Delivery
18 Categories
~180 Subcategories
Daily Updates
REST API
White-Label Rights
99.9% API Uptime SLA
Market Demand

The AI Category Gap Is Costing You Deals

Every DNS filter, SWG, and MDM platform is fielding the same request: "Where is your AI category?" If your product does not have one, the deal goes to the vendor that does.

Eighteen months from niche to mainstream. AI-tool blocking has shifted from niche compliance request to mainstream product requirement in under eighteen months. Enterprise CISOs, school districts, and MSPs all evaluate products on whether they can block AI traffic out of the box.

The problem is not engineering — it is data

Maintaining a comprehensive AI-tool domain list requires monitoring the landscape continuously across a 102-million-domain corpus that catches tools appearing in no directory or curated list.

We classify, you ship the category

We handle classification so you can ship the category. Your engineering team gets a clean REST API — no scraping, no manual curation, no stale lists.

Enterprise Customers

CISOs under board-level mandates to block shadow AI evaluate your product on whether it has an AI category. Without one, they move to the next vendor on the shortlist.

Education Buyers

K-12 tech directors need CIPA-compliant AI filtering. District-level purchases are decided on whether your product blocks AI tools out of the box, not after a custom configuration.

MSP & MSSP Clients

Managed service providers are fielding the same AI-blocking request from multiple clients simultaneously. They need a centrally managed category, not per-client custom rules.

Feed Specification

What the Feed Contains

Not a flat domain list — a structured, classified dataset with rich metadata for granular policy enforcement.

Data Fields per Record

DomainFQDN of the AI tool
Category1 of 18 functional groups
Subcategory~180 granular labels
ConfidenceClassification score
StatusActive / inactive flag
DatesFirst seen + last verified
LanguagesInterface language(s)
Risk TierHigh / medium / low

18 Functional Categories

Each category contains 5–13 subcategories, giving your product approximately 180 total classification labels.

Text & Language Image & Visual Video Audio, Voice & Music Code & Development Agents & Automation Data, Analytics & Research Search, Knowledge & Docs Productivity & Collab Marketing, Sales & SEO Customer Support Business & Vertical Education & Learning Design, 3D & Creative Models & Infrastructure Security & Detection Lifestyle & Entertainment Robotics & Embodied AI
// Sample feed record (JSON format)
{
  "domain": "chatgpt.com",
  "primary_category": "Text & Language",
  "subcategory": "General assistants & chatbots",
  "confidence": 0.99,
  "status": "active",
  "first_seen": "2022-11-30",
  "last_verified": "2026-07-09",
  "languages": ["en", "multi"],
  "risk_tier": "high"
}

API Delivery

The feed is delivered via a REST API. Authenticate with your API key in the X-API-Key header (HTTPS GET). The download_database action streams the full database as CSV with columns domain,category,subcategory, and the database_info action reports when the database last changed so you only re-download when needed.

# Check when the database last changed
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://www.aitoolsblocklist.com/api/database/?action=database_info"

# Full feed download (CSV: domain,category,subcategory)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://www.aitoolsblocklist.com/api/database/?action=download_database" -o ai_tools.csv

# Filter by category client-side after download
awk -F',' '$2 == "Code & Development"' ai_tools.csv
Integration Architecture

How Your Product Integrates the Feed

The integration follows the same pattern your product uses for other category feeds. Poll our API daily, re-download the CSV when it changes, and the AI category behaves like any other content category.

DNS Filtering Products

Each domain maps directly to a DNS query your resolver matches against. Subcategory data enables granular policies — block code assistants while allowing education tools.

Secure Web Gateways

The feed applies at the URL-filtering layer, matching the host portion against classified domains. TLS inspection enables subcategory-level policy on multi-product platforms.

MDM Products

Domain feed maps to WebContentFilter (iOS), managed Chrome restrictions (Android/ChromeOS), or VPN-based filtering. Easily transformed into any platform-specific format.

// Example: Python sync script for OEM integration
import requests
import csv
import io

class AIToolsFeedSync:
    def __init__(self, api_key, base_url="https://www.aitoolsblocklist.com/api/database/"):
        self.headers = {"X-API-Key": api_key}
        self.base_url = base_url

    def get_database_info(self):
        """Fetch metadata: last_updated_unix, file size, plan."""
        resp = requests.get(
            self.base_url,
            headers=self.headers,
            params={"action": "database_info"}
        )
        resp.raise_for_status()
        return resp.json()

    def get_full_feed(self):
        """Download the complete classified domain feed (CSV)."""
        resp = requests.get(
            self.base_url,
            headers=self.headers,
            params={"action": "download_database"}
        )
        resp.raise_for_status()
        # Columns: domain, category, subcategory
        return list(csv.DictReader(io.StringIO(resp.text)))

    def sync_to_local_db(self, db_connection):
        """Daily sync: re-download only when the database changed."""
        info = self.get_database_info()
        if info["last_updated_unix"] <= self.get_last_sync_time(db_connection):
            return 0, 0  # nothing changed since last sync

        # Diff the new snapshot against your local copy
        new_rows = {r["domain"]: r for r in self.get_full_feed()}
        old_domains = db_connection.get_known_domains()

        added = [r for d, r in new_rows.items() if d not in old_domains]
        removed = [d for d in old_domains if d not in new_rows]

        for record in added:
            db_connection.upsert_domain(record)
        for domain in removed:
            db_connection.remove_domain(domain)

        self.update_sync_time(db_connection, info["last_updated_unix"])
        return len(added), len(removed)
Licensing

Flexible OEM Licensing

We license the feed, not seats. Your product can serve any number of end customers under a single OEM agreement.

Standard OEM License

Full feed access with daily updates and white-label delivery. Volume-based annual pricing tied to end-customer accounts.

  • All 17,410+ classified domains
  • 18 categories, ~180 subcategories
  • Daily updates via REST API
  • White-label rights included
  • SLA: 99.9% API uptime

Premium OEM License

Everything in Standard, plus custom category mappings, priority classification, and dedicated engineering support. Built for deep policy-engine integration.

  • Custom category taxonomy mapping
  • Priority domain classification requests
  • Dedicated API infrastructure
  • Direct engineering support channel
  • Quarterly product roadmap alignment

Both licenses include a 30-day technical evaluation with full API access. We assign a solutions engineer to help your team complete the integration.

Request OEM Feed Pricing

Tell us about your product, approximate customer count, and desired integration timeline. We will prepare a licensing proposal within 48 hours.

Build vs. Buy

Why License Instead of Building In-House

Your team can build a classifier — but the ongoing operational burden rarely justifies it when a production-ready feed already exists.

DimensionBuild In-HouseOEM Feed License
Time to market2–4 quarters2–4 weeks
Domain coverageVaries by effort17,410+ domains
Ongoing maintenanceDedicated headcountZero — handled by us
Engineering costMonths of pipeline devAPI integration only
Update frequencyDepends on capacityDaily, automated
Domain corpusBuild from scratch102M domains, battle-tested
Ship in weeks, not quarters. Your team writes integration code to poll the API and ingest records — the feed arrives pre-classified with structured metadata. Product managers define how the category appears in your admin console, QA verifies, and you ship.
// Example: Node.js integration for a DNS filtering product
const axios = require('axios');
const { parse } = require('csv-parse/sync');
const { CategoryStore } = require('./category-store');

const API = 'https://www.aitoolsblocklist.com/api/database/';
const headers = { 'X-API-Key': process.env.OEM_API_KEY };

async function syncAIToolsCategory() {
  const store = new CategoryStore();
  const lastSync = await store.getLastSyncTimestamp('ai-tools');

  // Re-download only when the database has changed
  const { data: info } = await axios.get(API, {
    headers, params: { action: 'database_info' }
  });
  if (info.last_updated_unix <= lastSync) return;

  // Full CSV snapshot: domain,category,subcategory
  const { data: csv } = await axios.get(API, {
    headers, params: { action: 'download_database' }
  });
  const rows = parse(csv, { columns: true });

  // Upsert every domain into your category DB
  for (const row of rows) {
    await store.upsert({
      domain: row.domain,
      categoryId: mapToInternalCategory(row.category),
      subcategoryId: mapToInternalSubcategory(row.subcategory)
    });
  }

  // Deactivate domains no longer present in the snapshot
  await store.deactivateMissing('ai-tools', rows.map(r => r.domain));

  await store.updateSyncTimestamp('ai-tools', info.last_updated_unix);
  console.log(`Synced ${rows.length} domains`);
}

// Run daily via cron
syncAIToolsCategory().catch(console.error);

Start Your 30-Day Technical Evaluation

Both licenses include a 30-day technical evaluation with full API access. We assign a solutions engineer to help your team complete the integration.

Related Resources

Everything Else an OEM Partner Needs