webfilteringservice.com
Home
Features - Core
Domain Categorization Real-Time Content Updates Content Filtering Categories Unsafe Content Protection
Features - Technology
Custom Filtering Policies AI-Powered Classification Reporting & Analytics API Integration Multi-Tenant Management Compliance Filtering
Tools
Domain Lookup Category Checker Bulk Domain Scanner Website Category Scanner Category Browser
Industries - Financial
Banking Insurance FinTech Investment
Industries - Healthcare
Healthcare Pharmaceuticals Medical Research
Industries - Government & Legal
Federal Government Law Firms Law Enforcement
Industries - Technology
Software & SaaS Cybersecurity AI & Machine Learning
Industries - Education & Other
Higher Education Retail & Ecommerce Hospitality Energy & Utilities
Resources
Managed Filter Pricing API Docs Sign In Check Domain
Schools & Districts

School Web Filtering Across Every Grade

A kindergarten tablet and a senior's research laptop should not see the same internet. With 100 million domains sorted into 59 content categories, districts set what each grade band can reach — and stay CIPA compliant while doing it.

What Districts Are Actually Solving For

Two obligations run in parallel for any district: hold on to E-Rate funding by satisfying the Children's Internet Protection Act, and keep age-inappropriate material away from students on every device and every network they touch. Doing that at the scale of a district needs classification data underneath it.

Compliance Covered

The federal Children's Internet Protection Act requirements tied to E-Rate eligibility are satisfied.

Policy by Grade Band

Separate rule sets for K-5, 6-8, and 9-12, drawn from the same 59 content categories.

Built for Take-Home Devices

Chromebooks and iPads that leave the building stay filtered through cloud API classification.

100M+
Classified Domains
59
Filtering Categories
<10ms
Lookup Latency
99.9%
Guaranteed Uptime

Where the Funding Rules Bite

The federal student internet safety requirements, answered by a URL classification corpus deep enough to cover them

The Filtering Mandate

Under CIPA, a school has to adopt an internet safety policy and enforce it, blocking access to visual depictions that are obscene, that contain child pornography, or that are harmful to minors. Every domain in our corpus carries specific content categories, which is what lets a filter apply those rules precisely instead of over-blocking to be safe.

Keeping the E-Rate Discount

Discounts running from 20% to 90% on telecommunications and internet access flow to schools and libraries through E-Rate. A district that cannot demonstrate CIPA compliance puts those subsidies at risk. What our classification data supplies is the category-level, auditable evidence a program review asks to see.

Staying Clear of COPPA Trouble

Strict limits sit on the collection of personal information from children under 13 under the Children's Online Privacy Protection Act. When a school acts as the intermediary for ed-tech tools, it carries responsibility for not sending students toward sites that breach COPPA. Domains known to gather data from minors without proper consent mechanisms are flagged in our data.

Rules Your State Adds On

Plenty of states stack their own internet safety mandates on top of CIPA — California, Texas, New York, and Illinois all carry supplemental student privacy and online safety statutes. Because the taxonomy runs to 59 content categories, a district can shape one policy that answers federal and state regulations at once.

One Policy Per Grade Band, Not One For Everyone

Very little connects the browsing needs of a first grader and those of a senior working through an AP research project, and filtering that treats them identically fails one group or the other. Elementary classrooms often work best on a curated allowlist of educational destinations; older students need room to roam, with restrictions aimed specifically at the categories that carry real risk.

Fine-grained tiering is what the 59 content categories are for. Social media can stay closed through grade 5, open under supervision for grades 6-8, and run largely unrestricted for grades 9-12 with adult content still walled off. Gaming, streaming video, weapons, drugs, and every other sensitive topic move independently, tracking whatever your district's acceptable use policy says.

Devices That Go Home With Students

Chromebook and iPad programmes reshaped how schools teach, and in doing so they pushed the filtering boundary well past the edge of campus. Responsibility for CIPA-compliant filtering does not stop at the car park when a district-issued device goes home with a student. Practically, that means classification has to happen on the device or at a cloud proxy — an on-premises firewall alone no longer sees the traffic.

Cloud filtering agents running on student hardware call the classification API directly. Each DNS request or URL visit is checked live against the 100 million domain corpus, and the category that comes back is what the agent uses to permit or refuse the request. Since latency holds under 10 milliseconds, browsing approved educational material feels no different than it would unfiltered.

Policy stays in one place for the IT team, and updates reach every device wherever it happens to be connected. Library workstation, coffee shop Wi-Fi, or a bedroom desk — the rules that apply are the same set in every case.

The Risks That Follow Students Online

Inappropriate images are the least of it now. Cyberbullying platforms, anonymous messaging apps, communities built around self-harm and eating disorders, sextortion operations, and radicalization pipelines all reach young people through ordinary browsing. Classification has to keep up with that churn — quickly and accurately — if a school network is going to block the route before any damage lands.

Watching for domains tied to student-targeted risks is continuous work for our classification team. A new anonymous messaging platform appearing, or a known cyberbullying site shifting to a fresh domain, is usually identified and categorized within hours. Those updates arrive through the API on their own — nobody in district IT has to go looking for them or apply anything by hand.

Restricted content domains, unsafe distribution sites, and credential harvesting pages aimed at educational institutions are flagged alongside the rest. Given that schools sit near the top of the target list for ransomware operators, cutting off access to malicious domains is a defensive layer that protects student records and district infrastructure at the same time.

