Application Programming Interface

At Oxide Hosting, we support our customer's development projects by making some of our internal data available publicly. This enables you to make use of our platform data for your own projects as per your requirements. Most data currently provided does not require any form of pre-authentication meaning any sensitive data is not currently available via this.

General Endpoints.

Below you can find all the endpoints available from various systems within our company.

Allows you to list all available products with their respective identifiers, stock and basic descriptions.

Parameters

Name Type Value Description Required
id GET Integer This specifies for an individual product to be returned. No

cURL Example

curl -k -L "https://api.oxide.host/v1/products"
curl -k -L "https://api.oxide.host/v1/products?id=8"

{"status":200,"response":{"VPS Classic XS":{"id":8,"link":"https:\/\/billing.oxide.host\/cart.php?a=add&pid=8","description":"Features included are listed below.\r\n\r\n1x vCore (3.70\/5.00GHz Turboboost),\r\n2048MB DDR4 ECC Ram,\r\n16GB Storage (Boosted NVMe),\r\n500mbp\/s download, 200mbp\/s upload Port Speed (Upgradeable),\r\nUnmetered Bandwidth,\r\nAnti-DDoS Protection,\r\n1x IPv4, 1x IPv6 (\/80),\r\nOne-Click Installers,\r\nBoosted Automated Backups,\r\nService Monitoring,\r\nMultiple Locations,\r\nVirtualized by KVM.","recurring":true,"control_panel":"virtualizor","in_stock":true,"pricing":{"monthly":{"GBP":"3.59","EUR":"4.48","USD":"4.50"},"quarterly":{"GBP":"9.69","EUR":"12.09","USD":"12.16"}}}}}

Allows you to list all available exchange rates that we accept along with our current conversion rates.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -k -L "https://api.oxide.host/v1/exchange-rates"

{"status":"200","response":{"GBP":{"rate":"1.00000","id":"1"},"USD":{"rate":"1.25471","id":"2"},"EUR":{"rate":"1.24796","id":"3"}}}

System Status.

Below you can find all the endpoints available for our monitoring systems and the data available via such.

Allows you to list all available host systems which can be used within a query.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -k -L "https://status.oxide.systems/api/hostsystems"

