DNS

This serves as a few required api endpoints for the dns, it may have more.

Endpoints

Resolve

GET /resolve/<domain>/<tld>
An array with records.

[
  { "type": "WEB", "name": "website.tld", "value": "target" },
  ...
]

Domains

GET /domains An array containing domains, the dns may include more values.
Optionally this can include limit and page query params for pagination and query query param for search.

[
  {
    "domain": "website.tld",
    "records": [
      ...
    ]
  },
  ...
]

TLDs

GET /tlds

{
  "valid": [
    "tld",
    ...
  ],
  "available": [
    "tld",
    ...
  ],
  "info": {
    "tld": {}
  }
}

Valid: All TLDs that exist
Available: All TLDs the current user can register Info: Optional info about TLDs, the inner object can contain any data per dns

Schemas

Record

{
  "type": "WEB|RED|TXT",
  "name": "url",
  "value": "target|value"
}

Type: All uppercase 3 letter type

  • WEB/RED: Cannot have multiple records that share a name
  • TXT: Can have as many repeats as necessary
    Name: The pointer in website
    This is a full buss URL without buss://
    @ is a shorthand for the top domain but must not appear in the final name.
  • WEB website.tld https://... Will set the top domain location
  • WEB sub.website.tld https://... Will set the location of a subdomain
    Value:
    This is based on the type
  • WEB: Value must be a https URL or IP (can’t be github.com), this points the location of the website
  • RED: Value must be a buss website (no buss:// just website.tld), this redirects you to another buss website (can be 3rd party)
  • TXT: Any text value

Record short syntax

<TYPE> <NAME> <VALUE>
A user should be able to use this syntax to add records quickly or mention them.

Domain

{
  "domain": "url",
  "records": [
    ...
  ]
}

Domain: Top domain (website.tld)
Records: Refer to the record schema