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.

BASE URL https://api.nic.prj.be/1.0

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.

200All responses — inspect body for messages field to detect errors
422Validation error — a required field is missing

Domain 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

FieldTypeRequiredDescription
domainstringRequiredFully qualified domain name (e.g. example.prj.be)
yearsintegerRequiredRegistration period in years
nameservers[ns1]stringRequiredPrimary nameserver hostname
nameservers[ns2]stringOptionalSecondary nameserver
nameservers[ns3..5]stringOptionalAdditional 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

FieldTypeRequiredDescription
domainstringRequiredDomain 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

FieldTypeRequiredDescription
domainstringRequiredDomain to renew
yearsintegerRequiredNumber of years to add
dnsmanagementbooleanRequiredDNS management flag
emailforwardingbooleanRequiredEmail forwarding flag
idprotectionbooleanRequiredID 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

FieldTypeRequiredDescription
domainstringRequiredDomain 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

FieldTypeRequiredDescription
domainstringRequiredDomain to check

DNS Endpoints

POST /1.0/GetNameservers Get nameservers

Returns the current nameservers configured in PowerDNS for the given domain.

Request Parameters

FieldTypeRequiredDescription
domainstringRequiredDomain 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

FieldTypeRequiredDescription
domainstringRequiredTarget domain
nameserver1stringRequiredPrimary nameserver
nameserver2stringOptionalSecondary nameserver
nameserver3stringOptionalThird nameserver
nameserver4stringOptionalFourth nameserver
nameserver5stringOptionalFifth 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

FieldTypeRequiredDescription
domainstringRequiredDomain 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.