Xenius Api Documentation for public Use
This documentation aims to provide all the information you need to work with our API.
Below is a list of possible HTTP status codes that may be returned by the API:
| Code | Description |
|---|---|
| 200 | OK |
| 201 | Created |
| 202 | Accepted |
| 204 | No Content |
| 301 | Moved Permanently |
| 302 | Found |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 405 | Method Not Allowed |
| 406 | Not Acceptable |
| 413 | Content Too Large |
| 415 | Unsupported Media Type |
| 422 | Unprocessable Content |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
| 501 | Not Implemented |
| 502 | Bad Gateway |
| 503 | Service Unavailable |
| 511 | Network Authentication Required |
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token contacting support.
curl --request GET \
--get "https://staging.api.xenius.io/v2/verify-token" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json" cache-control
: no-cache, private
content-type
: application/json
{
"message": "Unauthenticated."
}
curl --request POST \
"https://staging.api.xenius.io/v2/carts/store-admind" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"domain_name\": \"xenius.be\",
\"order_number\": \"OR1234\",
\"contact_id\": 1,
\"contact\": {
\"first_name\": \"Anouk\",
\"last_name\": \"Leroy\",
\"email\": \"gilles.degroote@example.org\",
\"address\": \"Lauwerslaan 39\",
\"postalcode\": \"5537\",
\"town\": \"Péruwelz\",
\"country\": \"PW\",
\"phone\": \"+32.123457789\",
\"company\": \"Aerts EBVBA\",
\"vat\": \"BE1234567\",
\"lang\": \"NL\",
\"gender\": \"V\"
}
}"
[
{
"message": "Cart stored successfully",
"data": {
"order_id": 1,
"contact_id": 1
}
}
]
Returns a list of domain names of the client.
curl --request GET \
--get "https://staging.api.xenius.io/v2/domain-names" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"id": null,
"status": "active",
"domain_name": "collin.net",
"expirationdate": "2024-12-30",
"days_until_expiration": 0,
"is_locked": false,
"auto_renew": false,
"external_id": "(test)184",
"nameservers": {
"ns1": {
"name": "ns3.hostedby.eu",
"ipv4": "185.27.175.217",
"ipv6": "2a00:f10:121:400:4c7:54ff:fe00:525"
},
"ns2": {
"name": "ns4.hostedby.eu",
"ipv4": "185.59.16.34",
"ipv6": null
},
"ns3": {
"name": "ns2.hostedby.be",
"ipv4": "151.80.147.144",
"ipv6": null
}
}
}
Returns a domain name of the client.
id of the domain name
curl --request GET \
--get "https://staging.api.xenius.io/v2/domain-names/id/10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"id": null,
"status": "active",
"domain_name": "borremans.org",
"expirationdate": "2024-12-30",
"days_until_expiration": 0,
"is_locked": false,
"auto_renew": false,
"external_id": "(test)8634",
"nameservers": {
"ns1": {
"name": "ns3.hostedby.eu",
"ipv4": "185.27.175.217",
"ipv6": "2a00:f10:121:400:4c7:54ff:fe00:525"
},
"ns2": {
"name": "ns4.hostedby.eu",
"ipv4": "185.59.16.34",
"ipv6": null
},
"ns3": {
"name": "ns2.hostedby.be",
"ipv4": "151.80.147.144",
"ipv6": null
}
}
}
Returns a domain name of the client.
external_id of the domain name
Required if an admin uses this endpoint. The client ID of the domain the external_id belongs to.
curl --request GET \
--get "https://staging.api.xenius.io/v2/domain-names/external-id/test_123?client_id=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"id": null,
"status": "active",
"domain_name": "borremans.org",
"expirationdate": "2024-12-30",
"days_until_expiration": 0,
"is_locked": false,
"auto_renew": false,
"external_id": "(test)4757",
"nameservers": {
"ns1": {
"name": "ns3.hostedby.eu",
"ipv4": "185.27.175.217",
"ipv6": "2a00:f10:121:400:4c7:54ff:fe00:525"
},
"ns2": {
"name": "ns4.hostedby.eu",
"ipv4": "185.59.16.34",
"ipv6": null
},
"ns3": {
"name": "ns2.hostedby.be",
"ipv4": "151.80.147.144",
"ipv6": null
}
}
}
curl --request PATCH \
"https://staging.api.xenius.io/v2/domain-names/{id}" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"external_id\": \"domain_10\"
}"
{
"id": null,
"status": "active",
"domain_name": "vanacker.net",
"expirationdate": "2024-12-30",
"days_until_expiration": 0,
"is_locked": false,
"auto_renew": false,
"external_id": "(test)8293",
"nameservers": {
"ns1": {
"name": "ns3.hostedby.eu",
"ipv4": "185.27.175.217",
"ipv6": "2a00:f10:121:400:4c7:54ff:fe00:525"
},
"ns2": {
"name": "ns4.hostedby.eu",
"ipv4": "185.59.16.34",
"ipv6": null
},
"ns3": {
"name": "ns2.hostedby.be",
"ipv4": "151.80.147.144",
"ipv6": null
}
}
}
Returns a list of the Tld prices of the client.
curl --request GET \
--get "https://staging.api.xenius.io/v2/tlds" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" [
{
"tld": ".com",
"price_excl": "14.95",
"price_promo": "12.50"
}
]
curl --request GET \
--get "https://staging.api.xenius.io/up" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Xenius API</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,600&display=swap" rel="stylesheet" />
<!-- Styles -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Figtree', 'ui-sans-serif', 'system-ui', 'sans-serif', "Apple Color Emoji", "Segoe UI Emoji"],
}
}
}
}
</script>
</head>
<body class="antialiased">
<div class="relative flex justify-center items-center min-h-screen bg-gray-100 selection:bg-red-500 selection:text-white">
<div class="w-full sm:w-3/4 xl:w-1/2 mx-auto p-6">
<div class="px-6 py-4 bg-white from-gray-700/50 via-transparent rounded-lg shadow-2xl shadow-gray-500/20 flex items-center focus:outline focus:outline-2 focus:outline-red-500">
<div class="relative flex h-3 w-3 group ">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 group-[.status-down]:bg-red-600 opacity-75"></span>
<span class="relative inline-flex rounded-full h-3 w-3 bg-green-400 group-[.status-down]:bg-red-600"></span>
</div>
<div class="ml-6">
<h2 class="text-xl font-semibold text-gray-900">Application up</h2>
<p class="mt-2 text-gray-500 dark:text-gray-400 text-sm leading-relaxed">
HTTP request received.
Response rendered in 489ms.
</p>
</div>
</div>
</div>
</div>
</body>
</html>
Get All invoices with the option to filter by payment status
curl --request POST \
"https://staging.api.xenius.io/v2/invoices" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"invoice_number\": \"VF202200734\",
\"is_paid\": false
}"
{
"data": {
"success": true,
"data": [
{
"invoice number": "(test) VF202523488",
"invoice date": "10-01-2026",
"due date": "10-01-2026",
"paid_at": null,
"total": 0,
"open": 0,
"is_paid": false,
"payment link": "https://www.factuursturen.be/pay?id=53cc2c10-f1d5-373a-929d-18b8108463e9"
},
{
"invoice number": "(test) VF202506721",
"invoice date": "25-03-2026",
"due date": "25-03-2026",
"paid_at": "11-03-2025",
"total": 0,
"open": 7682.27,
"is_paid": false,
"payment link": "https://www.factuursturen.be/pay?id=dd3afc25-3b49-34c8-9e3f-7edeebdc67a6"
}
],
"meta": {
"count": 2
}
},
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "pagination.previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "pagination.next",
"active": false
}
],
"path": "/",
"per_page": 10,
"to": 2,
"total": 2
}
}
curl --request PATCH \
"https://staging.api.xenius.io/v2/invoices/toggle-autorenew" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"external_ids\": [
\"1\",
\"2\",
3,
4
],
\"autorenew\": false
}"
cache-control
: no-cache, private
content-type
: application/json
{
"message": "Unauthenticated."
}
curl --request GET \
--get "https://staging.api.xenius.io/v2/office-365/{tenant?}" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" cache-control
: no-cache, private
content-type
: application/json
{
"message": "Unauthenticated."
}
curl --request GET \
--get "https://staging.api.xenius.io/v2/hostings/pricing" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"success": true,
"data": [
{
"name": "Cosmos magento",
"is_promo": true,
"price_monthly": 32.55,
"type": "magento-hosting",
"aanrader": false
}
],
"meta": {
"count": 1
}
}
Returns a list of domain names of the client.
curl --request GET \
--get "https://staging.api.xenius.io/v2/hostings" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"success": true,
"data": [
{
"client_id": 3359,
"accountname": "(test) El Amrani VZW",
"domain": "michel.be",
"creation_date": "2024-11-23 02:02:46",
"expiration_date": "2024-11-22T23:00:00.000000Z",
"product_package_id": 2,
"package_id": 262,
"server": 6,
"status": "ACTIVE",
"disk_used": 276,
"owner": "root",
"external_id": "(test)1282"
}
],
"meta": {
"count": 1
}
}
return a list of shared-hostings of the client
id of the shared-hosting
curl --request GET \
--get "https://staging.api.xenius.io/v2/hostings/id/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"client_id": 1051,
"accountname": "(test) El Amrani VZW",
"domain": "michel.be",
"creation_date": "2024-11-23 02:02:46",
"expiration_date": "2024-11-22T23:00:00.000000Z",
"product_package_id": 5,
"package_id": 262,
"server": 6,
"status": "ACTIVE",
"disk_used": 276,
"owner": "root",
"external_id": "(test)2019"
}
Returns a shared-hosting of the client.
external_id of the shared-hosting
curl --request GET \
--get "https://staging.api.xenius.io/v2/hostings/external-id/10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" {
"client_id": 1824,
"accountname": "(test) El Amrani VZW",
"domain": "michel.be",
"creation_date": "2024-11-23 02:02:46",
"expiration_date": "2024-11-22T23:00:00.000000Z",
"product_package_id": 11,
"package_id": 262,
"server": 6,
"status": "ACTIVE",
"disk_used": 276,
"owner": "root",
"external_id": "(test)774"
}
Returns a shared-hosting of the client.
curl --request PATCH \
"https://staging.api.xenius.io/v2/hostings" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"external_id\": \"domain_10\"
}"
{
"client_id": 2157,
"accountname": "(test) Van Damme",
"domain": "delhaye.org",
"creation_date": "2024-10-21 00:11:22",
"expiration_date": "2024-10-20T22:00:00.000000Z",
"product_package_id": 5,
"package_id": 262,
"server": 6,
"status": "ACTIVE",
"disk_used": 190,
"owner": "root",
"external_id": "(test)5902"
}