{"status":200,"response":[{"name":"CORE-DE","purpose":"Core Infrastructure","location":"Limburg, Germany"},{"name":"CORE-GB","purpose":"Core Infrastructure","location":"London, United Kingdom"},{"name":"DBH-CA","purpose":"Discord Bot Hosting","location":"Montreal, Canada"}

Allows you to call the current status of a particular host system and information regarding such.

Parameters

Name Type Value Description Required
name GET String This specifies which hostsystem you would like to call the information for. Yes

cURL Example

curl -k -L "https://status.oxide.systems/api/hostsystems/status?name=VPS-FR01"

{"status":200,"response":{"name":"VPS-FR01","purpose":"Classic Virtual Servers","response":"Gravelines, France","status":"Online"}}

Allows you to call the current status of all our hostsystems at once including overall percentage offline.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -k -L "https://status.oxide.systems/api/hostsystems/general"

{"response":{"hostsystems":{"VPS-CA01":{"name":"VPS-CA01","purpose":"Classic Virtual Servers","location":"Montreal, Canada","datacenter":"BHS","status":"online","historyAvailable":false},"VPS-CA02":{"name":"VPS-CA02","purpose":"Classic Virtual Servers","location":"Montreal, Canada","datacenter":"BHS","status":"online","historyAvailable":false},"VPS-CA03":{"name":"VPS-CA03","purpose":"Classic Virtual Servers","location":"Montreal, Canada","datacenter":"BHS","status":"online","historyAvailable":false},"general":{"offlineServers":0,"offlineServersPercentage":"0%","taskStatus":"None"}}}

Allows you to call the current status of a particular Virtual Server and information regarding such.

Parameters

Name Type Value Description Required
ip GET String This specifies which Virtual Server you would like to call the information for. Yes

cURL Example

curl -k -L "https://status.oxide.systems/api/vps/status?ip=51.38.201.104"

{"status":200,"response":{"address":{"ipv4":"51.38.201.104","ipv4_subnet":"51.38.201.104\/29","ipv4_reverse":null},"status":{"current":"Online","last_updated":"No data currently available"},"hostsystem":{"name":"VPS-FR02","hostsystem":"vps.fr02.oxide.systems"},"monitoring":{"enabled":true,"batch":"DE12"},"brand":"Oxide Hosting"}}

Nexus Control Panel.

Below you can find all the endpoints available for our dedicated server control panel (Nexus).

Allows you to create a session and generate a token to begin managing your services.

Parameters

Name Type Value Description Required
email POST String This specifies the email address of the account you are accessing. Yes
password POST String This specifies the password of the account you are accessing. Yes

cURL Example

curl -k -X POST -d "[email protected]&password=Password123" -L "https://nexus.oxide.host/v1/auth/login"

{"status": 200,"token": "2c736aff4f41560cbb9a0f1ba5146f328be5e1136877eb3e4dedfaf712017aa5355c77ce5e37f92d84889284eec585420eab81f19388cdfeb83cfe24a54fba28"}

Allows you to initiate or execute a password reset of an account.

Parameters

Name Type Value Description Required
token POST String This specifies the provided token to execute and apply the password. When executing.
email POST String This specifies the account you wish to create a password reset for. When initiating.
password POST String This specifies the password you wish to apply to the account. When initiating.
verify_password POST String This verifies the password specified to ensure accuracy. When initiating.

cURL Example

curl -k -X POST -d "[email protected]&password=Password123&verify_password=Password123" -L "https://nexus.oxide.host/v1/auth/reset"

{
    "status": 200,
    "response": "An email containing the confirmation has been sent.",
    "dev_response": "Please confirm the password change via an email sent out."
}

Allows you to terminate your active session (logout).

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/auth/logout' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": "Thank you for using the Nexus Control Panel. Goodbye."
}

Allows you to verify a generated token and return the relevant user identifier.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/auth/token/verify' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"session": {"user": "ns164304","expiry": "1662755920","api_token": false}}

Security Notice: This endpoint cannot be accessed via an API token created within this control panel, a unique login token must be used.
Allows you to create a session and generate a token for API purposes to begin managing your services.

Parameters

Name Type Value Description Required
expiry POST String This specifies the expiry time (UNIX timestamp); or 'unlimited'. Yes
description POST String This specifies the description of the token created. Yes

cURL Example

curl -X POST -d "expiry=unlimited&description=API" -L 'https://nexus.oxide.host/v1/auth/token/create' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"token": "a530d8af0c6700f5ea6335563cca2ce40b4690b3d684322ddaacea498a81af18898d6d4b59e588a756e31ab5530a1","identifier": "na360019","user": "ns164304"}

Allows you to list all tokens created/linked to your account.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/auth/token/list' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"0": {"identifier": "na360019","description": "Oxide Hosting API","expiry": "Unlimited"}}

Security Notice: This endpoint cannot be accessed via an API token created within this control panel, a unique login token must be used.
Allows you to delete an already existing API token without justification.

Parameters

Name Type Value Description Required
id POST String This specifies the already existing token you wish to delete. Yes

cURL Example

curl -X POST -d "id=na360019" -L 'https://nexus.oxide.host/v1/auth/token/delete' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"response": "The requested token has been deleted.","dev_response": "The requested token (na360019) has been deleted."}

Allows you to update information about your account.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/profile/display' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"profile": {"email": "[email protected]","billing_id": "2246"}}

Security Notice: This endpoint cannot be accessed via an API token created within this control panel, a unique login token must be used.
Allows you to create a session and generate a token for API purposes to begin managing your services.

Parameters

Name Type Value Description Required
type POST String This specifies the type of change (email/password). Yes
password POST String This specifies the desired account password. No
auth POST String This specifies the authentication code provided. No

cURL Example

curl -X POST -d "type=email" -L 'https://nexus.oxide.host/v1/profile/update' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"response": "Please confirm you wish to sync your email address ([email protected]).","dev_response": "Please post 'confirm' with the key 'auth' to proceed with the request to sync your email address ([email protected]).",}

curl -X POST -d "type=email&auth=confirm" -L 'https://nexus.oxide.host/v1/profile/update' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"response": "We've synced your email address ([email protected]) to this account.","dev_response": "We've amended this account's email address using your billing account's ([email protected]).",}

curl -X POST -d "type=password&password=Password123" -L 'https://nexus.oxide.host/v1/profile/update' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{"status": 200,"response": "An email containing the confirmation has been sent.","dev_response": "Please confirm the password change via an email sent out.",}

Allows you to fetch the list of services you can access.

Parameters

Name Type Value Description Required
No parameters required.

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/dedicated/list' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": {
        "servers": [
            {
                "domain": "dedi181614.oxide.network",
                "friendly_name": "dedi181614.oxide.network",
                "location": "Montreal, Canada",
                "flag": "https://status.oxide.systems/assets/img/flag-canada.png",
                "expiry": "Friday, 6th May 2022",
                "status": "Active",
                "cycle": "Monthly",
                "product": "OXI-BASC2"
            }
        ]
    }
}

Allows you to fetch the details of a particular server.

Parameters

