LTS TGLSC LTSLink
Dashboard
Home
×
๐Ÿ”

Account Required

You need a TGLSC account to use the API dashboard. Log in or create an account to manage your API tokens.

Log In Create Account

Statistics

Global platform statistics and your API usage overview.

API Tokens

Manage your API tokens. You can create up to 5 tokens per account.

Events

Events and special promotions on TGLSC LTSLink.

TGLSC Density 4 Season 3 (Dynamic Event)

During the Density 4 Season 3 event, your LTSLink API limits are automatically multiplied based on your TGLSC account level! Keep leveling up on the main platform to unlock massive API limits.

During this season, Level Vouchers will be your best friend, use them wisely!

Starts: April 1, 2026  |  Ends: June 1, 2026

Level Requirements, Rewards & Difficulty

Account LevelMultiplierNew Weekly LimitDifficultyStatus
Discord Linked1.25x Limit25,000 requestsEasyโœ… (Permanently Available)
Level 100+2x Limit40,000 requestsMediumโœ… Available
Level 200+4x Limit80,000 requestsHardโœ… Available
Level 500+50x Limit1,000,000 requestsAlmost Impossible (trading + giveaways + insane grind)โœ… Available
Level 2000+225x Limit4,500,000 requestsCheater (no mercy.)โœ… Available

These limits apply to all tokens owned by your account. Make sure your account is linked and meets the level requirements!

Check your inbox regularly for updates, announcements and potential rewards!

โš  All new tokens created after reaching these levels during the event will have a permanent multiplier applied.

Discord Account Linking

Link your Discord account to your TGLSC profile on the dashboard to unlock this feature.

Discord Linking

Account StatusMultiplier
Discord Linkedx1.25 Limit
Discord Unlinkedx1.00 Default Limit

API Overview

Everything you need to know about the TGLSC LTSLink API.

Introduction

The TGLSC LTSLink API allows you to programmatically check URLs against 48+ web content filters used in schools and enterprises. Get real-time categorization and block status for any URL.

Base URL: https://live.glseries.net/api/v1

Account Required

API tokens are linked to your TGLSC account at glseries.net. You must be logged in to create and manage tokens.

Quick Start

1. Log in to your TGLSC account at glseries.net.

2. Create an API token from the Tokens page or sidebar.

3. Make a GET request to https://live.glseries.net/api/v1/check with your token and a URL.

4. Receive categorization results from all filters.

GET https://live.glseries.net/api/v1/check?token=gl_your_token&url=glseries.net

Available Endpoints

EndpointDescription
/api/v1/checkCheck a single URL against one or all filters
/api/v1/bulkCheck up to 3 URLs at once (each URL counts individually)
/api/v1/vsCompare exactly 2 filters head-to-head on a URL
/api/v1/multiCheck a URL against a custom set of filters
/api/v1/filtersList all available filters (no auth required)

Streaming Mode

All check endpoints support a stream=1 parameter that returns results as a live Server-Sent Events (SSE) feed. Results appear as each filter completes instead of waiting for all filters to finish.

GET https://live.glseries.net/api/v1/check?token=gl_your_token&url=glseries.net&stream=1

Rate Limits

Limit TypeValue
Weekly requests20,000 per token
Burst limit10 requests per 5 seconds
Per-minute limit60 requests per minute
Bulk URL limit3 URLs per bulk request

Usage Counting

Each URL/domain scanned counts as one request toward your weekly limit, regardless of how many filters are run against it. For example, checking 3 URLs in a bulk request counts as 3 requests.

Response Format

All responses are returned as JSON. Successful responses include a success: true field. Streaming responses use SSE format with JSON data payloads.

Authentication

How to authenticate with the LTSLink API.

TGLSC Account

All API tokens are linked to a TGLSC account. You must be logged in at glseries.net to create tokens.

API Tokens

All API requests require a valid token. Tokens are passed as a query parameter.

GET https://live.glseries.net/api/v1/check?token=gl_abc123...&url=google.com
โš  Keep your tokens secret. Never expose them in client-side code or public repositories.

