BKNS Whois API
REST API tra cứu thông tin WHOIS và kiểm tra khả dụng tên miền.
Hỗ trợ 1.260+ TLD · Dữ liệu .vn từ VNNIC chính thức · Độ trễ < 200ms
Tất cả request qua HTTPS. Phản hồi JSON, encoding UTF-8.
Xác thực
Đính kèm API key vào header X-API-Key trong mọi request. Thiếu key hoặc key sai → HTTP 401.
GET /api/v1/whois?domain=bkns.vn X-API-Key: bkns_par_xxxxxxxxxxxxxxxxxx Content-Type: application/json
Rate Limits
Giới hạn request theo tier. Vượt ngưỡng → 429 Too Many Requests kèm header Retry-After.
X-RateLimit-Limit: 300 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 1711234567 Retry-After: 15
Mã lỗi
GETWHOIS Lookup
Tra cứu thông tin WHOIS đầy đủ: chủ sở hữu, nhà đăng ký, ngày tạo/hết hạn, nameserver, trạng thái EPP.
Tham số / Kiểu / Mô tả
| Tham số | Kiểu | Mô tả |
|---|---|---|
| domain required | string | Tên miền cần tra cứu. Chấp nhận ASCII (bkns.vn), punycode (xn--...), hoặc Unicode IDN (münchen.de). Tự động chuẩn hóa sang punycode. |
Response
{
"domain": "bkns.vn",
"tld": "vn",
"status": "registered",
"cached": true,
"cacheTtlRemaining": null,
"data": {
"registrant": {
"name": "Công ty Cổ phần Giải pháp Mạng Bạch Kim"
},
"registrar": {
"name": "Công ty cổ phần giải pháp mạng Bạch Kim"
},
"nameservers": ["ns1.bkdns.vn", "ns2.bkdns.vn", "ns3.bkdns.vn"],
"dates": {
"created": "2010-06-24T17:00:00.000Z",
"updated": null,
"expiry": "2030-06-24T17:00:00.000Z",
"renewalDeadline": null
},
"domainStatus": ["clientTransferProhibited"],
"dnssec": false
}
}GETDomain Check
Kiểm tra nhanh tên miền còn khả dụng hay không. Nhanh hơn WHOIS vì chỉ trả về trạng thái.
Tham số / Kiểu / Mô tả
| Tham số | Kiểu | Mô tả |
|---|---|---|
| domain required | string | Tên miền cần kiểm tra. Chấp nhận ASCII, punycode, hoặc Unicode IDN. Tự động chuẩn hóa sang punycode. |
{
"domain": "example-notexist.vn",
"tld": "vn",
"available": true,
"premium": false,
"cached": false
}POSTBulk WHOIS
Tra cứu nhiều tên miền trong một request. Tối đa 20 domain/request. Yêu cầu tier Partner.
Request Body
{
"domains": ["bkns.vn", "google.com", "example.org"]
}Response
{
"results": [
{ "domain": "bkns.vn", "status": "registered", "data": { ... } },
{ "domain": "example.org", "status": "available" }
],
"total": 3,
"queryTime": 512
}Response Schema
Cấu trúc đầy đủ của object WHOIS trả về.
Top-level fields
data object (chỉ khi registered)
TLD hỗ trợ
1.260+ loại TLD bao gồm tất cả ccTLD, gTLD phổ biến và new gTLD.
Code mẫu
WHOIS Lookup
const domain = 'bkns.vn'; const apiKey = 'YOUR_API_KEY'; const res = await fetch( `https://whois.bkns.vn/api/v1/whois?domain=${domain}`, { headers: { 'X-API-Key': apiKey } } ); if (!res.ok) throw new Error(`HTTP ${res.status}`); const data = await res.json(); // Always check status before accessing data.* if (data.status === 'registered') { console.log('Registrar:', data.data.registrar.name); console.log('Expires: ', data.data.dates.expiry); console.log('Nameservers:', data.data.nameservers.join(', ')); } else { console.log('Domain is not registered.'); }
Xử lý 429 — Retry với backoff
async function whoisWithRetry(domain, apiKey, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { const res = await fetch( `https://whois.bkns.vn/api/v1/whois?domain=${domain}`, { headers: { 'X-API-Key': apiKey } } ); if (res.status === 429) { const wait = Number(res.headers.get('Retry-After') ?? 5) * 1000; await new Promise(r => setTimeout(r, wait)); continue; } if (!res.ok) throw new Error(`HTTP ${res.status}`); return res.json(); } }
Liên hệ
Cần hỗ trợ kỹ thuật hoặc muốn đăng ký API key Partner?