Name Type Value Description Required
server GET String This specifies the server you wish to view. Yes

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/dedicated/overview?server=dedi181614.oxide.network' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": {
        "domain": "dedi181614.oxide.network",
        "friendly_name": "dedi181614.oxide.network",
        "overview": {
            "product": "OXI-BASC2",
            "product_range": "Basic",
            "location": "Montreal, Canada",
            "ipv4": "158.69.246.27",
            "ipv6": "2607:5300:120:61b:0:0:0:1/128",
            "expiry": "Friday, 6th May 2022",
            "status": "Active",
            "cycle": "Monthly"
        },
        "hardware": {
            "processor": "Intel Xeon E3-1245v2",
            "memory": "32GB DDR3",
            "disks": "2 x 480GB",
            "disks_type": "SSD",
            "motherboard": "DH67BL"
        },
        "datacenter": {
            "ipv4": {
                "address": "158.69.246.27",
                "gateway": "158.69.246.254"
            },
            "ipv6": {
                "address": "2607:5300:120:61b:0:0:0:1/128",
                "gateway": "2607:5300:120:6FF:FF:FF:FF:FF"
            },
            "building": "BHS5",
            "rack": "T05E15",
            "server": 230643,
            "switch": "cisco.158.69.246.245",
            "reverse": "dedi160165.oxide.network.",
            "downlink": 1000,
            "uplink": 100
        },
        "settings": {
            "os": "Debian 11 (Bullseye)",
            "boot": "Boot from Network (Rescue)",
            "monitoring": false,
            "ipmi": false
        },
        "contacts": {
            "billing": "ba940",
            "administrator": "ns164304"
        },
        "reinstalling": false
    }
}

Allows you to restart (cold reset) a particular server.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to restart. Yes

cURL Example

curl -X POST -d "server=dedi181614.oxide.network" 'https://nexus.oxide.host/v1/dedicated/restart' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
	"status":200,
	"response":"We've requested the restart of the server (dedi181614.oxide.network).",
	"dev_response":"We've requested the restart of the server (dedi181614.oxide.network)."
}

Allows you to change the boot device of a particular server, this automatically triggers a restart.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to amend. Yes
boot POST String This specifies the boot preference (disk/rescue). Yes

cURL Example

curl -X POST -d "server=dedi181614.oxide.network&boot=rescue" 'https://nexus.oxide.host/v1/dedicated/netboot' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": "We've updated the boot device of the server (dedi181614.oxide.network) and requested a restart.",
    "dev_response": "We've updated the boot device of the server (dedi181614.oxide.network) and requested a restart."
}

Allows you to launch an IPMI session for a particular server where enabled, this endpoint does take time to respond.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to access. Yes
type POST String This specifies the type of IPMI client (web/java). Yes
ip POST String This specifies the whitelisted IPv4 address. Yes

cURL Example

curl -X POST -d "server=dedi181614.oxide.network&type=web&ip=1.1.1.1" 'https://nexus.oxide.host/v1/dedicated/ipmi' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": "https://proxy.oxide.host"
}

Allows you to fetch the details of all addresses linked to a particular server.

Parameters

Name Type Value Description Required
server GET String This specifies the server you wish to view. Yes

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/dedicated/ips?server=dedi181614.oxide.network' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": {
        "primary": {
            "ipv4": {
                "address": "51.75.146.54",
                "gateway": "51.75.146.254",
                "reverse": "oxide.systems."
            },
            "ipv6": {
                "address": "2001:41d0:700:1f36:0:0:0:0/64",
                "gateway": "2001:41D0:700:1FFF:FF:FF:FF:FF"
            }
        },
        "additional": [
            {
                "subnet": "51.89.45.88/29",
                "gateway": "51.75.146.254",
                "ips": [
                    {
                        "address": "51.89.45.88",
                        "vmac": "02:00:00:bd:39:8a",
                        "reverse": "oxide.systems"
                    },
                    {
                        "address": "51.89.45.89",
                        "vmac": "02:00:00:90:a3:85",
                        "reverse": null
                    },
                    {
                        "address": "51.89.45.90",
                        "vmac": "02:00:00:25:68:62",
                        "reverse": null
                    },
                    {
                        "address": "51.89.45.91",
                        "vmac": "02:00:00:c2:14:16",
                        "reverse": null
                    },
                    {
                        "address": "51.89.45.92",
                        "vmac": "02:00:00:d3:06:b0",
                        "reverse": null
                    },
                    {
                        "address": "51.89.45.93",
                        "vmac": "02:00:00:63:cd:40",
                        "reverse": null
                    },
                    {
                        "address": "51.89.45.94",
                        "vmac": "02:00:00:c7:9a:88",
                        "reverse": null
                    },
                    {
                        "address": "51.89.45.95",
                        "vmac": "02:00:00:81:1f:54",
                        "reverse": null
                    }
                ]
            }
        ],
        "billing": {
            "additional": {
                "current": {
                    "quantity": 8,
                    "monthly": "16.00",
                    "quarterly": "48.00"
                },
                "orderable": {
                    "per_address": "2.00",
                    "quantity": 112,
                    "sizes": [
                        1,
                        4,
                        8,
                        16
                    ]
                }
            }
        }
    }
}

