prj.be Registry API
JSON API for registrar integration with the prj.be ccTLD registry. All endpoints accept application/json or form-encoded bodies and return JSON.
Authentication
Every request must include username and password fields in the request body. There are no API tokens or session cookies.
| Field | Type | Required | Description |
|---|---|---|---|
| username | string | Required | Registrar API username |
| password | string | Required | Registrar API password |
| testmode | boolean | Optional | Pass true to skip live changes (sandbox behaviour) |
Error Handling
All responses are HTTP 200. Check the response body for error messages. An messages key in the response indicates a failure.
messages field to detect errorsDomain Endpoints
POST /1.0/Register Register a new domain ▶
Registers a new domain under the prj.be TLD and sets the initial nameservers.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Fully qualified domain name (e.g. example.prj.be) |
| years | integer | Required | Registration period in years |
| nameservers[ns1] | string | Required | Primary nameserver hostname |
| nameservers[ns2] | string | Optional | Secondary nameserver |
| nameservers[ns3..5] | string | Optional | Additional nameservers |
Example Request
POST https://api.nic.prj.be/1.0/Register Content-Type: application/json { "username": "registrar", "password": "secret", "domain": "example.prj.be", "years": 1, "nameservers": { "ns1": "ns1.example.com", "ns2": "ns2.example.com", "ns3": "", "ns4": "", "ns5": "" } }
Example Response — Success
{
"ns1": "ns1.example.com",
"ns2": "ns2.example.com"
}
Example Response — Error
{ "messages": "Domain zaten kayıtlı" }
POST /1.0/GetDomainInfo Get domain info ▶
Returns registration status and expiry information for a domain.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Domain to query |
Example Response
{
"expirydate": "2027-01-01",
"active": true,
"expired": false,
"transferredAway": false
}
POST /1.0/Renew Renew a domain ▶
Extends the expiry date of a registered domain by the specified number of years.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Domain to renew |
| years | integer | Required | Number of years to add |
| dnsmanagement | boolean | Required | DNS management flag |
| emailforwarding | boolean | Required | Email forwarding flag |
| idprotection | boolean | Required | ID protection flag |
Example Response
{
"expirydate": "2028-01-01",
"active": true,
"expired": false,
"transferredAway": false
}
POST /1.0/RequestEPPCode Request EPP/Auth code ▶
Requests the EPP authorization code for a domain (used in transfer operations). Currently returns a placeholder response.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Domain to request EPP code for |
POST /1.0/CheckDomainTransfer Check domain transfer eligibility ▶
Checks whether a domain is eligible for transfer. Currently returns a placeholder response as inbound transfers are not supported for .prj.be.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Domain to check |
DNS Endpoints
POST /1.0/GetNameservers Get nameservers ▶
Returns the current nameservers configured in PowerDNS for the given domain.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Domain to query |
Example Response
{
"ns1": "ns1.example.com",
"ns2": "ns2.example.com",
"ns3": "",
"ns4": "",
"ns5": ""
}
POST /1.0/SetNameservers Set nameservers ▶
Updates the NS records for a domain in PowerDNS. At least nameserver1 must be provided.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Target domain |
| nameserver1 | string | Required | Primary nameserver |
| nameserver2 | string | Optional | Secondary nameserver |
| nameserver3 | string | Optional | Third nameserver |
| nameserver4 | string | Optional | Fourth nameserver |
| nameserver5 | string | Optional | Fifth nameserver |
Example Request
POST https://api.nic.prj.be/1.0/SetNameservers Content-Type: application/json { "username": "registrar", "password": "secret", "domain": "example.prj.be", "nameserver1": "ns1.newhost.com", "nameserver2": "ns2.newhost.com" }
WHOIS Endpoints
POST /1.0/GetWhoisInformation Get WHOIS contact info ▶
Returns the registrant, tech, billing and admin contact information for a domain.
Example Response
{
"registrant.firstname": "...",
"registrant.lastname": "...",
"registrant.company": "...",
"registrant.email": "...",
"registrant.address1": "...",
"registrant.city": "...",
"registrant.state": "...",
"registrant.postcode": "...",
"registrant.country": "...",
"registrant.phone": "...",
// Same fields repeated for: tech, billing, admin
}
POST /1.0/UpdateWhoisInformation Update WHOIS contact info ▶
Updates WHOIS contact information for a domain. Currently returns a placeholder response.
Lock Endpoints
POST /1.0/GetLockStatus Get domain lock status ▶
Returns the transfer lock status of a domain. All prj.be domains are locked by default.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | Domain to query |
Example Response
{ "lockstatus": "locked" }
POST /1.0/SetLockStatus Set domain lock status ▶
Sets the transfer lock status of a domain. Currently returns a placeholder response as all prj.be domains are permanently locked.