Token Management

  • Each account can create up to 5 tokens
  • Tokens are permanently linked to your account
  • Tokens can be enabled/disabled without deletion
  • Tokens can be renamed for organization
  • Deleted tokens cannot be recovered
  • You can only manage tokens belonging to your account

Token Format

All tokens start with the prefix gl_ followed by 48 hexadecimal characters.

gl_a1b2c3d4e5f6...

API Endpoints

Complete reference for all available endpoints.

Check URL โ€” Single or All Filters

GET/api/v1/check

Checks a single URL against all filters, or a specific filter if specified. Supports streaming.

Parameters

ParameterRequiredDescription
tokenYesYour API token
urlYesURL to check (e.g. google.com)
filterNoFilter key to check against a single filter (e.g. fortiguard)
streamNoSet to 1 for live SSE streaming results

Usage Counting

Counts as 1 request toward your weekly limit.

Example

GET /api/v1/check?token=gl_token&url=google.com
GET /api/v1/check?token=gl_token&url=google.com&filter=fortiguard
GET /api/v1/check?token=gl_token&url=google.com&stream=1

Bulk Check โ€” Multiple URLs

GET/api/v1/bulk

Check up to 3 URLs at once. Each URL counts as a separate request toward your weekly limit. Supports streaming and optional single-filter mode.

Parameters

ParameterRequiredDescription
tokenYesYour API token
urlYesComma-separated URLs (max 3). Example: google.com,github.com,glseries.net
filterNoFilter key to only check a single filter for all URLs
streamNoSet to 1 for live SSE streaming results

Usage Counting

Counts as N requests where N = number of URLs. 3 URLs = 3 requests toward your weekly limit.

Example

GET /api/v1/bulk?token=gl_token&url=google.com,github.com,glseries.net
GET /api/v1/bulk?token=gl_token&url=google.com,github.com&filter=fortiguard
GET /api/v1/bulk?token=gl_token&url=google.com,github.com,glseries.net&stream=1

JSON Response Example

{
  "success": true,
  "results": {
    "google.com": [
      { "filter": "fortiguard", "name": "FortiGuard", "category": "Search Engines", "blocked": false, "error": false, "responseTime": 120 },
      ...
    ],
    "github.com": [ ... ],
    "glseries.net": [ ... ]
  },
  "totalUrls": 3,
  "totalFilters": 48,
  "usage": { "weeklyUsed": 45, "weeklyLimit": 20000 }
}

SSE Stream Response Example

data: {"type":"init","urls":["google.com","github.com"],"totalUrls":2,"totalFilters":48,"totalChecks":86}

data: {"type":"result","url":"google.com","filter":"fortiguard","name":"FortiGuard","category":"Search Engines","blocked":false,"error":false,"responseTime":95}

data: {"type":"result","url":"github.com","filter":"fortiguard","name":"FortiGuard","category":"Information Technology","blocked":false,"error":false,"responseTime":110}

data: {"type":"result","url":"google.com","filter":"lightspeed","name":"Lightspeed","category":"Search Engines","blocked":false,"error":false,"responseTime":200}

...

data: {"type":"done","usage":{"weeklyUsed":48,"weeklyLimit":20000}}

Versus โ€” Compare 2 Filters

GET/api/v1/vs

Compare exactly 2 filters head-to-head on one or more URLs. Great for seeing how different filters categorize the same site. Supports streaming and bulk URLs (max 3).

Parameters

ParameterRequiredDescription
tokenYesYour API token
urlYesURL or comma-separated URLs (max 3)
filtersYesExactly 2 filter keys separated by comma. Example: fortiguard,lightspeed
streamNoSet to 1 for live SSE streaming results

Usage Counting

Counts as N requests where N = number of URLs. The number of filters does not affect counting.

Example

GET /api/v1/vs?token=gl_token&url=glseries.net&filters=fortiguard,lightspeed
GET /api/v1/vs?token=gl_token&url=glseries.net,youtube.com&filters=cisco,goguardian&stream=1

JSON Response Example

