# Dbrij Domains Documentation

Everything you need to manage domains on Dbrij: search and buying including .ng, renewals, transfers, Dbrij nameservers, DNS records, connecting a domain, Hosting, email and the public endpoints.

Canonical page: https://dbrij.com/products/domains/docs

## Introduction

**Dbrij Domains** is where you buy domain names, including the Nigerian `.ng` family, priced in naira, and where you run their DNS, secure them with HTTPS and point them at your apps on Dbrij Hosting. Dbrij resells registrations through accredited registrars; it is not a registrar itself.

A domain arrives in one of two ways:

|  |  |  |
| --- | --- | --- |
| purchased | source | Bought or transferred through Dbrij. Dbrij renews it, and can write its DNS and change its nameservers for you. |
| connected | source | Registered somewhere else and brought in for DNS checks, HTTPS and Hosting. Its registration stays where it is. |

Every domain lives in a space: your personal space or a company. The space decides who can change it and which Hosting services it can point at. Open your domains at [/domains](https://dbrij.com/domains).

For a guided walkthrough, see the [Domains guide](https://dbrij.com/products/domains/guide).

## Searching and buying

### Search

Type a name or a full domain. Search is open to anyone, with no account. It covers one of two catalogues:

|  |  |  |
| --- | --- | --- |
| global | default | A bare name is checked across .com, .net, .org, .io, .co, .dev, .app, .ai, .xyz, .tech, .online, .site, .store, .cloud, .space, .biz, .info, .me. Type a full domain to check another ending. |
| ng | Nigerian | The .ng family: .ng, .com.ng, .org.ng, .net.ng, .i.ng, .name.ng, .sch.ng, .mobi.ng. |

Each result says whether the name is available, whether it is a premium name (priced by the registry, and shown at that price), and its price for one year. What can actually be bought is decided live: an ending that cannot be bought here is listed with one sentence saying why, rather than left out. A name that can be bought also says how long the registry usually takes to publish a new name of that ending, measured on purchases made here.

### Buy

1. Add your registrant contact details once: name, address, city, state, postal code, country, phone and email. Registries require them.
2. Choose how many years, from 1 to 5.
3. Pay with your saved card, or on the payment page. VAT is shown before you pay. Availability and price are checked again at that moment.

Buying from a Hosting service's page buys the domain **for** that service: once it is registered, its DNS is pointed at the service and HTTPS is issued, in one step. The check that the service can take a domain runs before you pay, never after.

### After you pay

The domain shows a timeline from payment to a live site, built from the domain, its DNS and its certificate, so it is always current:

|  |  |  |
| --- | --- | --- |
| payment | step | The charge cleared. |
| registration | step | The registry holds the name. New .ng names can take hours to publish; most others take minutes. |
| dns | step | The records point where they should. |
| connect, verify | step | Attached to a service and seen pointing at it. |
| https | step | The certificate is issued. |
| live | step | Serving your site over HTTPS. |

Steps are checked about every five minutes, and every minute for a name bought in the last few days. A failed step offers its fix: issue the certificate again, rewrite the DNS records, or contact support. A domain that is not attached to a service stops at registration.

If the registrar refuses a name after you paid, nothing was registered, the domain says so, and your payment is refunded. You can clear it from your list.

## Renewals

|  |  |  |
| --- | --- | --- |
| Auto renew | switch | Renews the domain once it is within 5 days of expiry, charging your saved card. It needs a saved card that can be charged automatically. |
| Reminders | notice | Sent 30 days, 7 days, 1 day before expiry. |
| Failed charges | rule | After 3 failed automatic charges in a row, automatic renewal stops trying. Renew by hand instead. |
| Renew by hand | action | Add 1 to 5 years at any time. The price, VAT and total are shown before you pay. |

A renewal is priced from what the registrar that holds your domain charges to renew it, not from the price of a new registration, which is often a promotion. That is why a renewal can cost more than the first year did.

A domain that is not renewed in time shows as expired.

## Transfers

### Moving a domain to Dbrij

Enter the domain to get a quote first. The quote says whether it can move here, the price, what its nameservers are today, and the steps:

1. At your current registrar, unlock the domain and ask for its authorization code. Some registrars call it an EPP code or a transfer key.
2. Check the domain was registered, or last moved, more than 60 days ago. Registries refuse a move inside that window.
3. Paste the code here and pay. The price adds a year to the registration, so no time already paid for is lost.
4. Approve the email your current registrar may send. The move usually finishes within five to seven days.

Your DNS stays where it is during the move. If your current registrar runs your DNS, switch the domain to Dbrij nameservers first: some registrars stop answering the moment a name leaves them.

A quote refuses, with the reason, a name inside a domain (transfer the whole domain), a name nobody has registered, a name already registered through Dbrij, a name another Dbrij account uses, and an ending that cannot move here yet.

### Where a transfer stands

|  |  |  |
| --- | --- | --- |
| awaiting_payment | state | Checkout started; nothing has been sent to the registry yet. |
| requested | state | Sent. The registry is waiting on your current registrar. |
| needs_code | state | The authorization code was refused. Send the right one from the domain; nothing is paid again. |
| locked | state | The domain is locked at your current registrar. Unlock it there and the move continues; nothing is paid again. |
| completed | state | The name is registered through Dbrij now. |
| failed | state | It did not go through. A refund is raised. |
| cancelled | state | Stopped before it finished. A refund is raised when money was taken. |

### Stopping a transfer

A transfer that has not been paid for is simply cancelled. One that is waiting, needs a code or is locked can be stopped while the registrar still allows it. Once the registry is actually moving the name it can no longer be stopped; it usually finishes within a week.

### Refunds need approval

Nothing pays a transfer refund automatically, and no clock ever stops a transfer on its own. The moment money is owed back, the refund is raised so it cannot be forgotten, and then a Dbrij super admin approves it. A refused refund carries the reason, word for word. A transfer that goes nowhere for a long time is reviewed by a person, never timed out.

WHERE A REFUND GOES

|  |  |  |
| --- | --- | --- |
| card | default | Back to the card that paid, reversing the charge. |
| wallet | your choice | Into the space's balance, where it lands at once and can be spent. You can change the choice while the refund is pending. |

### Moving a domain away

Leaving is free and has no conditions. Ask for the authorization code on the domain and paste it at the new registrar; domains are never locked. Where a registrar will not hand the code back over its API, the domain says the code comes by email to the registrant and when to expect it.

## Dbrij nameservers

Dbrij runs its own authoritative DNS. Point a domain at these nameservers once and every record is managed on Dbrij:

Nameserver 1`ns1.dbrij.com`

Nameserver 2`ns2.dbrij.com`

### Switching a domain registered elsewhere

1. Choose Dbrij nameservers on the domain. Dbrij copies the records it can find in the domain's public DNS into the new zone, including the names it already knows the domain uses (its hosted sites and email).
2. Check the copied records before you change anything. A record missing from the zone stops working the moment the nameservers change.
3. At your registrar, set the nameservers to the two above, in that order.
4. Dbrij watches for the switch and marks the domain delegated once the world asks Dbrij. You can also check now.

### Domains bought on Dbrij

A domain bought here starts on the registrar's DNS, which Dbrij writes for you. Where the registrar allows it, moving it to Dbrij nameservers needs no registrar visit: Dbrij copies every record first, then changes the nameservers itself. You can also point a domain bought here at another provider's nameservers: give at least two and at most 13, exactly as the provider lists them. Mixing Dbrij nameservers with another provider's is refused, because half your visitors would get different answers.

### Leaving Dbrij nameservers

Taking a domain off Dbrij nameservers is refused while the world still asks them for its records. Change the nameservers at the registrar first.

## DNS records

Who answers DNS for a domain decides whether Dbrij can write its records:

|  |  |  |
| --- | --- | --- |
| registrar | DNS host | Bought here, on the registrar's DNS. Dbrij writes the records for you. |
| dbrij | DNS host | On Dbrij nameservers. Dbrij hosts and writes the zone. |
| external | DNS host | Another provider's nameservers. You add records there yourself; Dbrij tells you which. |

### Record types

|  |  |  |
| --- | --- | --- |
| Registrar DNS | types | A, AAAA, CNAME, MX, TXT, URL, URL301, FRAME. URL, URL301 and FRAME are the registrar's redirect records. |
| Dbrij nameservers | types | A, AAAA, CNAME, MX, TXT, CAA, SRV. CAA (certificate policy) and SRV (calling and chat services) need Dbrij nameservers. |

A RECORD

|  |  |  |
| --- | --- | --- |
| name* | string | "@" for the domain itself, or a host such as "www", "*" or "_dmarc". |
| type* | string | One of the types the domain's DNS host takes. |
| value* | string | The address, target or text. |
| ttl | number | Seconds. New records default to 1800. |
| priority | number | MX only. |

### Records Dbrij manages

Records Dbrij created to point the domain at a Hosting service are marked as managed. Changing or deleting one breaks that attachment, so the editor keeps them locked until you unlock them on purpose. Saving the editor replaces the domain's whole record set with what you see.

## Domains bought elsewhere

Connect a domain you registered somewhere else to use it with Hosting and get HTTPS for it, without moving the registration. Connect an exact name: the domain itself (`example.com`) or a subdomain (`app.example.com`). Dbrij returns the one record to add at your DNS provider:

|  |  |  |
| --- | --- | --- |
| Root domain | A record | Host @, pointing at the addresses Dbrij shows. Also add a CNAME for www to the target shown, so www works too. |
| Subdomain | CNAME record | Host: the subdomain label, pointing at the service's address on dbrij.app. |

Verification and HTTPS follow on their own once the record is published. A root domain cannot hold a CNAME, which is why it takes an A record.

### Connecting before the app exists

Connect a domain with no service and it verifies against the Dbrij edge and holds a real certificate on a reserved page until you attach it. When you do, it is already green. Each Hosting plan caps how many domains can wait like this at once; attaching one frees its place.

### A name connected in another space

If the name is already connected in another Dbrij space or account, you prove you control its DNS instead: publish the TXT record Dbrij gives you at `_dbrij-claim.` followed by the name, then check. On a match the name moves to your space and connects.

Claim record

```
_dbrij-claim.example.com   TXT   <the value Dbrij shows>
```

### HTTPS on a domain with nothing attached

Any active domain can be secured with HTTPS before it is attached to anything: it points at the Dbrij edge, where a reserved page answers over real HTTPS. A domain registered elsewhere needs one record added first. Pointing the domain's site somewhere else in its DNS switches the reserved page off.

|  |  |  |
| --- | --- | --- |
| off | state | Not asked for. |
| pending_dns | state | Asked for, but the domain does not reach Dbrij yet. |
| issuing | state | The certificate is being issued. |
| active | state | HTTPS works. |
| failed | state | Needs a person, with the reason. |

## Domains on Hosting

### Attach a domain to a service

Attach an active domain to a Hosting web service and Dbrij points the domain itself and `www` at the service by default (you can choose just one), then issues HTTPS. Existing records such as MX and TXT are kept. Moving a domain to another service releases it from the old one first, since a domain serves one service at a time.

A domain points only at services in its own space. A service takes up to 3 domains; the www companion of a root domain is free. These limits are checked before any DNS is touched.

### Subdomains

Point `app.example.com`, `api.example.com` or a deeper name such as `api.staging.example.com` at any service, on a domain bought here or connected. Give the label (`app`, `api.staging`, or `@` for the domain itself) and the service. When Dbrij runs the DNS it writes the CNAME; otherwise it returns the record to add. HTTPS follows automatically.

A subdomain at your own DNS provider

```
app.example.com   CNAME   <service>.dbrij.app
```

### From the Hosting side

A domain can also be added from a service's Domains tab in Hosting, which shows the same records, the verification state and HTTPS. See Custom domains in the [Hosting docs](https://dbrij.com/products/hosting/docs).

## Email on a domain

A company can run its email on its domain. Set it up from the domain: you choose the company the mailboxes belong to, and you must be able to manage that company's email. A company's domain carries that company's email, never another space's.

|  |  |  |
| --- | --- | --- |
| Bought here | one step | Dbrij writes the MX, SPF and DKIM records into the domain's DNS and starts verification at once. |
| Connected | by hand | The email domain lists the records; you add them at your DNS provider and it verifies once they are published. |

When the records Dbrij issues for email change later, a domain bought here gets the new set written again automatically. How many email domains a company can carry follows its Hosting plan.

## Spaces and access

A domain's owner can change it, and so can a member who manages Hosting in its company. Every other member of the company sees it read only: status, DNS and setup, but no buying, attaching, deleting or record changes.

### Moving a personal domain into a company

- Move your own personal domain into a company where you are the owner or manage Hosting. A domain serving a personal site has to be detached first.
- A company owner or admin can ask a member to move a personal domain in. The member accepts or declines the request.

Buying from a Hosting service's page puts the domain in that service's space.

## Public endpoints and AI tools

Two endpoints need no account. Every response is wrapped in an envelope: read your payload from `data`.

Base URL`https://api.dbrij.com/api/v1`

### Search availability

POST /domains/search

```
curl -X POST https://api.dbrij.com/api/v1/domains/search \
  -H "Content-Type: application/json" \
  -d '{ "query": "acme", "scope": "global" }'
```

BODY

|  |  |  |
| --- | --- | --- |
| query* | string | A name or a full domain, up to 253 characters. |
| scope | "global" \| "ng" | Which catalogue. Defaults to global. |

Response

```
{
  "success": true,
  "data": [
    {
      "domain": "acme.com.ng",
      "available": true,
      "premium": false,
      "priceNgnMinor": …,
      "registrable": true,
      "unsellableReason": null,
      "publish": { "phrase": "…", "note": "…", "measured": true }
    }
  ]
}
```

RESULT FIELDS

|  |  |  |
| --- | --- | --- |
| available | boolean | Nobody holds the name. |
| premium | boolean | Priced by the registry above the usual price. |
| priceNgnMinor | number | The price to you for one year, in kobo. |
| registrable | boolean | False when the ending cannot be registered here. |
| unsellableReason | string \| null | Why it cannot be bought here, when it cannot. |
| publish | object \| null | How long the registry usually takes to publish a new name of this ending. |

### What is on sale

GET /domains/catalogue

```
curl https://api.dbrij.com/api/v1/domains/catalogue

{ "success": true, "data": { "global": true, "ng": true, "ngTlds": ["ng", "com.ng", "org.ng", "net.ng", "i.ng", "name.ng", "sch.ng", "mobi.ng"], "transferIn": true, "dbrijDns": true } }
```

Each flag says whether that part of the product is available right now: the worldwide catalogue, the .ng catalogue, transfers in, and Dbrij nameservers.

### AI assistants

An AI assistant connected over MCP (at `mcp.dbrij.com`, or locally with `npx -y dbrij mcp`) can read your domains and their DNS and add records, acting as you. It can never buy or remove a domain by itself: it files a request, you approve it on Dbrij, never in chat, and a request you do not decide expires after 15 minutes.

|  |  |  |
| --- | --- | --- |
| check_domain | read | Whether a name is available to buy on Dbrij, and its yearly price. |
| list_my_domains | read | Domains in a space, with status, DNS host, attached service, HTTPS and expiry. |
| list_dns_records | read | The records of a domain whose DNS Dbrij manages. Records marked as managed by Dbrij are left alone. |
| add_dns_record | change | Add one record (A, AAAA, CNAME, MX, TXT, CAA, SRV; ttl 60 to 86,400 seconds). Existing records are kept; duplicates and CNAME clashes are refused. Changing or removing a record stays with you. |
| add_domain | change | Attach a domain you own to a Hosting web service and return the DNS record to create. |
| verify_domain | change | Check a domain's DNS now. |
| list_domains | read | A Hosting service's domains, whether DNS and HTTPS work, and the record still needed. |
| request_domain_purchase | request | Ask to register an available name, optionally pointed at a web service. You approve the price on Dbrij. |
| request_domain_removal | request | Ask to detach a custom domain from a service. You approve by typing the domain. |