Allows you to update the reverse DNS and Virtual MAC Address of an IPv4 address.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to access. Yes
ip POST String This specifies the IPv4 address you wish to amend. Yes
type POST String This specifies the type of change (reverse/mac). Yes
content POST String This specifies the reverse DNS or vMAC type ('delete' to remove, 'normal' or 'vmware' for MAC address type). Yes

cURL Example

curl --location --request POST 'https://nexus.oxide.host/v1/dedicated/ips/update' \
--header 'Authorization: Bearer {TOKEN}' \
--form 'server="dedi181614.oxide.network"' \
--form 'ip="51.89.45.88"' \
--form 'type="reverse"' \
--form 'content="ip88.ip-51-89-45.eu"'

{
    "status": 200,
    "response": "The requested reverse DNS (ip88.ip-51-89-45.eu) has been applied to the IPv4 address: 51.89.45.88."
}

curl --location --request POST 'https://nexus.oxide.host/v1/dedicated/ips/update' \
--header 'Authorization: Bearer {TOKEN}' \
--form 'server="dedi181614.oxide.network"' \
--form 'ip="51.89.45.95"' \
--form 'type="mac"' \
--form 'content="delete"'

{
    "status": 200,
    "response": "The MAC address (02:00:00:fb:ae:9a) of the IPv4 address: 51.89.45.95 has now been deleted (removed)."
}

Allows you to update the friendly name of your server.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to update. Yes
name POST String This specifies the friendly name you wish to apply. Yes

cURL Example

curl -X POST -d "server=dedi181614.oxide.network&name=oxide.network" 'https://nexus.oxide.host/v1/dedicated/name' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": "The friendly name of the server has been updated."
}

Allows you to change whether monitoring of a particular server is enabled or not.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to amend. Yes
action POST String This specifies the action to carry out (enable/disable). Yes

cURL Example

curl -X POST -d "server=dedi181614.oxide.network&action=disable" 'https://nexus.oxide.host/v1/dedicated/monitoring' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": "We've updated the monitoring of the server (dedi181614.oxide.network) to disabled, this will apply immediately.",
    "dev_response": "We've updated the monitoring of the server (dedi181614.oxide.network) to disabled, this will apply immediately."
}

Allows you to reinstall a new operating system to a particular server.

Parameters

Name Type Value Description Required
server POST String This specifies the server you wish to reinstall. Yes
os POST String This specifies the operating system you wish to use. Yes
hostname POST String This specifies the hostname you wish to use. No

cURL Example

curl -X POST -d "server=dedi181614.oxide.network&os=alma8_64&hostname=docker" 'https://nexus.oxide.host/v1/dedicated/reinstall' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": "We've requested the reinstall of the server (dedi181614.oxide.network), with the operating system: debian11_64.",
    "dev_response": "We've requested the reinstall of the server (dedi181614.oxide.network), with the operating system: debian11_64 (hostname: docker)."
}

Allows you to fetch the templates available for a particular server.

Parameters

Name Type Value Description Required
server GET String This specifies the server you wish to view. Yes

cURL Example

curl -X GET 'https://nexus.oxide.host/v1/dedicated/reinstall/templates?server=dedi181614.oxide.network' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": [
        {
            "internal_id": "alma8_64",
            "friendly_name": "AlmaLinux 8",
            "category": "management",
            "maintainer": "https://almalinux.org/"
        },
    ]
}

Allows you to request a replacement of defective components for a particular server.

Parameters

Name Type Value Description Required
server POST String This specifies the defective server impacted. Yes
part POST String This specifies the component requiring replacement (disk/memory/network). Yes
comments POST String This allows you to specify the tests carried out to display the fault. Yes

cURL Example

curl -X POST -d "server=dedi181614.oxide.network&part=disk&comments=Disk is faulty" 'https://nexus.oxide.host/v1/dedicated/replace/components' -H 'Content-Type: application/json' -H 'Authorization: Bearer {TOKEN}'

{
    "status": 200,
    "response": {
        "ticket": "BA589622",
        "url": "https://billing.oxide.host/viewticket.php?tid=BA589622&c=kwkqqVsb"
    }
}

All that display this symbol require authorization bearer tokens.