{
  "success": true,
  "mode": "versus",
  "results": {
    "glseries.net": {
      "fortiguard": {
        "filter": "fortiguard", "name": "FortiGuard",
        "category": "Games", "blocked": true, "error": false, "responseTime": 130
      },
      "lightspeed": {
        "filter": "lightspeed", "name": "Lightspeed",
        "category": "Security - Proxy", "blocked": true, "error": false, "responseTime": 95
      }
    }
  },
  "filters": [
    { "key": "fortiguard", "name": "FortiGuard" },
    { "key": "lightspeed", "name": "Lightspeed" }
  ],
  "totalUrls": 1,
  "usage": { "weeklyUsed": 48, "weeklyLimit": 50000 }
}

Multi โ€” Custom Filter Selection

GET/api/v1/multi

Check a URL against a custom set of filters โ€” pick any number you want. Unlike /vs which requires exactly 2, this lets you choose 1, 5, 10, or all of them. Supports streaming and bulk URLs (max 3).

Parameters

ParameterRequiredDescription
tokenYesYour API token
urlYesURL or comma-separated URLs (max 3)
filtersYesComma-separated filter keys (any number). Example: fortiguard,cisco,goguardian,securly
streamNoSet to 1 for live SSE streaming results

Usage Counting

Counts as N requests where N = number of URLs. The number of filters does not affect counting.

Example

GET /api/v1/multi?token=gl_token&url=youtube.com&filters=fortiguard,cisco,goguardian
GET /api/v1/multi?token=gl_token&url=youtube.com,twitch.tv&filters=fortiguard,lightspeed,securly,iboss&stream=1

JSON Response Example

{
  "success": true,
  "mode": "multi",
  "results": {
    "youtube.com": [
      { "filter": "fortiguard", "name": "FortiGuard", "category": "Streaming Media", "blocked": false, "error": false, "responseTime": 115 },
      { "filter": "cisco", "name": "Cisco Umbrella", "category": "Media Sharing", "blocked": false, "error": false, "responseTime": 200 },
      { "filter": "goguardian", "name": "GoGuardian", "category": "Streaming", "blocked": true, "error": false, "responseTime": 88 }
    ]
  },
  "filters": [
    { "key": "fortiguard", "name": "FortiGuard" },
    { "key": "cisco", "name": "Cisco Umbrella" },
    { "key": "goguardian", "name": "GoGuardian" }
  ],
  "totalUrls": 1,
  "usage": { "weeklyUsed": 49, "weeklyLimit": 20000 }
}

List Available Filters

GET/api/v1/filters

Returns a list of all available filter keys and names. No authentication required.


Platform Statistics

GET/api/stats

Returns the total number of checks performed on the platform. No authentication required.


Streaming Mode (SSE) โ€” All Endpoints

Add &stream=1 to any check endpoint (/check, /bulk, /vs, /multi) to receive results as a live Server-Sent Events stream.

Instead of waiting for all filters to complete before receiving a response, results are pushed to you the moment each filter finishes. This is useful for:

  • Displaying results progressively in a UI
  • Reducing perceived latency for large scans
  • Processing results as they arrive in real-time

SSE Event Types

Event TypeDescription
initSent first โ€” contains metadata about the scan (URLs, filter count, total checks)
resultSent as each filter completes โ€” contains the URL, filter key, category, blocked status, and response time
doneSent last โ€” indicates all filters have completed, includes usage stats

JavaScript SSE Example

const source = new EventSource(
  'https://live.glseries.net/api/v1/check?token=gl_token&url=google.com&stream=1'
);

source.onmessage = (event) => {
  const data = JSON.parse(event.data);
  
  if (data.type === 'init') {
    console.log('Scan started:', data.totalFilters, 'filters');
  }
  
  if (data.type === 'result') {
    console.log(data.filter, 'โ†’', data.category, data.blocked ? 'โŒ BLOCKED' : 'โœ… OK');
  }
  
  if (data.type === 'done') {
    console.log('All done! Used:', data.usage.weeklyUsed, '/', data.usage.weeklyLimit);
    source.close();
  }
};

Available Filters

All content filters you can check against.

