Tách tên miền (Public Suffix) API
Tách URL, email hoặc hostname thành subdomain, tên miền chính và hậu tố công cộng (.com.vn, github.io) theo Public Suffix List; IDN, tới 1000 mục.
Truyền URL, hostname hoặc địa chỉ email ở domain, API tách các phần theo Public Suffix List: public_suffix (com.vn, edu.vn, co.uk), tên miền đăng ký được (domain, eTLD+1, là cấp mà cookie và site được tính), subdomain, domain_without_suffix và tld. Các hậu tố riêng do doanh nghiệp vận hành (github.io, workers.dev, blogspot.com…) cũng được nhận ra: suffix_type là icann, private hoặc unlisted, và với hậu tố riêng thì domain_icann cho tên miền chỉ theo quy tắc ICANN.
Tên miền quốc tế hoá (IDN, tên miền tiếng Việt có dấu) được chuyển cả hai chiều (hostname dạng punycode xn--…, hostname_unicode và domain_unicode), hostname được kiểm tra theo quy tắc độ dài và ký tự, địa chỉ IP được nhận diện, localhost và tên nội bộ được đánh dấu. Gửi POST domains (mảng hoặc mỗi dòng một mục, tối đa 1000) để xử lý hàng loạt; group=true gom thêm các input theo tên miền chính, ví dụ để đếm số lead theo website công ty.
Danh sách dùng là Public Suffix List (publicsuffix.org, MPL-2.0) được biên dịch sẵn trong thư viện tldts; một bước kiểm tra hằng tuần so sánh với danh sách công bố. Xử lý hoàn toàn cục bộ: không truy vấn DNS hay WHOIS. Để kiểm tra ký tự giả mạo, lừa đảo trong IDN hãy dùng /v1/unicode-check.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
domain | query|body | string | không | URL, hostname hoặc địa chỉ email. Cũng nhận trên đường dẫn: /v1/domain-parse/shop.abc.com.vn. | |
domains | body | array | không | Hàng loạt: tối đa 1000 input (mảng, hoặc cách nhau bằng xuống dòng, dấu phẩy, khoảng trắng). | |
group | body|query | boolean | không | false | Khi dùng domains: gom thêm các input theo tên miền chính. |
Ví dụ
curl "https://apibox.io.vn/v1/domain-parse?domain=https://shop.abc.com.vn/san-pham?id=1" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/domain-parse?domain=https://shop.abc.com.vn/san-pham?id=1', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/domain-parse?domain=https://shop.abc.com.vn/san-pham?id=1",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/domain-parse?domain=https://shop.abc.com.vn/san-pham?id=1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"input": "https://shop.abc.com.vn/san-pham?id=1",
"hostname": "shop.abc.com.vn",
"hostname_unicode": "shop.abc.com.vn",
"valid": true,
"is_ip": false,
"is_idn": false,
"is_localhost": false,
"labels": 4,
"tld": "vn",
"public_suffix": "com.vn",
"suffix_type": "icann",
"domain": "abc.com.vn",
"domain_unicode": "abc.com.vn",
"domain_without_suffix": "abc",
"subdomain": "shop",
"source": "Public Suffix List (publicsuffix.org, MPL-2.0) via tldts"
}
Ứng dụng
- Gom lượt truy cập, lead, backlink theo website (tên miền chính)
- Xác định phạm vi cookie và quy tắc same-site cho một hostname
- Lấy tên miền công ty từ địa chỉ email công việc
- Chuẩn hoá và kiểm tra hostname trong cấu hình crawler, allowlist
Hỏi đáp
Vì sao tên miền của my-app.github.io không phải github.io?
github.io là hậu tố công cộng riêng: mỗi site người dùng là một tên miền riêng. domain_icann cho github.io, là kết quả chỉ theo quy tắc ICANN.
Có kiểm tra tên miền có tồn tại không?
Không. API chỉ phân tích tên; hãy dùng /v1/dns hoặc /v1/whois để kiểm tra đăng ký và bản ghi.
Danh sách hậu tố mới tới đâu?
Đó là danh sách đi kèm thư viện tldts, được đối chiếu hằng tuần với publicsuffix.org và cập nhật theo.
API liên quan
Định vị IP
Tra cứu quốc gia, tỉnh/thành, toạ độ, ASN và nhà mạng của bất kỳ địa chỉ IPv4, IPv6 nào – hoặc IP của chính bạn – chỉ với một request JSON.
DNSTra cứu DNS
Tra bản ghi A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV… của mọi tên miền hoặc tra ngược IP (PTR) qua DNS over HTTPS, kết quả JSON gọn gàng.
@Kiểm tra e-mail
Kiểm tra địa chỉ e-mail: cú pháp RFC, bản ghi MX/A, ~120k tên miền e-mail tạm, tài khoản chức năng, nhà cung cấp miễn phí và gợi ý gõ sai như gmial.com.