# .com.hk

> Rules for .com.hk domains: terms, transfer, extra registry fields and ready-to-send JSON for register, renew and transfer.

Registration terms: 1–5 years. Transfers in are supported with an authorisation code. Registration waits for registry documents. 6 extra registry fields (0 required).

- **Registry documents are required.** The domain waits in a pending state until you [upload documents](https://www.domainnameapi.com/docs/domains/documents/) and the registry approves them.
- **This extension has extra registry fields** — see [Extra fields](#extra-fields-tldattributes) below. Which ones you must send can depend on the value of another field.

## At a glance

| Property | Value |
| --- | --- |
| Registration terms | 1–5 years |
| Renewal terms | 1–10 years |
| Transfer in | Supported · authorisation code required · pre-transfer check not available |
| Transfer lock | Not available |
| Extra registry fields | 6 — see [below](#extra-fields-tldattributes) |
| Registry documents | Required |
| Trustee service | Not available |
| WHOIS privacy | Available |
| DNSSEC | Supported |
| IDN (non-ASCII names) | Supported |
| Name servers under the domain | Not allowed |
| Contact change by handle | Not available — send full details |
| Registry checks name servers | No |
| Test environment | Available |

What each property means and which error you get if you ignore it: [TLD catalogue](https://www.domainnameapi.com/docs/catalogue/#every-field-and-what-to-do-with-it).

## Lifecycle

In calendar days. `—` means the registry does not publish the period.

| Period | Days | What happens |
| --- | --- | --- |
| Add grace | — | Deleting a new registration within this window is refunded. |
| Auto-renew grace | — | After expiry the registry renews automatically; a second renewal in this window is refused with `10020`. |
| Redemption | 30 | After deletion, `POST /api/v1/domains/restore` still works. |
| Deletion hold | — | After redemption, before the name is released to the public. Nothing can be done. |

## Extra fields (`tldAttributes`)

Send these as a flat key/value object named `tldAttributes` on register requests. See [Extra registry fields](https://www.domainnameapi.com/docs/domains/#extra-registry-fields-tldattributes).

| Key | Required | Type | Description | Allowed values |
| --- | --- | --- | --- | --- |
| `X-HK-DOMAIN-CATEGORY` | optional | DropdownList | Domain category | `I`, `O` |
| `X-HK-OWNER-DOCUMENT-TYPE` | optional | DropdownList | Owner document type | `HKID`, `OTHIDV`, `OTHORG`, `OTHID`, `BR`, `BIRTHCERT`, `HKSARG`, `CI`, `PASSNO`, `HKORDINANCE`, `CRS` |
| `X-HK-OWNER-DOCUMENT-ORIGIN-COUNTRY` | optional | Text | Owner document origin country | Free text |
| `X-HK-OWNER-AGE-OVER-18` | optional | DropdownList | Is Owner Age Over 18 | `yes`, `no` |
| `X-HK-OWNER-DOCUMENT-NUMBER` | optional | Text | Owner document number | Free text |
| `X-HK-OWNER-OTHER-DOCUMENT-TYPE` | optional | Text | Other Document Type | Free text |

## Ready-to-send requests

Each request below is built from this extension's catalogue entry. Replace the domain, the handles and any value in `<angle brackets>`.

### Register

`POST /api/v1/domains/register` with contact handles you created with `POST /api/v1/contacts`. To send contact details inline instead, use [`POST /api/v1/domains/register-with-contacts`](https://www.domainnameapi.com/docs/domains/register/#registering-with-contact-details) with the same `tldAttributes`.

`tldAttributes` lists every field this extension defines. Send the ones that apply: the table above says which are required, and some become required only for a particular value of another field.

```json
{
  "domainName": "apiname.com.hk",
  "period": 1,
  "nameServers": [
    "tr.apiname.com",
    "eu.apiname.com"
  ],
  "handles": [
    { "contactType": "Registrant", "handle": "D-174829301847" },
    { "contactType": "Admin", "handle": "D-174829301847" },
    { "contactType": "Tech", "handle": "D-174829301847" },
    { "contactType": "Billing", "handle": "D-174829301847" }
  ],
  "tldAttributes": {
    "X-HK-DOMAIN-CATEGORY": "I",
    "X-HK-OWNER-DOCUMENT-TYPE": "HKID",
    "X-HK-OWNER-DOCUMENT-ORIGIN-COUNTRY": "<Owner document origin country>",
    "X-HK-OWNER-AGE-OVER-18": "yes",
    "X-HK-OWNER-DOCUMENT-NUMBER": "<Owner document number>",
    "X-HK-OWNER-OTHER-DOCUMENT-TYPE": "<Other Document Type>"
  }
}
```

### Renew

`POST /api/v1/domains/renew` — call `POST /api/v1/domains/renew/check` with the same body first. See [Renew a domain](https://www.domainnameapi.com/docs/domains/renew/).

```json
{
  "domainName": "apiname.com.hk",
  "period": 1
}
```

### Transfer in

`POST /api/v1/domains/transfer`. This registry has no pre-transfer check, so call it directly. See [Transfer a domain in](https://www.domainnameapi.com/docs/domains/transfer/).

```json
{
  "domainName": "apiname.com.hk",
  "authCode": "aB3!xY9-kL2pQ7",
  "period": 1
}
```

*From the TLD catalogue on 2026-11-02. For live values call `GET /api/v1/products/tlds?filterText=com.hk`.*