KeyNameDescriptionStatus
fortiguard๐Ÿ›ก๏ธ FortiGuardFortinet web filter database
lightspeed๐Ÿšฆ LightspeedLightspeed Systems filter
paloalto๐Ÿชต Palo AltoPalo Alto Networks URL filtering
blocksiweb๐Ÿงฑ Blocksi WebBlocksi standard web filter
blocksiai๐Ÿค– Blocksi AIBlocksi AI-powered classification
blocksiguardianโš”๏ธ Blocksi GuardianBlocksi Guardian filtering system
linewize๐Ÿ‹โ€๐ŸŸฉ LinewizeLinewize content filter
ciscoโ˜‚๏ธ Cisco UmbrellaCisco Umbrella (OpenDNS)
securlyโš›๏ธ SecurlySecurly cloud filter
goguardian๐Ÿ”’ GoGuardianGoGuardian web filter
goguardianv2๐Ÿ’ก GoGuardian V2GoGuardian V2-powered classification
goguardianaiโš™๏ธ GoGuardian AIGoGuardian AI-powered classification
lanschool๐Ÿซ LanSchoolLanSchool web filter
lanschoolair๐ŸงŠ LanSchool AirLanSchool Air content filter
contentkeeper๐Ÿงน ContentKeeperContentKeeper filter
aristotle๐Ÿฅ AristotleK12Aristotle K-12 filter
senso๐ŸŒณ Senso CloudSenso Cloud filter
deledao๐Ÿ˜ˆ DeledaoDeledao AI filter
iboss๐Ÿ’ผ iBossiBoss cloud filter
barracuda๐Ÿฆž BarracudaBarracuda web reputation filter
dnsfilter๐Ÿ“ก DNSFilterDNSFilter domain categorization
qustodio๐Ÿชผ QustodioQustodio parental control filter
sophos๐Ÿณ SophosSophos SXL4 URL classification
zscalerโ˜๏ธ ZscalerZscaler cloud filter
gaggle๐Ÿฆ† GaggleGaggle AI filter
smoothwall๐Ÿ’ค SmoothwallSmoothwall content filterโš ๏ธ
safedns๐Ÿ—ผ SafeDNSSafeDNS content filter
ruckus๐Ÿ• RuckusRuckus content filter
unifi๐ŸŒ€ UnifiUnifi content filter (Deprecated)โš ๏ธ
webroot๐ŸŒฑ WebrootWebroot malware filter
nextdns๐Ÿ›ฐ๏ธ NextDNSNextDNS content filter
netsweeper๐Ÿ’ซ NetsweeperNetsweeper content filter
hapara๐Ÿงฉ HaparaHapara content filter
forcepoint๐Ÿน ForcePointForcePoint web filtering
cleanbrowsing๐ŸŒฟ CleanBrowsingCleanBrowsing DNS filter
adguard๐Ÿงญ AdGuardAdGuard DNS/content filtering
googlesafebrowsing๐Ÿงจ Google Safe BrowsingGoogle malicious site detection
opendns๐Ÿงฌ OpenDNSCisco OpenDNS filtering
watchguard๐Ÿ‘๏ธ WatchGuardWatchGuard web filtering
cloudflareintel๐ŸŒฉ๏ธ Cloudflare IntelCloudflare Intel content filteringโš ๏ธ
cloudflarefamily๐Ÿก Cloudflare FamilyCloudflare Family content filtering
quad9๐Ÿ”ท Quad9Quad9 malware filter
trellix๐Ÿ›ธ TrellixTrellix Real-Time Database filter (Deprecated)โš ๏ธ
controld๐Ÿ”Œ Control DControl D content filter
dragonflyai๐Ÿฆ‹ Dragonfly AIDragonfly AI filtering
norton๐Ÿ” NortonNorton filter
kaspersky๐ŸŒค๏ธ KasperskyKaspersky filterโš ๏ธ
ciracs๐Ÿ CIRA CSCIRA CS filter
safesurfer๐Ÿ„ SafeSurferSafeSurfer filter
mrworldwide๐ŸŒŽ Mr. WorldwideMr. Worldwide filter (april fools edition)โฐ