How Schools Put This to Work

Everyday situations in which classification data does the heavy lifting for safety and compliance

1

Instructional Time

What a teacher wants is a lesson that runs without a student wandering somewhere they shouldn't. A biology class working on cell division should reach academic sources without hitting a block page, while a search that veers into adult content, violent imagery, or off-topic entertainment gets stopped as it happens. Across 59 categories, educational and reference material stays open while everything from gambling to social media stays shut during class hours.

2

Libraries and Media Centres

A school library takes in every age group at once, which makes the balance between open inquiry and protection harder to strike. Shared workstations pass through many hands in a single day, so the filtering on them has to hold regardless of who sits down. Librarians can keep research databases, digital encyclopedias, and approved media available while closing off the proxy sites, anonymizers, and peer-to-peer portals students reach for when they want around the filter.

3

Chromebooks That Travel

Chromebooks issued by a district spend as much time off campus as on it. With no filtering beyond the school network, each one turns into an unguarded door onto the open web. A cloud filtering agent calls the API on every URL request instead, so district policy holds on whatever connection the device finds. Families can count on homework at the kitchen table running under the same protections as coursework in class.

4

Personal Devices and Guest Networks

Where students and staff are permitted to bring their own hardware onto the network, compliance still has to cover it. Filtering for guest Wi-Fi and BYOD belongs at the DNS or proxy layer, since nothing can be installed on a device the school does not own. Our data plugs into DNS filtering appliances and cloud proxies, answering category lookups instantly for every domain requested on the network no matter who owns the endpoint.

100M
Classified Domains
59
Filtering Categories
<10ms
Typical Lookup Time
99.9%
Guaranteed Uptime

Connecting the API to Your Filter

Domain classification that meets CIPA, dropped into the filtering infrastructure a school already runs

Grade-Aware Content Lookup

Check domains against school-appropriate categories and apply the access rules for each grade band.

import requests

# Run a batch of domains past the school policy
domains = ["khanacademy.org", "coolmathgames.com", "tiktok.com", "gambling-site.xyz"]

for domain in domains:
    response = requests.post(
        "https://webfilteringservice.com/api/moderate.php",
        json={"api_key": "YOUR_API_KEY", "query": domain}
    )
    result = response.json()

    # Decide the outcome per grade band
    category = result["primary_category"]
    risk = result["risk_level"]
    score = result["risk_score"]

    print(f"Domain: {domain} | Category: {category} | Risk: {risk} ({score})")

    if risk == "high" or category in ["gambling", "adult"]:
        print("  -> BLOCKED for all grade levels")
    elif category == "social_media":
        print("  -> BLOCKED for K-5, ALLOWED for 6-12")
// Real-time domain classification for a school filter
const domains = ["khanacademy.org", "coolmathgames.com", "tiktok.com", "gambling-site.xyz"];

async function checkDomain(domain) {
    const response = await fetch("https://webfilteringservice.com/api/moderate.php", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ "api_key": "YOUR_API_KEY", "query": domain })
    });
    const data = await response.json();

    // Turn the response into a filtering decision
    const { primary_category, categories, risk_level, risk_score } = data;
    console.log(`${domain}: ${primary_category} | Risk: ${risk_level} (${risk_score})`);

    return { domain, primary_category, risk_level, risk_score, categories };
}

// Fire every lookup at once
Promise.all(domains.map(checkDomain)).then(results => {
    results.forEach(r => {
        if (r.risk_level === "high") console.log(`  BLOCKED: ${r.domain}`);
    });
});
# Look up one domain for the school filter
curl -X POST "https://webfilteringservice.com/api/moderate.php" \
  -H "Content-Type: application/json" \
  -d '{"api_key": "YOUR_API_KEY", "query": "khanacademy.org"}'

# Response:
# {
#   "primary_category": "education",
#   "categories": ["education", "reference"],
#   "risk_level": "low",
#   "risk_score": 5
# }

# Now something the policy should refuse
curl -X POST "https://webfilteringservice.com/api/moderate.php" \
  -H "Content-Type: application/json" \
  -d '{"api_key": "YOUR_API_KEY", "query": "gambling-site.xyz"}'

# Response:
# {
#   "primary_category": "gambling",
#   "categories": ["gambling", "adult"],
#   "risk_level": "high",
#   "risk_score": 95
# }
// PHP integration for a school content filter
function classifyDomain($domain) {
    $payload = json_encode([
        "api_key" => "YOUR_API_KEY",
        "query"   => $domain
    ]);

    $ch = curl_init("https://webfilteringservice.com/api/moderate.php");
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $payload,
        CURLOPT_HTTPHEADER     => ["Content-Type: application/json"],
        CURLOPT_RETURNTRANSFER => true
    ]);
    $response = curl_exec($ch);
    curl_close($ch);

    return json_decode($response, true);
}

// Evaluate each domain against school policy
$domains = ["khanacademy.org", "coolmathgames.com", "tiktok.com", "gambling-site.xyz"];

foreach ($domains as $domain) {
    $result = classifyDomain($domain);
    $category = $result["primary_category"];
    $risk = $result["risk_level"];
    echo "$domain: $category (Risk: $risk)\n";
}

Set Up Filtering for Your District

URL classification can be live within the hour — CIPA compliant, E-Rate ready, and sized for districts of one school or a hundred.

Keep Reading

filtering options for schools CIPA compliance explained