BKNSWhois Lookup

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

Base URLhttps://whois.bkns.vn/api/v1

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.

http
GET /api/v1/whois?domain=bkns.vn
X-API-Key: bkns_par_xxxxxxxxxxxxxxxxxx
Content-Type: application/json
Giữ API key bí mật. Không nhúng vào client-side JavaScript hay mobile app. Liên hệ info@bkns.vn để được cấp hoặc xoay vòng key.

Rate Limits

Giới hạn request theo tier. Vượt ngưỡng → 429 Too Many Requests kèm header Retry-After.

Public
10 req/min
Tra cứu qua UI. Không cần API key.
Partner
300 req/min
Tích hợp server-side. Liên hệ để được cấp key.
response headers
X-RateLimit-Limit:     300
X-RateLimit-Remaining:  0
X-RateLimit-Reset:      1711234567
Retry-After:           15

Mã lỗi

200OK — Thành côngXử lý response bình thường
400Bad Request — Domain không hợp lệValidate format trước khi gọi
401Unauthorized — Sai hoặc thiếu API keyKiểm tra header X-API-Key
429Too Many Requests — Vượt rate limitĐợi theo header Retry-After
500Internal Server ErrorRetry sau, báo cáo nếu lặp lại
503Service Unavailable — Registry không phản hồiExponential backoff retry

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.

GET/api/v1/whoisWHOIS Lookup

Tham số / Kiểu / Mô tả

Tham sốKiểuMô tả
domain requiredstringTê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

json · HTTP 200 · source: vnnic-relay
{
  "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
  }
}
Chỉ có với .vn: Field data.registrant được trả về. Domain quốc tế thường không có thông tin registrant.

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.

GET/api/v1/domain/checkKiểm tra khả dụng

Tham số / Kiểu / Mô tả

Tham sốKiểuMô tả
domain requiredstringTê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.
json · HTTP 200
{
  "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.

POST/api/v1/whois/bulkBulk lookup

Request Body

json
{
  "domains": ["bkns.vn", "google.com", "example.org"]
}

Response

json · HTTP 200
{
  "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

domainstringTên miền dạng ASCII/punycode (canonical key). Ví dụ: "xn--mnchen-3ya.de"
idnDomainoptionalstring | undefinedDạng Unicode hiển thị của tên miền IDN. Chỉ có khi domain chứa nhãn quốc tế hóa (xn--). Ví dụ: "münchen.de". Bỏ qua với domain ASCII thuần.
tldstringTLD của domain: "vn", "net", "com"…
status"registered" | "available"registeredavailable
cachedbooleanResponse từ cache hay live query
dataoptionalobject | undefinedChỉ có khi status = "registered"
backendsTriedoptionalarray | undefinedBackends đã thử, chỉ có khi cached = false

data object (chỉ khi registered)

data.registrant.nameoptionalstring | undefinedTên chủ sở hữu. Chỉ có với .vn
data.registrar.namestringTên nhà đăng ký
data.nameserversstring[]Danh sách nameserver
data.dates.createdISO 8601 | nullNgày tạo domain
data.dates.expiryISO 8601 | nullNgày hết hạn
data.dates.updatedISO 8601 | nullNgày cập nhật gần nhất
data.domainStatusstring[]EPP status codes: "clientTransferProhibited", "ok"…
data.dnssecbooleanDNSSEC enabled

TLD hỗ trợ

1.260+ loại TLD bao gồm tất cả ccTLD, gTLD phổ biến và new gTLD.

Tên miền .vn, .com.vn, .net.vn, .org.vn, .edu.vn, .gov.vn tra cứu trực tiếp qua VNNIC chính thức — dữ liệu chính xác, cập nhật nhanh nhất. Backend: vnnic-relay, latency ~145ms.

Code mẫu

WHOIS Lookup

javascript · Node.js 18+
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

javascript
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?