Errors & Limits

Error codes and rate limiting behavior.

Error Codes

CodeHTTP StatusDescription
MISSING_TOKEN401No token provided
INVALID_TOKEN401Token does not exist
TOKEN_DISABLED403Token has been disabled
NO_ACCOUNT403Token not linked to an account
WEEKLY_LIMIT42920,000 weekly request limit reached
UNKNOWN_FILTER404Invalid filter key specified
MISSING_URL400No URL parameter provided
MISSING_FILTERS400No filters parameter provided (for /vs and /multi)
INVALID_FILTER_COUNT400Wrong number of filters for /vs (must be exactly 2)
NO_FILTERS400Empty filters parameter (for /multi)
TOO_MANY_URLS400More than 3 URLs provided in bulk request
INVALID_TLD400Domain uses an unrecognized top-level domain
CHECK_FAILED500Filter check encountered an error

Rate Limiting

API tokens have two levels of rate limiting:

  • Burst: Maximum 10 requests per 5-second window
  • Sustained: Maximum 60 requests per minute

When rate limited, the API returns a 429 status with a retryAfter field indicating seconds to wait.

Weekly Limit

Each token has a weekly limit of 20,000 requests. Each URL scanned counts as one request, regardless of the number of filters checked against it.

โš  The weekly limit of 20,000 requests resets every Monday at 00:00 UTC.

Bulk Limits

The /bulk, /vs, and /multi endpoints accept up to 3 URLs per request. Each URL counts individually toward your weekly limit.

Code Examples

Quick examples in popular languages.

Single URL Check โ€” JavaScript (Node.js)

const res = await fetch(
  'https://live.glseries.net/api/v1/check?token=gl_your_token&url=glseries.net'
);
const data = await res.json();
console.log(data.results);

Single URL Check โ€” Python

import requests

r = requests.get('https://live.glseries.net/api/v1/check', params={
    'token': 'gl_your_token',
    'url': 'glseries.net'
})
print(r.json())

Single URL Check โ€” cURL

curl "https://live.glseries.net/api/v1/check?token=gl_your_token&url=glseries.net"

Single Filter Check

curl "https://live.glseries.net/api/v1/check?token=gl_your_token&url=glseries.net&filter=fortiguard"

Streaming Check โ€” JavaScript

const source = new EventSource(
  'https://live.glseries.net/api/v1/check?token=gl_your_token&url=google.com&stream=1'
);

source.onmessage = (event) => {
  const data = JSON.parse(event.data);
  
  if (data.type === 'result') {
    console.log(`${data.filter}: ${data.category} โ€” ${data.blocked ? 'BLOCKED' : 'OK'} (${data.responseTime}ms)`);
  }
  
  if (data.type === 'done') {
    console.log('Scan complete. Weekly usage:', data.usage.weeklyUsed);
    source.close();
  }
};

Streaming Check โ€” Python

import requests
import json

url = 'https://live.glseries.net/api/v1/check'
params = {'token': 'gl_your_token', 'url': 'google.com', 'stream': '1'}

with requests.get(url, params=params, stream=True) as r:
    for line in r.iter_lines():
        if line:
            line = line.decode('utf-8')
            if line.startswith('data: '):
                data = json.loads(line[6:])
                if data['type'] == 'result':
                    print(f"{data['filter']}: {data['category']} โ€” {'BLOCKED' if data['blocked'] else 'OK'}")
                elif data['type'] == 'done':
                    print(f"Done. Used: {data['usage']['weeklyUsed']}/{data['usage']['weeklyLimit']}")
                    break

Bulk Check โ€” Multiple URLs

curl "https://live.glseries.net/api/v1/bulk?token=gl_your_token&url=google.com,github.com,glseries.net"

Bulk Check with Streaming โ€” JavaScript

const source = new EventSource(
  'https://live.glseries.net/api/v1/bulk?token=gl_your_token&url=google.com,github.com&stream=1'
);

source.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === 'result') {
    console.log(`[${data.url}] ${data.filter}: ${data.category}`);
  }
  if (data.type === 'done') {
    source.close();
  }
};

Bulk Check with Single Filter

curl "https://live.glseries.net/api/v1/bulk?token=gl_your_token&url=google.com,github.com,glseries.net&filter=fortiguard"

Versus โ€” Compare 2 Filters

curl "https://live.glseries.net/api/v1/vs?token=gl_your_token&url=glseries.net&filters=fortiguard,lightspeed"

Versus with Streaming โ€” Python

import requests, json

params = {
    'token': 'gl_your_token',
    'url': 'glseries.net',
    'filters': 'fortiguard,lightspeed',
    'stream': '1'
}

with requests.get('https://live.glseries.net/api/v1/vs', params=params, stream=True) as r:
    for line in r.iter_lines():
        if line:
            line = line.decode('utf-8')
            if line.startswith('data: '):
                data = json.loads(line[6:])
                if data['type'] == 'result':
                    status = 'BLOCKED' if data['blocked'] else 'ALLOWED'
                    print(f"[{data['url']}] {data['name']}: {data['category']} โ€” {status}")
                elif data['type'] == 'done':
                    break

Versus with Multiple URLs

curl "https://live.glseries.net/api/v1/vs?token=gl_your_token&url=glseries.net,youtube.com&filters=goguardian,securly"

Multi โ€” Custom Filter Set

curl "https://live.glseries.net/api/v1/multi?token=gl_your_token&url=youtube.com&filters=fortiguard,cisco,goguardian,securly,iboss"

Multi with Streaming โ€” JavaScript

const source = new EventSource(
  'https://live.glseries.net/api/v1/multi?token=gl_your_token&url=youtube.com&filters=fortiguard,cisco,goguardian&stream=1'
);

const results = [];

source.onmessage = (event) => {
  const data = JSON.parse(event.data);
  
  if (data.type === 'result') {
    results.push(data);
    console.log(`โœ“ ${data.name}: ${data.category} (${data.responseTime}ms)`);
  }
  
  if (data.type === 'done') {
    console.log(`\nCompleted ${results.length} checks`);
    console.log(`Weekly usage: ${data.usage.weeklyUsed} / ${data.usage.weeklyLimit}`);
    source.close();
  }
};

Multi with Multiple URLs

curl "https://live.glseries.net/api/v1/multi?token=gl_your_token&url=youtube.com,twitch.tv,discord.com&filters=fortiguard,lightspeed,goguardian"

Response Example โ€” Single Check (All Filters)

{
  "success": true,
  "url": "glseries.net",
  "results": [
    {
      "filter": "fortiguard",
      "name": "FortiGuard",
      "category": "Information Technology",
      "blocked": false,
      "error": false,
      "responseTime": 245
    },
    ...
  ],
  "totalFilters": 48,
  "usage": {
    "weeklyUsed": 42,
    "weeklyLimit": 20000
  }
}

Response Example โ€” Streaming Single Check

data: {"type":"init","url":"glseries.net","totalFilters":48}

data: {"type":"result","url":"glseries.net","filter":"fortiguard","name":"FortiGuard","category":"Information Technology","blocked":false,"error":false,"responseTime":245}

data: {"type":"result","url":"glseries.net","filter":"lightspeed","name":"Lightspeed","category":"Technology","blocked":false,"error":false,"responseTime":180}

...

data: {"type":"done","usage":{"weeklyUsed":42,"weeklyLimit":20000}}

Endpoint Summary

EndpointUse CaseFiltersMax URLsStreaming
/api/v1/checkStandard single-URL checkAll or 11?stream=1
/api/v1/bulkCheck multiple URLs at onceAll or 13?stream=1
/api/v1/vsCompare 2 filters head-to-headExactly 23?stream=1
/api/v1/multiCustom filter selectionAny number3?stream=1

Create API Token

Give your token a name to identify it. You can create up to 5 tokens per account.

Token created successfully!

โš  Save this token now โ€” it cannot be recovered if lost.

Delete Token?

This action is permanent and cannot be undone. All data associated with this token will be lost.