DataPacket GraphQL API

DataPacket API is built using GraphQL, a query language for fetching application data in a uniform way.

  • It is a powerful alternative to REST and other API standards.
  • The API is defined by a strongly typed GraphQL schema.

The schema is available for introspection at https://api.datapacket.com/v0/graphql. You can also use our GraphQL playground to familiarize yourself with the API.

To use the API, you must create your API token first. There are two types of tokens: read-only and full-access. Head to the Security page of the client panel, click the Add API key button, and name the new token. Make sure to also copy the token to a safe place, you won’t be able to see it again.

DataPacket’s GraphQL endpoint is:
https://api.datapacket.com/v0/graphql


API Endpoint
https://api.datapacket.com/v0/graphql
Headers
# Your API token generated in the client panel. Must be included in all API calls.
Authorization: Bearer your-api-key

Changelog

November 2025: Provisioning API added

New types and fields

  • Added provisioningConfigurations query to retrieve a list of server configurations that match your requirements.
  • Added provisionServer mutation to provision a new server with the selected configuration.
  • Added operatingSystems query to retrieve a list of available operating systems that can be installed on the provisioned servers.
  • Added type, scope and bandwidth fields to the TrafficPlan type.
  • Added cores and threads fields to the Cpu type.
  • Deprecated the count field in the Cpu, Ram and Hdd types; resource count is now derived from the length of their respective arrays.
  • Replaced the Os type and the os field in the System type with th new OperatingSystem type and operatingSystem field.
  • Replaced the SSD enum member of the StorageType enum with SATA_SSD.
  • Added the LocationIdentifier enum and the new identifier field to the Location type.
  • Added locations query to retrieve a list of all locations.
  • Replaced the deprecated hdds field in Hardware with the new storage field; the Hdd type is now deprecated.
  • Added the Region enum and applied it to the region field of the Location type.
  • Removed the instantDeliveryServer and instantDeliveryServers queries in favour of the new provisioningConfigurations query.

September 2025: Post-install scripts management

New types and fields

Introduced new types and fields, including the postInstallScripts query for listing scripts, plus mutations for managing them: createPostInstallScript to add a new one, updatePostInstallScript to edit, and deletePostInstallScript to remove.

June 2025: Traffic per server field

New types and fields

  • Added perServer field to the Traffic type in the traffic query to provide traffic statistics for each server.

New types and fields

  • Added configureServerLinks mutation to configure link aggregation on ports.
  • Added serverLinksConfigurationTask query to retrieve the current status of the link configuration task.
  • Added hasLinkAggregation field to the Server type to retrieve the current link aggregation status.

July 2024: servers query changes

Field changes

  • The status field has been deprecated and replaced with a new field called statusV2. The statusV2 field provides a more accurate representation of the server’s production status.

Input argument changes

  • The field changes are also reflected in the input arguments. The serverStatus_in filter has been deprecated, and it is recommended to use the new serverStatusV2_in filter for filtering based on the server’s status.

  • The tags_each input argument has been renamed to tag_value. The old tags_each argument name has been deprecated.

  • A new argument called tag_key has been introduced to filter based on tag keys.


How to use GraphQL

To get an introduction to GraphQL, you can use the official documentation, or learn with the How to GraphQL tutorials.

GraphQL requests can be sent via HTTP POST or HTTP GET requests. POST requests sent with the Content-Type header application/json must have a POST body in the following JSON format:

{
  "query": "...",
  "variables": { "myVariable": "someValue", ... }
}

GET requests must be sent in the following format. The query and variables are sent as URL-encoded query parameters in the URL.

https://api.datapacket.com/v0/graphql?query={...}&variables={...}

In either request method (POST or GET), only a query is required. variables is only required if the query contains GraphQL variables.

There are many GraphQL clients available for different platforms.

The easiest way to start is to use our GraphQL playground. Alternatively, you can use a simple HTTP client like cURL. For example, the following command will fetch your account information:

curl -X POST 'https://api.datapacket.com/v0/graphql' \
  -H 'Authorization: Bearer your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{"query":"query account { account { name email } }"}'

Queries and Mutations

There are two types of GraphQL requests: queries and mutations.

Queries are read-only and do not change the system's state. Only requested query fields are returned in the response. Fields ending with ! are non-nullable. If the field is not available, the query will fail. The response is a JSON object and the requested data is returned in the data field.

Mutations are used to change data and must be sent via POST request.

We recommend using our GraphQL playground to explore the queries and mutations provided by the DataPacket API.

Input variables

Use variables to pass arguments to a query or mutation. Define variables in the request body and reference them in the query or mutation. Fields suffixed with ! are required.

For example, the performServerPowerAction mutation requires the server and status fields. To turn the DP-12345 server on, you can use the following query:

curl -X POST 'https://api.datapacket.com/v0/graphql' \
  -H 'Authorization: Bearer your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
        "query":"mutation performServerPowerAction($input: PerformServerPowerActionInput!) { performServerPowerAction(input: $input) { server { name } } }",
        "variables": { "input": { "server": { "name": "DP-12345" }, "action": "ON" } }
      }'

The logical relation between input parameters for filtering is always AND. When specifying more than one value for a filter parameter ending with *_in, the values in the array have the OR relation.

For example, to get IPMI IP addresses of all your servers in London or Amsterdam with power status ON, you would call the following query:

 curl -X POST 'https://api.datapacket.com/v0/graphql' \
  -H 'Authorization: Bearer your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
       "query":"query servers($input: PaginatedServersInput) { servers(input: $input) { entriesTotalCount currentPageIndex entries { name network { ipmi { ip } } } } }",
       "variables": { "input": { "pageIndex": 0, "pageSize": 20, "filter": { "location_in": ["London", "Amsterdam"], "powerStatus_in": ["ON"] } } }
      }'

Error Handling

Queries and mutations can return errors. If an error occurs, the response will contain an errors field with a list of errors. Each error has a message field with a human-readable error message and a code field with an error code. List of error codes can be found in the Error section.

Errors typically return HTTP status code 200. Malformed requests will also return an errors field along with HTTP status code 400.

GraphQL errors are returned in the following format:

{
  "errors": [
    {
      "message": "Error message",
      "extensions": {
        "code": "ERROR_CODE"
      }
    }
  ]
}

Pagination

All results are paginated. You can specify the number of results per page and the page number using pageSize and pageIndex input variables. The maximum number of results per page is 50. The total number of results is returned in the entriesTotalCount field.


Server Provisioning

This section explains how to provision a new server using the DataPacket GraphQL API. The process involves filtering available configurations, selecting a suitable configuration, and then provisioning a server with your chosen options.

1. Fetch available configurations

Use the provisioningConfigurations query to retrieve a list of server configurations that match your requirements. You can filter configurations by region, CPU, memory, storage, GPU, price, and other parameters.

What is a configuration?

A configuration represents a specific, available server setup that matches a set of hardware and location criteria. Each configuration is a concrete offering that you can immediately provision as a server.

It is identified by a unique configurationId and includes information such as:

  • CPU(s): Model, number of cores, threads, and count.
  • Memory: Total RAM available.
  • Storage: Types (e.g., SATA_SSD, NVME, HDD) and sizes of storage devices.
  • GPU(s): Model and memory (if available).
  • Uplink: Network port capacities.
  • Pricing: Monthly and daily price, with currency.
  • Location: Data center name, region, and short code.
  • Stock count: Number of servers of this configuration currently available.

Example query:

query ProvisioningConfigurations($input: ProvisioningConfigurationsInput!) {
  provisioningConfigurations(input: $input) {
    configurationId
    cpus {
      name
      cores
    }
    memory
    storage {
      size
      type
    }
    gpus {
      name
      memory
    }
    uplink {
      ports {
        capacity
      }
    }
    monthlyHwPrice  {
      amount
      currency
    }
    dailyHwPrice {
      amount
      currency
    }
    location {
      name
      identifier
    }
    stockCount
  }
}

Example variables:

{
  "input": {
    "region_in": ["EU", "NA"],
    "cpuCores": { "min": 128 },
    "cpuCount": { "min": 2, "max": 2 },
    "memory": { "min": 256 },
  }
}

Adjust the filters as needed for your use case. The query supports a wide range of filtering options:

  • Location filters: Use locationIdentifier_in or region_in to specify data center locations or geographical regions. All available locations and regions are listed in the LocationIdentifier enum and Region enum.

  • CPU filters: Filter by cpuCores, cpuThreads, or specific cpuName_in values

  • Memory filters: Set minimum/maximum RAM requirements with memory.min and memory.max (in GB)

  • GPU filters: Filter configurations with specific GPU models using gpuCount and gpuMemory

  • Price filters: Limit results by price range with monthlyHwPriceAmount.max and dailyHwPriceAmount.max

  • Storage filters: Use storageRequirements to define specific storage criteria. This array allows you to set multiple storage conditions that server configurations must satisfy. Each entry in the array filters a subset of drives by type (if specified) and applies size and quantity constraints. A configuration is included in results only when it meets all specified storage requirements.

    Full format:

    • type_in: Array of storage types (SATA_SSD, NVME, HDD)
    • totalSize: Object with min and max values for total size in GB
    • count: Object with min and max values for number of drives

     

    Examples

    This finds configurations with at least 4 NVMe drives totaling 12TB or more:

    {
      "input": {
        "storageRequirements": [
          {
            "type_in": ["NVME"],
            "count": { "min": 4 },
            "totalSize": { "min": 12000 }
          }
        ]
      }
    }
    

    This finds configurations with 2 SSDs for system AND total HDD storage of at least 100TB:

    {
      "input": {
        "storageRequirements": [
          {
            "type_in": ["SATA_SSD", "NVME"],
            "count": { "min": 2, "max": 2 }
          },
          {
            "type_in": ["HDD"],
            "totalSize": { "min": 100000 }
          }
        ]
      }
    }
    

    This finds configurations with exactly 2 NVMe drives. The first condition specifies the drive type and count, and the second condition limits the total count of drives to 2:

    {
      "input": {
        "storageRequirements": [
          {
            "type_in": ["NVME"],
            "count": { "min": 2, "max": 2 }
          },
          {
            "count": { "min": 2, "max": 2 }
          }
        ]
      }
    }
    

     

You can combine multiple filters to narrow down results precisely. For example, you might want servers with at least 32 cores, 64GB RAM, and at least 2TB of SSD storage in either Amsterdam, Frankfurt or Paris.

  {
    "cpuCores": { "min": 32 },
    "memory": { "min": 64 },
    "storageRequirements": [
      {
        "type_in": ["NVME", "SATA_SSD"],
        "totalSize": { "min": 2000 }
      }
    ],
    "locationIdentifier_in": [ "AMSTERDAM", "FRANKFURT", "PARIS"]
  }

2. Select a configuration

After receiving the filtered configurations, select the one that best matches your needs.

Results are sorted by price, with the lowest priced configurations first, making it easy to find the most cost-effective option that meets your requirements.

Each configuration has a unique configurationId that you'll need for provisioning. The configurationId is a stable identifier that guarantees the exact hardware specifications, network capacity, and location you selected.

If you need to provision multiple identical servers in the same location, verify that there is sufficient stock to meet your requirements.

3. Provision the server

Use the provisionServer mutation to provision a new server with the selected configuration. You will need to provide the configurationId, desired billing period, operating system image, and optionally SSH keys.

The operating system will be installed on a RAID 1 volume across two drives. Any additional drives will remain unpartitioned for you to configure as needed.

Example mutation:

mutation ProvisionServer($input: ProvisionServerInput!) {
  provisionServer(input: $input) {
    server {
      name
      statusV2
      network {
        ipAddresses {
          isPrimary
          isBgpPrefix
          type
          netMask
          gateway
          network
          broadcast
          ip
          cidr
        }
        ipmi {
          ip
          username
        }
      }
    }
  }
}

Example variables:

{
  "input": {
    "configurationId": "your-selected-configuration-id",
    "billingPeriod": "MONTHLY",
    "osImageId": "your-os-image-id",
    "sshKeyNames": ["your-ssh-key-name"]
  }
}
  • configurationId: The ID of the configuration you selected from the provisioningConfigurations query. This uniquely identifies the hardware configuration you want to provision.
  • billingPeriod: The desired billing period (e.g., "MONTHLY" or "DAILY"). See Billing period for more information.
  • osImageId: The ID of the operating system image to install. You can get this ID from the operatingSystems query, which returns a list of all available operating systems with their respective IDs. The No OS - Self installation via KVM/IPMI option is also available.
  • sshKeyNames: An array of SSH key names to authorize for access. You can add SSH keys in the client panel before provisioning a server.

The provisionServer mutation is synchronous and either returns a newly provisioned server or an error. Returned server object contains the server's details.

Server provisioning status

When you provision a server using the provisionServer mutation, the server will initially be in one of two states:

  1. PROVISIONING – The server is being set up and configured according to your specifications. This includes hardware allocation, operating system installation, and network configuration. During this state, the server is not yet accessible.

  2. WAITING – The server is waiting for initial payment confirmation. This status typically appears when there are billing-related requirements that need to be fulfilled before provisioning can proceed (eg. subscription payment is pending).

Once the provisioning process completes successfully, the server status will change to ACTIVE, indicating that the server is fully operational and ready for use. At this point, you can access the server using the SSH keys you provided during provisioning. You will receive an email notification once the server is ready.

You can monitor the server's status by querying the statusV2 field of the server object. It's recommended to implement a polling mechanism that periodically checks the server status until it reaches the ACTIVE state before attempting to use the server.

Server provisioning errors

If the provisioning fails for any reason (such as insufficient resources, invalid configuration parameters, or system errors), the API will return an appropriate error message explaining the issue. You should implement proper error handling to catch and respond to these potential failures.

Server provisioning best practices

Do not forget to query the specific fields you're interested in when making the request. For example, if you need the server's name, IP address, and IPMI details, make sure to include these fields in your mutation. This ensures you have all the necessary information for subsequent requests without having to make additional API calls.

To provision multiple servers, you'll need to call the provisionServer mutation multiple times, once for each server you want to provision.

For automated deployments, you can implement a loop in your client code that:

  1. Calls the mutation for each server configuration
  2. Handles success/failure for each individual server
  3. Tracks the overall provisioning status

When provisioning multiple servers, consider implementing retry logic with appropriate backoff periods to handle temporary failures.

Billing period

The API supports two billing periods for server provisioning. You can specify your preferred billing period using the billingPeriod parameter in the provisionServer mutation.

Daily billing - DAILY

  • Billing is calculated daily based on UTC calendar days, with charges for each day processed at the start of the next UTC day
  • The price consists of two components:
    • Hardware price: Cost of the physical server resources as defined by the configuration
    • Traffic price: Cost based on the amount of data transferred, calculated per TB (terabyte) of usage – see Traffic pricing by region
  • Provides maximum flexibility for short-term needs
  • Can be terminated at any time with billing stopping at the end of the current day
  • Ideal for temporary workloads, testing, or when you need servers for an uncertain duration
  • Generally has a higher per-day cost compared to monthly billing
  • Requires a minimum DataPacket account balance of $100 to activate, with daily charges automatically deducted from your credit
  • Selected trusted accounts may qualify for post-paid billing, allowing daily server charges to be accumulated and paid at the end of the month instead of requiring pre-funded credit

Traffic pricing by region

Region Price per TB
EU $3.00
NA $3.50
APAC $10.00
Australia $25.00
Africa $15.00
LATAM $10.00
Tel Aviv $12.00
Istanbul $6.00
Seoul $30.00
Fujairah $30.00

 

These prices apply to daily billing periods. When calculating your total server cost, remember to factor in both the hardware cost and the expected traffic usage based on these regional rates.

Monthly billing - MONTHLY

  • Servers are prepaid for an entire month
  • Offers a significant discount compared to the equivalent daily rate
  • Early termination is possible, but you will still be charged for the full month
  • Best for production workloads, long-running services, or any scenario where you know you'll need the server for at least a month

When choosing between billing periods, consider your expected usage duration and budget constraints. For short-term needs (less than 2-3 weeks), daily billing might be more economical despite the higher per-day rate. For longer-term usage, the monthly discount typically makes the prepaid option more cost-effective.

Traffic plan

When provisioning a MONTHLY server, a traffic plan is automatically assigned based on the following logic:

  1. Pooled Traffic Plan: If a pooled traffic plan is available in the region where you're provisioning the server, it will be selected automatically. Pooled traffic plans allow you to share bandwidth across multiple servers, which can be more cost-effective for deployments with varying traffic patterns.

  2. Default Traffic Plan: If no pooled traffic plan is available in the region, the system will use your account's default traffic plan. This default plan can be pre-selected and configured in the client panel under your account billing settings.

This automatic selection ensures that your servers always have network connectivity without requiring you to explicitly specify a traffic plan during provisioning. However, you can always change the traffic plan after the server has been provisioned if your bandwidth needs change.

Queries

account

This query provides basic information about your account such as name, email, hostname template and when the account was created.

Response

Returns an Account!

Example

Query
query Account {
  account {
    name
    email
    hostname
    createdAt
  }
}
Response
{
  "data": {
    "account": {
      "name": "Peter Marlowe",
      "email": "peter.marlowe@changi.sg",
      "hostname": "petermarlowe",
      "createdAt": "2025-12-01T10:23:43.161Z"
    }
  }
}

errorCodes

List of all error codes.

Response

Returns [ErrorCode!]!

Example

Query
query ErrorCodes {
  errorCodes
}
Response
{"data": {"errorCodes": ["BAD_REQUEST"]}}

invoice

Invoice query provides information about a single invoice in your account. Use InvoiceInput to specify invoice number.

Response

Returns an Invoice!

Arguments
Name Description
input InvoiceInput!

Example

Query
query Invoice($input: InvoiceInput!) {
  invoice(input: $input) {
    invoiceNumber
    subscription {
      name
      type
      subtotal
      currency
      billingCycle {
        unit
        quantity
        start
      }
      createdAt
      subscriptionItems {
        description
        price
        currency
        type
        subscriptionItemDetail {
          ...SubscriptionItemDetailFragment
        }
      }
      invoices {
        invoiceNumber
        subscription {
          ...SubscriptionFragment
        }
        period {
          ...PeriodFragment
        }
        payment {
          ...PaymentFragment
        }
        invoiceItems {
          ...InvoiceItemFragment
        }
        subtotal
        total
        totalVat
        currency
        createdAt
        dueDate
        invoiceType
      }
    }
    period {
      from
      to
    }
    payment {
      status
      paidOn
      method
    }
    invoiceItems {
      description
      quantity
      unitPrice
      amount
      vatPercent
      currency
      type
    }
    subtotal
    total
    totalVat
    currency
    createdAt
    dueDate
    invoiceType
  }
}
Variables
{"input": InvoiceInput}
Response
{
  "data": {
    "invoice": {
      "invoiceNumber": "DP000123",
      "subscription": Subscription,
      "period": Period,
      "payment": Payment,
      "invoiceItems": [InvoiceItem],
      "subtotal": 100,
      "total": 121,
      "totalVat": 21,
      "currency": "USD",
      "createdAt": "2025-06-01T10:23:43.161Z",
      "dueDate": "2025-06-01T10:23:43.161Z",
      "invoiceType": "DRAFT"
    }
  }
}

invoices

Invoices query provides information about invoices in your account.

Response

Returns a PaginatedInvoiceResponse!

Arguments
Name Description
input PaginatedInvoicesInput

Example

Query
query Invoices($input: PaginatedInvoicesInput) {
  invoices(input: $input) {
    entriesTotalCount
    pageCount
    currentPageIndex
    pageSize
    nextPageIndex
    previousPageIndex
    isLastPage
    isFirstPage
    entries {
      invoiceNumber
      subscription {
        name
        type
        subtotal
        currency
        billingCycle {
          ...BillingCycleFragment
        }
        createdAt
        subscriptionItems {
          ...SubscriptionItemFragment
        }
        invoices {
          ...InvoiceFragment
        }
      }
      period {
        from
        to
      }
      payment {
        status
        paidOn
        method
      }
      invoiceItems {
        description
        quantity
        unitPrice
        amount
        vatPercent
        currency
        type
      }
      subtotal
      total
      totalVat
      currency
      createdAt
      dueDate
      invoiceType
    }
  }
}
Variables
{"input": PaginatedInvoicesInput}
Response
{
  "data": {
    "invoices": {
      "entriesTotalCount": 1089,
      "pageCount": 55,
      "currentPageIndex": 1,
      "pageSize": 50,
      "nextPageIndex": 2,
      "previousPageIndex": 0,
      "isLastPage": false,
      "isFirstPage": false,
      "entries": [Invoice]
    }
  }
}

locations

List of all available locations.

Response

Returns [Location!]!

Example

Query
query Locations {
  locations {
    name
    region
    short
    identifier
  }
}
Response
{
  "data": {
    "locations": [
      {"name": "Prague", "region": "EU", "short": "PRG", "identifier": "PRAGUE"}
    ]
  }
}

operatingSystems

List of all available operating systems that can be installed on provisioned servers. Use the osImageId from these results when calling the provisionServer mutation.

Response

Returns [OperatingSystem!]!

Example

Query
query OperatingSystems {
  operatingSystems {
    osImageId
    name
  }
}
Response
{
  "data": {
    "operatingSystems": [{"osImageId": "2iaste7", "name": "Ubuntu 20.04"}]
  }
}

postInstallScripts

Returns a paginated list of post-install scripts.

Response

Returns a PaginatedPostInstallScriptResponse!

Arguments
Name Description
input PaginatedPostInstallScriptsInput

Example

Query
query PostInstallScripts($input: PaginatedPostInstallScriptsInput) {
  postInstallScripts(input: $input) {
    entriesTotalCount
    pageCount
    currentPageIndex
    pageSize
    nextPageIndex
    previousPageIndex
    isLastPage
    isFirstPage
    entries {
      id
      name
      createdAt
      updatedAt
      content
      isAutoSelected
    }
  }
}
Variables
{"input": {"filter": {"name_in": ["log-time-script", "custom-setup"]}}}
Response
{
  "data": {
    "postInstallScripts": {
      "entriesTotalCount": 123,
      "pageCount": 987,
      "currentPageIndex": 987,
      "pageSize": 987,
      "nextPageIndex": 987,
      "previousPageIndex": 987,
      "isLastPage": true,
      "isFirstPage": false,
      "entries": [PostInstallScript]
    }
  }
}

provisioningConfigurations

List of available server configurations that match your filtering criteria. Each configuration represents a specific hardware setup with details about CPU, memory, storage, uplink, location, and pricing. Use the configurationId from these results when calling the provisionServer mutation. You can filter configurations by region, CPU cores, memory, storage requirements, and other parameters to find the optimal server for your needs. Results are sorted by price, with the lowest priced configurations first, making it easy to find the most cost-effective option that meets your requirements. For more information, see Server provisioning docs.

Response

Returns [ProvisioningConfiguration!]!

Arguments
Name Description
input ProvisioningConfigurationsInput

Example

Query
query ProvisioningConfigurations($input: ProvisioningConfigurationsInput) {
  provisioningConfigurations(input: $input) {
    configurationId
    memory
    storage {
      size
      type
    }
    cpus {
      count
      name
      cores
      threads
    }
    cpuBenchmarkScore
    gpus {
      name
      memory
    }
    uplink {
      ports {
        capacity
      }
    }
    monthlyHwPrice {
      amount
      currency
    }
    dailyHwPrice {
      amount
      currency
    }
    location {
      name
      region
      short
      identifier
    }
    stockCount
  }
}
Variables
{"input": ProvisioningConfigurationsInput}
Response
{
  "data": {
    "provisioningConfigurations": [
      {
        "configurationId": "36shlfd-prg",
        "memory": 64,
        "storage": [Storage],
        "cpus": [Cpu],
        "cpuBenchmarkScore": 56981,
        "gpus": [Gpu],
        "uplink": Uplink,
        "monthlyHwPrice": Money,
        "dailyHwPrice": Money,
        "location": Location,
        "stockCount": 10
      }
    ]
  }
}

reverseDnsRecord

Get a reverse DNS (PTR) record for a given IP

Response

Returns a ReverseDnsRecordResponse!

Arguments
Name Description
input ReverseDnsRecordInput!

Example

Query
query ReverseDnsRecord($input: ReverseDnsRecordInput!) {
  reverseDnsRecord(input: $input) {
    ip {
      isPrimary
      isBgpPrefix
      type
      netMask
      gateway
      network
      broadcast
      ip
      cidr
    }
    hostname
  }
}
Variables
{"input": ReverseDnsRecordInput}
Response
{
  "data": {
    "reverseDnsRecord": {
      "ip": IpAddress,
      "hostname": "example.com."
    }
  }
}

server

Server query provides information about a single server in your account. You can query name and location of the server, its power status, IPMI IP, its network settings and more. Use ServerInput to specify server's name, alias, IP or IPMI IP.

Response

Returns a Server!

Arguments
Name Description
input ServerInput!

Example

Query
query Server($input: ServerInput!) {
  server(input: $input) {
    name
    alias
    hostname
    location {
      name
      region
      short
      identifier
    }
    uptime
    powerStatus
    status
    statusV2
    network {
      ipAddresses {
        isPrimary
        isBgpPrefix
        type
        netMask
        gateway
        network
        broadcast
        ip
        cidr
      }
      ddosShieldLevel
      ipmi {
        ip
        username
      }
      hasBgp
      uplinkCapacity
      hasLinkAggregation
    }
    hardware {
      cpus {
        count
        name
        cores
        threads
      }
      hdds {
        count
        storage {
          ...StorageFragment
        }
      }
      storage {
        size
        type
      }
      rams {
        count
        size
      }
    }
    system {
      raid
      os {
        name
      }
      operatingSystem {
        osImageId
        name
      }
    }
    trafficPlan {
      name
      type
      scope
      bandwidth
    }
    tags {
      key
      value
    }
    billing {
      subscriptionItem {
        description
        price
        currency
        type
        subscriptionItemDetail {
          ...SubscriptionItemDetailFragment
        }
      }
    }
  }
}
Variables
{"input": ServerInput}
Response
{
  "data": {
    "server": {
      "name": "DP-12345",
      "alias": "Load Balancer 01",
      "hostname": "petermarlowe-45",
      "location": "London",
      "uptime": 123,
      "powerStatus": "ON",
      "status": "PROVISIONING",
      "statusV2": "WAITING",
      "network": Network,
      "hardware": Hardware,
      "system": System,
      "trafficPlan": TrafficPlan,
      "tags": [ServerTag],
      "billing": Billing
    }
  }
}

serverLinksConfigurationTask

Get server links configuration task

Response

Returns a ServerLinksConfigurationTask

Arguments
Name Description
input ServerLinksConfigurationTaskInput!

Example

Query
query ServerLinksConfigurationTask($input: ServerLinksConfigurationTaskInput!) {
  serverLinksConfigurationTask(input: $input) {
    taskId
    status
  }
}
Variables
{"input": ServerLinksConfigurationTaskInput}
Response
{
  "data": {
    "serverLinksConfigurationTask": {
      "taskId": "4",
      "status": "PENDING"
    }
  }
}

servers

Servers query provides a list of servers in your account.
You can filter by name, location, power status, IPMI IP, IP, alias, etc.
You can also sort results by various attributes.

Response

Returns a PaginatedServerResponse!

Arguments
Name Description
input PaginatedServersInput

Example

Query
query Servers($input: PaginatedServersInput) {
  servers(input: $input) {
    entriesTotalCount
    pageCount
    currentPageIndex
    pageSize
    nextPageIndex
    previousPageIndex
    isLastPage
    isFirstPage
    entries {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": PaginatedServersInput}
Response
{
  "data": {
    "servers": {
      "entriesTotalCount": 1089,
      "pageCount": 55,
      "currentPageIndex": 1,
      "pageSize": 50,
      "nextPageIndex": 2,
      "previousPageIndex": 0,
      "isLastPage": false,
      "isFirstPage": false,
      "entries": [Server]
    }
  }
}

subscription

Subscription query provides basic information about your subscription, including subtotal, currency, type, createdAt, subscription items, and billing cycle.

Response

Returns a Subscription!

Arguments
Name Description
input SubscriptionInput!

Example

Query
query Subscription($input: SubscriptionInput!) {
  subscription(input: $input) {
    name
    type
    subtotal
    currency
    billingCycle {
      unit
      quantity
      start
    }
    createdAt
    subscriptionItems {
      description
      price
      currency
      type
      subscriptionItemDetail {
        server {
          ...ServerFragment
        }
        trafficPlan {
          ...TrafficPlanFragment
        }
      }
    }
    invoices {
      invoiceNumber
      subscription {
        name
        type
        subtotal
        currency
        billingCycle {
          ...BillingCycleFragment
        }
        createdAt
        subscriptionItems {
          ...SubscriptionItemFragment
        }
        invoices {
          ...InvoiceFragment
        }
      }
      period {
        from
        to
      }
      payment {
        status
        paidOn
        method
      }
      invoiceItems {
        description
        quantity
        unitPrice
        amount
        vatPercent
        currency
        type
      }
      subtotal
      total
      totalVat
      currency
      createdAt
      dueDate
      invoiceType
    }
  }
}
Variables
{"input": SubscriptionInput}
Response
{
  "data": {
    "subscription": {
      "name": "abc123",
      "type": "PREPAID",
      "subtotal": 987.65,
      "currency": "USD",
      "billingCycle": BillingCycle,
      "createdAt": "2025-12-01T10:23:43.161Z",
      "subscriptionItems": [SubscriptionItem],
      "invoices": [Invoice]
    }
  }
}

subscriptions

Subscriptions query provides information about subscriptions in your account.

Response

Returns a PaginatedSubscriptionResponse!

Arguments
Name Description
input PaginatedSubscriptionsInput

Example

Query
query Subscriptions($input: PaginatedSubscriptionsInput) {
  subscriptions(input: $input) {
    entriesTotalCount
    pageCount
    currentPageIndex
    pageSize
    nextPageIndex
    previousPageIndex
    isLastPage
    isFirstPage
    entries {
      name
      type
      subtotal
      currency
      billingCycle {
        unit
        quantity
        start
      }
      createdAt
      subscriptionItems {
        description
        price
        currency
        type
        subscriptionItemDetail {
          ...SubscriptionItemDetailFragment
        }
      }
      invoices {
        invoiceNumber
        subscription {
          ...SubscriptionFragment
        }
        period {
          ...PeriodFragment
        }
        payment {
          ...PaymentFragment
        }
        invoiceItems {
          ...InvoiceItemFragment
        }
        subtotal
        total
        totalVat
        currency
        createdAt
        dueDate
        invoiceType
      }
    }
  }
}
Variables
{"input": PaginatedSubscriptionsInput}
Response
{
  "data": {
    "subscriptions": {
      "entriesTotalCount": 1089,
      "pageCount": 55,
      "currentPageIndex": 1,
      "pageSize": 50,
      "nextPageIndex": 2,
      "previousPageIndex": 0,
      "isLastPage": false,
      "isFirstPage": false,
      "entries": [Subscription]
    }
  }
}

supportRequest

Get information about a single support request.

Response

Returns a SupportRequest!

Arguments
Name Description
input SupportRequestInput!

Example

Query
query SupportRequest($input: SupportRequestInput!) {
  supportRequest(input: $input) {
    id
    subject
    status
    createdAt
    updatedAt
    numberOfReplies
    lastReplyAt
    fullName
    email
    category
    posts {
      id
      contents
      createdAt
      email
      fullName
      postBy
    }
  }
}
Variables
{"input": SupportRequestInput}
Response
{
  "data": {
    "supportRequest": {
      "id": 123,
      "subject": "RAM upgrade request.",
      "status": "OPEN",
      "createdAt": "2025-06-01T10:23:43.161Z",
      "updatedAt": "2025-12-01T10:23:43.161Z",
      "numberOfReplies": 987,
      "lastReplyAt": "2025-06-01T10:23:43.161Z",
      "fullName": "John Doe",
      "email": "example@datapacket.com",
      "category": "NEW",
      "posts": [Post]
    }
  }
}

supportRequests

Get a list of support requests.

Response

Returns [SupportRequest!]!

Arguments
Name Description
input PaginatedSupportRequestsInput

Example

Query
query SupportRequests($input: PaginatedSupportRequestsInput) {
  supportRequests(input: $input) {
    id
    subject
    status
    createdAt
    updatedAt
    numberOfReplies
    lastReplyAt
    fullName
    email
    category
    posts {
      id
      contents
      createdAt
      email
      fullName
      postBy
    }
  }
}
Variables
{"input": PaginatedSupportRequestsInput}
Response
{
  "data": {
    "supportRequests": [
      {
        "id": 987,
        "subject": "RAM upgrade request.",
        "status": "OPEN",
        "createdAt": "2025-12-01T10:23:43.161Z",
        "updatedAt": "2025-06-01T10:23:43.161Z",
        "numberOfReplies": 987,
        "lastReplyAt": "2025-06-01T10:23:43.161Z",
        "fullName": "John Doe",
        "email": "example@datapacket.com",
        "category": "NEW",
        "posts": [Post]
      }
    ]
  }
}

traffic

Get traffic statistics over a specified time period, either aggregated or broken down by server. If no server is specified, stats are returned for all servers.

Response

Returns a Traffic!

Arguments
Name Description
input TrafficInput!

Example

Query
query Traffic($input: TrafficInput!) {
  traffic(input: $input) {
    aggregated {
      statisticsIn {
        average
        last
        p95
        sum
        maximum
      }
      statisticsOut {
        average
        last
        p95
        sum
        maximum
      }
    }
    perServer {
      server {
        name
        alias
        hostname
        location {
          ...LocationFragment
        }
        uptime
        powerStatus
        status
        statusV2
        network {
          ...NetworkFragment
        }
        hardware {
          ...HardwareFragment
        }
        system {
          ...SystemFragment
        }
        trafficPlan {
          ...TrafficPlanFragment
        }
        tags {
          ...ServerTagFragment
        }
        billing {
          ...BillingFragment
        }
      }
      traffic {
        statisticsIn {
          ...TrafficStatisticsFragment
        }
        statisticsOut {
          ...TrafficStatisticsFragment
        }
      }
    }
  }
}
Variables
{"input": TrafficInput}
Response
{
  "data": {
    "traffic": {
      "aggregated": AggregatedTraffic,
      "perServer": [PerServerTraffic]
    }
  }
}

Mutations

changeServerIpmiPassword

This mutation allows you to change IPMI password of a server.

Response

Returns a ChangeServerIpmiPasswordResponse!

Arguments
Name Description
input ChangeIpmiPasswordInput!

Example

Query
mutation ChangeServerIpmiPassword($input: ChangeIpmiPasswordInput!) {
  changeServerIpmiPassword(input: $input) {
    server {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": ChangeIpmiPasswordInput}
Response
{"data": {"changeServerIpmiPassword": {"server": Server}}}

createPostInstallScript

Creates a new post-install script. Post-install scripts must be plain text (no binaries), up to 10 MB in size, and have a 30-minute execution timeout. For more information, see the Provisioning settings section of the Client Panel.

Response

Returns a PostInstallScript!

Arguments
Name Description
input CreatePostInstallScriptInput!

Example

Query
mutation CreatePostInstallScript($input: CreatePostInstallScriptInput!) {
  createPostInstallScript(input: $input) {
    id
    name
    createdAt
    updatedAt
    content
    isAutoSelected
  }
}
Variables
{
  "input": {
    "name": "log-time-script",
    "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
    "isAutoSelected": true
  }
}
Response
{
  "data": {
    "createPostInstallScript": {
      "id": "2d2af78a-cc03-424f-985c-d6500754a0ed",
      "name": "log-time-script",
      "createdAt": "2025-03-12T07:44:56.411Z",
      "updatedAt": "2025-03-14T09:51:42.100Z",
      "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
      "isAutoSelected": true
    }
  }
}

createSupportRequest

Create a new support request.

Response

Returns a Boolean!

Arguments
Name Description
input CreateSupportRequestInput!

Example

Query
mutation CreateSupportRequest($input: CreateSupportRequestInput!) {
  createSupportRequest(input: $input)
}
Variables
{"input": CreateSupportRequestInput}
Response
{"data": {"createSupportRequest": true}}

deletePostInstallScript

Deletes the specified post-install script.

Response

Returns a Boolean!

Arguments
Name Description
input DeletePostInstallScriptInput!

Example

Query
mutation DeletePostInstallScript($input: DeletePostInstallScriptInput!) {
  deletePostInstallScript(input: $input)
}
Variables
{"input": {"id": "2d2af78a-cc03-424f-985c-d6500754a0ed"}}
Response
{"data": {"deletePostInstallScript": true}}

performServerPowerAction

Perform an IPMI server power action such as power on, power off or reboot. Please note that because IPMI may take a while to respond, this API call is asynchronous. As a result, we cannot guarantee that the requested action will be performed successfully.

Response

Returns a PerformServerPowerActionResponse!

Arguments
Name Description
input PerformServerPowerActionInput!

Example

Query
mutation PerformServerPowerAction($input: PerformServerPowerActionInput!) {
  performServerPowerAction(input: $input) {
    server {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": PerformServerPowerActionInput}
Response
{"data": {"performServerPowerAction": {"server": Server}}}

provisionServer

Provision a new server instance using the specified configuration and parameters. You must provide a configurationId (obtained from the provisioningConfigurations query), billingPeriod (MONTHLY or DAILY), osImageId (from the operatingSystems query), and sshKeyNames. The server will initially be in PROVISIONING or WAITING status, and will transition to ACTIVE once ready. The response contains the resulting server instance with details like IP addresses and network configuration. For more information see the Provision the server docs.

Response

Returns a ProvisionServerResponse!

Arguments
Name Description
input ProvisionServerInput!

Example

Query
mutation ProvisionServer($input: ProvisionServerInput!) {
  provisionServer(input: $input) {
    server {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": ProvisionServerInput}
Response
{"data": {"provisionServer": {"server": Server}}}

setDefaultTrafficPlan

Sets the default server-scoped traffic plan used by the provisionServer mutation when provisioning a server. You can also configure this anytime under “Provisioning Settings” in your Client Panel.

Response

Returns a Boolean!

Arguments
Name Description
input SetDefaultTrafficPlanInput!

Example

Query
mutation SetDefaultTrafficPlan($input: SetDefaultTrafficPlanInput!) {
  setDefaultTrafficPlan(input: $input)
}
Variables
{"input": SetDefaultTrafficPlanInput}
Response
{"data": {"setDefaultTrafficPlan": true}}

setReverseDnsRecord

Set a reverse DNS (PTR) record for a given IP. Set hostname to null to delete the record.

Response

Returns a SetReverseDnsRecordResponse!

Arguments
Name Description
input SetReverseDnsRecordInput!

Example

Query
mutation SetReverseDnsRecord($input: SetReverseDnsRecordInput!) {
  setReverseDnsRecord(input: $input) {
    ip {
      isPrimary
      isBgpPrefix
      type
      netMask
      gateway
      network
      broadcast
      ip
      cidr
    }
  }
}
Variables
{"input": SetReverseDnsRecordInput}
Response
{"data": {"setReverseDnsRecord": {"ip": IpAddress}}}

setServerAlias

Set custom alias for your server.

Response

Returns a SetServerAliasResponse!

Arguments
Name Description
input SetServerAliasInput!

Example

Query
mutation SetServerAlias($input: SetServerAliasInput!) {
  setServerAlias(input: $input) {
    server {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": SetServerAliasInput}
Response
{"data": {"setServerAlias": {"server": Server}}}

setServerBootDevice

Sets a boot device for server via IPMI.

Response

Returns a SetServerBootDeviceResponse!

Arguments
Name Description
input SetServerBootDeviceInput!

Example

Query
mutation SetServerBootDevice($input: SetServerBootDeviceInput!) {
  setServerBootDevice(input: $input) {
    server {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": SetServerBootDeviceInput}
Response
{"data": {"setServerBootDevice": {"server": Server}}}

setServerPrimaryIp

Set primary IP to your server.

Response

Returns a SetServerPrimaryIpResponse!

Arguments
Name Description
input SetServerPrimaryIpInput!

Example

Query
mutation SetServerPrimaryIp($input: SetServerPrimaryIpInput!) {
  setServerPrimaryIp(input: $input) {
    server {
      name
      alias
      hostname
      location {
        name
        region
        short
        identifier
      }
      uptime
      powerStatus
      status
      statusV2
      network {
        ipAddresses {
          ...IpAddressFragment
        }
        ddosShieldLevel
        ipmi {
          ...IpmiFragment
        }
        hasBgp
        uplinkCapacity
        hasLinkAggregation
      }
      hardware {
        cpus {
          ...CpuFragment
        }
        hdds {
          ...HddFragment
        }
        storage {
          ...StorageFragment
        }
        rams {
          ...RamFragment
        }
      }
      system {
        raid
        os {
          ...OsFragment
        }
        operatingSystem {
          ...OperatingSystemFragment
        }
      }
      trafficPlan {
        name
        type
        scope
        bandwidth
      }
      tags {
        key
        value
      }
      billing {
        subscriptionItem {
          ...SubscriptionItemFragment
        }
      }
    }
  }
}
Variables
{"input": SetServerPrimaryIpInput}
Response
{"data": {"setServerPrimaryIp": {"server": Server}}}

setServerTag

Update or set a single tag for the server. If the provided value argument is omitted or null, the tag will be deleted.

Response

Returns a Boolean!

Arguments
Name Description
input SetServerTagInput!

Example

Query
mutation SetServerTag($input: SetServerTagInput!) {
  setServerTag(input: $input)
}
Variables
{"input": SetServerTagInput}
Response
{"data": {"setServerTag": false}}

setServerTags

This mutation sets tags for the server. Tags not provided will be deleted.

Response

Returns a Boolean!

Arguments
Name Description
input SetServerTagsInput!

Example

Query
mutation SetServerTags($input: SetServerTagsInput!) {
  setServerTags(input: $input)
}
Variables
{"input": SetServerTagsInput}
Response
{"data": {"setServerTags": false}}

supportRequestReply

Create reply to an existing support request.

Response

Returns a Boolean!

Arguments
Name Description
input SupportRequestReplyInput!

Example

Query
mutation SupportRequestReply($input: SupportRequestReplyInput!) {
  supportRequestReply(input: $input)
}
Variables
{"input": SupportRequestReplyInput}
Response
{"data": {"supportRequestReply": false}}

updatePostInstallScript

Updates an existing post-install script.

Response

Returns a PostInstallScript!

Arguments
Name Description
input UpdatePostInstallScriptInput!

Example

Query
mutation UpdatePostInstallScript($input: UpdatePostInstallScriptInput!) {
  updatePostInstallScript(input: $input) {
    id
    name
    createdAt
    updatedAt
    content
    isAutoSelected
  }
}
Variables
{
  "input": {
    "id": "2d2af78a-cc03-424f-985c-d6500754a0ed",
    "name": "log-time-script",
    "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
    "isAutoSelected": true
  }
}
Response
{
  "data": {
    "updatePostInstallScript": {
      "id": "2d2af78a-cc03-424f-985c-d6500754a0ed",
      "name": "log-time-script",
      "createdAt": "2025-03-12T07:44:56.411Z",
      "updatedAt": "2025-03-14T09:51:42.100Z",
      "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
      "isAutoSelected": true
    }
  }
}

Type

Account

Fields
Field Name Description
name String
email String!
hostname String
createdAt DateTime!
Example
{
  "name": "Peter Marlowe",
  "email": "peter.marlowe@changi.sg",
  "hostname": "petermarlowe",
  "createdAt": "2025-06-01T10:23:43.161Z"
}

AggregatedTraffic

Fields
Field Name Description
statisticsIn TrafficStatistics
Traffic statistics for inbound traffic.
statisticsOut TrafficStatistics
Traffic statistics for outbound traffic.
Example
{
  "statisticsIn": TrafficStatistics,
  "statisticsOut": TrafficStatistics
}

Billing

Fields
Field Name Description
subscriptionItem SubscriptionItem!
Example
{"subscriptionItem": SubscriptionItem}

BillingCycle

Description

Information about subscription billing cycle.

Fields
Field Name Description
unit BillingIntervalUnit!
The unit of time for each billing interval — daily, monthly, or yearly.
quantity Int!
How many units make up one billing interval; combined with unit, this defines your billing frequency.
start Int!
Specifies the numerical day of the month on which the billing cycle starts for the monthly cycle, or the numerical month of the year in which the billing cycle starts for the yearly cycle.
Example
{"unit": "MONTH", "quantity": 6, "start": 1}

ChangeServerIpmiPasswordResponse

Fields
Field Name Description
server Server!
Example
{"server": Server}

Cpu

Fields
Field Name Description
count Int!
The number of CPUs is now determined by the length of the CPU list. This value is always 1.
name String!
The model name of the CPU.
cores Int!
The number of physical cores in the CPU.
threads Int!
The number of logical threads that the CPU can execute concurrently.
Example
{"count": 1, "name": "Intel Silver 4316", "cores": 987, "threads": 987}

Gpu

Fields
Field Name Description
name String!
The model name of the GPU.
memory Int!
The memory capacity (vram) of the GPU in GB.
Example
{"name": "abc123", "memory": 123}

Hardware

Fields
Field Name Description
cpus [Cpu!]!
A list of CPUs installed in the server.
hdds [Hdd!]!
Use storage instead.
storage [Storage!]!
A list of storage devices installed in the server.
rams [Ram!]!
A list of RAM modules installed in the server.
Example
{
  "cpus": [Cpu],
  "hdds": [Hdd],
  "storage": [Storage],
  "rams": [Ram]
}

Hdd

Fields
Field Name Description
count Int!
The number of storage devices is now determined by the length of the storage list. This value is always 1.
Number of storage units.
storage Storage!
Example
{"count": 1, "storage": Storage}

Invoice

Fields
Field Name Description
invoiceNumber String!
The unique invoice number.
subscription Subscription
The associated subscription related to the invoice.
period Period!
The billing period covered by the invoice.
payment Payment
The payment details associated with the invoice.
invoiceItems [InvoiceItem!]!
The items included in the invoice.
subtotal Float!
The total amount of the invoice, excluding any applicable taxes.
total Float!
The total amount of the invoice, including VAT (Value Added Tax).
totalVat Float!
The total VAT (Value Added Tax) amount of the invoice.
currency Currency!
The currency of the invoice.
createdAt DateTime!
The date when the invoice was created.
dueDate DateTime!
The due date for the invoice payment.
invoiceType InvoiceType
The type of the invoice.
Example
{
  "invoiceNumber": "DP000123",
  "subscription": Subscription,
  "period": Period,
  "payment": Payment,
  "invoiceItems": [InvoiceItem],
  "subtotal": 100,
  "total": 121,
  "totalVat": 21,
  "currency": "USD",
  "createdAt": "2025-12-01T10:23:43.161Z",
  "dueDate": "2025-06-01T10:23:43.161Z",
  "invoiceType": "DRAFT"
}

InvoiceItem

Fields
Field Name Description
description String!
The description of the item on the invoice.
quantity Float!
Item quantity.
unitPrice Float!
Item unit price.
amount Float!
The total price for the item on the invoice, excluding any taxes or fees.
vatPercent Float!
The VAT (Value Added Tax) percentage applied to the item.
currency Currency!
The currency in which the invoice item is listed.
type InvoiceItemType
The type of the invoice item.
Example
{
  "description": "Item description",
  "quantity": 1,
  "unitPrice": 100,
  "amount": 121,
  "vatPercent": 21,
  "currency": "USD",
  "type": "SERVER"
}

IpAddress

Fields
Field Name Description
isPrimary Boolean!
True if this IP address is the primary address for the server.
isBgpPrefix Boolean!
Whether or not the IP address is a BGP prefix. BGP prefixes are used to route traffic between different networks.
type IpAddressType!
The type of IP address.
netMask String
The netmask of the IP address. The netmask is used to determine which part of the IP address is the network address and which part is the host address.
gateway String
The default gateway for the IP address.
network String
The network address of the IP address.
broadcast String
The broadcast address of the IP address.
ip String!
The IP address itself.
cidr String!
The CIDR notation of the IP address. CIDR notation is a more compact way of representing IP addresses and netmasks.
Example
{
  "isPrimary": true,
  "isBgpPrefix": false,
  "type": "IPV4",
  "netMask": "255.255.255.192",
  "gateway": "123.213.231.101",
  "network": "123.213.231.100",
  "broadcast": "123.213.231.255",
  "ip": "123.213.231.132",
  "cidr": "123.213.231.132/26"
}

Ipmi

Fields
Field Name Description
ip String
IPMI IP address.
username String
IPMI username.
Example
{"ip": "10.110.120.130", "username": "admin"}

Location

Fields
Field Name Description
name String!
Location name.
region Region!
Location region.
short String!
Location short name.
identifier LocationIdentifier!
Location identifier.
Example
{"name": "Prague", "region": "EU", "short": "PRG", "identifier": "PRAGUE"}

Money

Fields
Field Name Description
amount Decimal!
The monetary amount represented as a decimal number.
currency Currency!
The currency code (e.g., USD, EUR) for the monetary amount.
Example
{"amount": Decimal, "currency": "USD"}

Network

Fields
Field Name Description
ipAddresses [IpAddress!]!
List of IP addresses assigned to the server.
ddosShieldLevel DdosShieldLevel!
DDoS Shield protection setting.
ipmi Ipmi!
IPMI (Intelligent Platform Management Interface) information.
hasBgp Boolean
Whether the BGP session is estabilished for the server.
uplinkCapacity Int!
Overall server uplink capacity in Gbps.
hasLinkAggregation Boolean!
Indicates if the server uses link aggregation (LAG), which combines multiple physical network interfaces into a single logical connection. The aggregated connection appears as a single high-bandwidth link to the network.
Example
{
  "ipAddresses": [IpAddress],
  "ddosShieldLevel": "VOLUMETRIC",
  "ipmi": "10.110.120.130",
  "hasBgp": false,
  "uplinkCapacity": 40,
  "hasLinkAggregation": true
}

OperatingSystem

Fields
Field Name Description
osImageId ID!
The unique identifier for the operating system image.
name String!
The name of the operating system.
Example
{"osImageId": "2iaste7", "name": "Ubuntu 20.04"}

Os

Fields
Field Name Description
name String!
Name of the operating system.
Example
{"name": "Debian 11"}

PaginatedInvoiceResponse

Fields
Field Name Description
entriesTotalCount Int!
Total number of items in the full result set.
pageCount Int!
Total number of pages which constitute the full result set.
currentPageIndex Int!
Current page index which was returned, the first index is 0.
pageSize Int!
Number of items per page.
nextPageIndex Int
Index of the next page, when none is available null.
previousPageIndex Int
Index of the previous page, first index is 0, if currently on first page, the value will be null.
isLastPage Boolean!
Indicates whether this is the last page.
isFirstPage Boolean!
Indicates whether this is the first page.
entries [Invoice!]!
Resulting paginated items.
Example
{
  "entriesTotalCount": 1089,
  "pageCount": 55,
  "currentPageIndex": 1,
  "pageSize": 50,
  "nextPageIndex": 2,
  "previousPageIndex": 0,
  "isLastPage": false,
  "isFirstPage": false,
  "entries": [Invoice]
}

PaginatedPostInstallScriptResponse

Fields
Field Name Description
entriesTotalCount Int!
Total number of items in the full result set.
pageCount Int!
Total number of pages which constitute the full result set.
currentPageIndex Int!
Current page index which was returned, the first index is 0.
pageSize Int!
Number of items per page.
nextPageIndex Int
Index of the next page, when none is available null.
previousPageIndex Int
Index of the previous page, first index is 0, if currently on first page, the value will be null.
isLastPage Boolean!
Indicates whether this is the last page.
isFirstPage Boolean!
Indicates whether this is the first page.
entries [PostInstallScript!]!
Resulting paginated items.
Example
{
  "entriesTotalCount": 987,
  "pageCount": 123,
  "currentPageIndex": 123,
  "pageSize": 123,
  "nextPageIndex": 123,
  "previousPageIndex": 987,
  "isLastPage": false,
  "isFirstPage": true,
  "entries": [PostInstallScript]
}

PaginatedServerResponse

Fields
Field Name Description
entriesTotalCount Int!
Total number of items in the full result set.
pageCount Int!
Total number of pages which constitute the full result set.
currentPageIndex Int!
Current page index which was returned, the first index is 0.
pageSize Int!
Number of items per page.
nextPageIndex Int
Index of the next page, when none is available null.
previousPageIndex Int
Index of the previous page, first index is 0, if currently on first page, the value will be null.
isLastPage Boolean!
Indicates whether this is the last page.
isFirstPage Boolean!
Indicates whether this is the first page.
entries [Server!]!
Resulting paginated items.
Example
{
  "entriesTotalCount": 1089,
  "pageCount": 55,
  "currentPageIndex": 1,
  "pageSize": 50,
  "nextPageIndex": 2,
  "previousPageIndex": 0,
  "isLastPage": false,
  "isFirstPage": false,
  "entries": [Server]
}

PaginatedSubscriptionResponse

Fields
Field Name Description
entriesTotalCount Int!
Total number of items in the full result set.
pageCount Int!
Total number of pages which constitute the full result set.
currentPageIndex Int!
Current page index which was returned, the first index is 0.
pageSize Int!
Number of items per page.
nextPageIndex Int
Index of the next page, when none is available null.
previousPageIndex Int
Index of the previous page, first index is 0, if currently on first page, the value will be null.
isLastPage Boolean!
Indicates whether this is the last page.
isFirstPage Boolean!
Indicates whether this is the first page.
entries [Subscription!]!
Resulting paginated items.
Example
{
  "entriesTotalCount": 1089,
  "pageCount": 55,
  "currentPageIndex": 1,
  "pageSize": 50,
  "nextPageIndex": 2,
  "previousPageIndex": 0,
  "isLastPage": false,
  "isFirstPage": false,
  "entries": [Subscription]
}

Payment

Description

Information about subscription billing cycle. Only available for the subscription of the type Prepaid.

Fields
Field Name Description
status PaymentStatus!
Status of the payment.
paidOn DateTime
The day on which the payment was made, following the ISO 8601 standard. Null if the payment is not yet made.
method PaymentMethod
Provides information about the payment method associated with the payment. Null if the payment is not yet made.
Example
{
  "status": "PAID",
  "paidOn": "2025-12-01T10:23:43.161Z",
  "method": "BANK_TRANSFER"
}

PerServerTraffic

Fields
Field Name Description
server Server!
The server for which these traffic statistics apply.
traffic AggregatedTraffic!
Traffic statistics for this server over the specified time period.
Example
{
  "server": Server,
  "traffic": AggregatedTraffic
}

PerformServerPowerActionResponse

Fields
Field Name Description
server Server!
Example
{"server": Server}

Period

Description

Object representing a period of time.

Fields
Field Name Description
from DateTime!
The starting date of the period.
to DateTime!
The ending date of the period.
Example
{
  "from": "2025-06-01T10:23:43.161Z",
  "to": "2025-12-01T10:23:43.161Z"
}

Port

Fields
Field Name Description
capacity Float!
The capacity of the port in Gbps.
Example
{"capacity": 987.65}

Post

Fields
Field Name Description
id Int!
The integer ID of the post.
contents String!
The text contents of the post.
createdAt DateTime!
The date the post was created.
email String!
The email of the post author.
fullName String!
The name of the post author.
postBy SupportRequestPostBy!
The author group of the post author, staff or user.
Example
{
  "id": 987,
  "contents": "Server RAM upgrade request, please upgrade the RAM to 1TB.",
  "createdAt": "2025-12-01T10:23:43.161Z",
  "email": "example@datapacket.com",
  "fullName": "John Doe",
  "postBy": "USER"
}

PostInstallScript

Fields
Field Name Description
id ID!
Post-install script ID.
name String!
Post-install script name.
createdAt DateTime!
Creation timestamp.
updatedAt DateTime!
Last update timestamp.
content String!
Script content as plain text.
isAutoSelected Boolean!
When enabled, the script runs automatically on installations that come through an account manager or support.
Example
{
  "id": "2d2af78a-cc03-424f-985c-d6500754a0ed",
  "name": "log-time-script",
  "createdAt": "2025-03-12T07:44:56.411Z",
  "updatedAt": "2025-03-14T09:51:42.100Z",
  "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
  "isAutoSelected": true
}

ProvisionServerResponse

Fields
Field Name Description
server Server!
Server instance details after successful provisioning.
Example
{"server": Server}

ProvisioningConfiguration

Fields
Field Name Description
configurationId ID!
The unique identifier for the server configuration.
memory Int!
The amount of memory allocated in GB.
storage [Storage!]!
List of storage devices with details about capacity and type.
cpus [Cpu!]!
List of CPUs with their specifications.
cpuBenchmarkScore Int
A benchmark score from the CPU Benchmark database that reflects the multicore performance of this specific CPU configuration (including socket count). Multi-socket configurations are benchmarked separately from single-socket systems. Higher values indicate stronger performance. The score may not exist for very new or less common CPU configurations.
gpus [Gpu!]!
List of GPUs if present.
uplink Uplink!
Network port capacity.
monthlyHwPrice Money!
Per-month hardware cost for the server configuration.
dailyHwPrice Money!
Per-day hardware cost for the server configuration.
location Location!
Location information of the server.
stockCount Int!
Number of servers with this configuration that are immediately available for provisioning.
Example
{
  "configurationId": "36shlfd-prg",
  "memory": 64,
  "storage": [Storage],
  "cpus": [Cpu],
  "cpuBenchmarkScore": 56981,
  "gpus": [Gpu],
  "uplink": Uplink,
  "monthlyHwPrice": Money,
  "dailyHwPrice": Money,
  "location": Location,
  "stockCount": 10
}

Ram

Fields
Field Name Description
count Int!
The number of RAMs is now determined by the length of the RAM list. This value is always 1.
size Int!
RAM size in GB.
Example
{"count": 1, "size": 32}

ReverseDnsRecordResponse

Fields
Field Name Description
ip IpAddress!
IP address of the reverse DNS (PTR) record
hostname String
Hostname of the reverse DNS (PTR) record, or null, when there is no such record.
Example
{"ip": IpAddress, "hostname": "example.com."}

Server

Fields
Field Name Description
name String!
Server name is used to uniquely identify each server. Format: DP-12345
alias String
Custom alias for your server. Can be set via setServerAlias or in the client panel.
hostname String
location Location!
uptime Int!
How long your system has been running in days.
powerStatus PowerStatus!
status ServerStatus!
Use statusV2 instead.
statusV2 ServerStatusV2!
network Network!
hardware Hardware!
system System!
trafficPlan TrafficPlan!
tags [ServerTag!]!
billing Billing!
Contains information related to the server subscription, including the price of the server.
Example
{
  "name": "DP-12345",
  "alias": "Load Balancer 01",
  "hostname": "petermarlowe-45",
  "location": "London",
  "uptime": 123,
  "powerStatus": "ON",
  "status": "PROVISIONING",
  "statusV2": "WAITING",
  "network": Network,
  "hardware": Hardware,
  "system": System,
  "trafficPlan": TrafficPlan,
  "tags": [ServerTag],
  "billing": Billing
}

ServerLinksConfigurationTask

Fields
Field Name Description
taskId ID!
Task ID of the server links configuration task. This ID is used to identify the task in the system.
status ServerLinksConfigurationStatus!
Example
{"taskId": "4", "status": "PENDING"}

ServerTag

Fields
Field Name Description
key String!
value String!
Example
{
  "key": "abc123",
  "value": "xyz789"
}

SetReverseDnsRecordResponse

Fields
Field Name Description
ip IpAddress!
IP address of the reverse DNS (PTR) record
Example
{"ip": IpAddress}

SetServerAliasResponse

Fields
Field Name Description
server Server!
Example
{"server": Server}

SetServerBootDeviceResponse

Fields
Field Name Description
server Server!
Example
{"server": Server}

SetServerPrimaryIpResponse

Fields
Field Name Description
server Server!
Example
{"server": Server}

Storage

Fields
Field Name Description
size Int!
The storage capacity in GB.
type StorageType!
The type of the storage device (e.g., SSD, HDD).
Example
{"size": 500, "type": "SSD"}

Subscription

Description

Represents an active service agreement for one or more resources (such as servers or add-ons) that are billed together on a recurring basis. A subscription groups related items, tracks their billing cycle, and manages renewal, upgrades, or cancellations as a single unit.

Fields
Field Name Description
name String!
Unique identifier of the subscription.
type SubscriptionType!
The type of subscription. Currently supported: PREPAID and TRIAL.
subtotal Float!
The total cost of the subscription items, excluding any applicable taxes.
currency Currency!
The currency in which the subscription is priced.
billingCycle BillingCycle
Information about subscription billing cycle. Only available for the subscription of the type PREPAID.
createdAt DateTime!
The date when the subscription was created.
subscriptionItems [SubscriptionItem!]!
The individual items included in the subscription. Only contains recurring items.
invoices [Invoice!]!
Invoices associated with the subscription.
Example
{
  "name": "abc123",
  "type": "PREPAID",
  "subtotal": 987.65,
  "currency": "USD",
  "billingCycle": BillingCycle,
  "createdAt": "2025-12-01T10:23:43.161Z",
  "subscriptionItems": [SubscriptionItem],
  "invoices": [Invoice]
}

SubscriptionItem

Fields
Field Name Description
description String
A brief description of the subscription item.
price Float!
The price of the subscription item excluding any applicable taxes.
currency Currency!
The currency in which the subscription item is priced.
type SubscriptionItemType!
The type of the subscription item.
subscriptionItemDetail SubscriptionItemDetail!
Additional details about the subscription item.
Example
{
  "description": "Server DP-99999",
  "price": 987.65,
  "currency": "USD",
  "type": "SERVER",
  "subscriptionItemDetail": SubscriptionItemDetail
}

SubscriptionItemDetail

Description

Additional details about the subscription item.

Fields
Field Name Description
server Server
The associated server, if applicable.
trafficPlan TrafficPlan
The associated traffic plan, if applicable.
Example
{
  "server": Server,
  "trafficPlan": TrafficPlan
}

SupportRequest

Fields
Field Name Description
id Int!
The integer ID of the support request.
subject String!
The subject of the support request.
status SupportRequestStatus!
The status of the support request.
createdAt DateTime!
The date the support request was created.
updatedAt DateTime!
The date the support request was last updated.
numberOfReplies Int!
Number of replies in the request.
lastReplyAt DateTime!
The date of the last reply in the request.
fullName String!
The name of the support ticket author.
email String!
The email of the support request author.
category SupportRequestCategory
Category of the support request.
posts [Post!]
The messages contained in the support request.
Example
{
  "id": 123,
  "subject": "RAM upgrade request.",
  "status": "OPEN",
  "createdAt": "2025-06-01T10:23:43.161Z",
  "updatedAt": "2025-12-01T10:23:43.161Z",
  "numberOfReplies": 987,
  "lastReplyAt": "2025-12-01T10:23:43.161Z",
  "fullName": "John Doe",
  "email": "example@datapacket.com",
  "category": "NEW",
  "posts": [Post]
}

System

Fields
Field Name Description
raid Raid!
os Os!
Use operatingSystem instead.
operatingSystem OperatingSystem!
Example
{
  "raid": "RAID_1",
  "os": Os,
  "operatingSystem": OperatingSystem
}

Traffic

Fields
Field Name Description
aggregated AggregatedTraffic!
Aggregated traffic statistics for selected servers over the specified time period.
perServer [PerServerTraffic!]!
Traffic statistics for each selected server over the specified time period.
Example
{
  "aggregated": AggregatedTraffic,
  "perServer": [PerServerTraffic]
}

TrafficPlan

Fields
Field Name Description
name String!
The name of the traffic plan.
type TrafficPlanType!
Specifies the type of the traffic plan.
scope TrafficPlanScope!
Specifies whether the traffic plan is pooled or dedicated.
bandwidth Float
Specifies the traffic plan’s bandwidth limit in Gbps, if applicable.
Example
{
  "name": "10 Gbps unmetered",
  "type": "P95",
  "scope": "POOLED",
  "bandwidth": 0.1
}

TrafficStatistics

Fields
Field Name Description
average Float!
Average traffic in bits per second.
last Float!
Last recorded traffic value in bits per second.
p95 Float!
95th percentile traffic value in bits per second.
sum Float!
Sum of all traffic values in bits.
maximum Float!
Maximum traffic value (peak) in bits.
Example
{
  "average": 1910853155,
  "last": 1791401293,
  "p95": 2031241489,
  "sum": 165212363832060,
  "maximum": 2110948261
}

Input

ChangeIpmiPasswordInput

Description

It is not a security best practice to limit the maximum length of a password, but there are different limits set by individual manufacturers. Therefore, we have to set the maximum length to 16 characters.

Fields
Input Field Description
server ServerInput!
password String!
Minimum 10, maximum 16 characters long, at least one number.
Example
{"server": ServerInput, "password": "1234567890abcdef"}

ConfigureServerLinksInput

Fields
Input Field Description
server ServerInput!
linkAggregation Boolean!
Enable or disable link aggregation. Link aggregation combines multiple physical network connections into a single logical connection (also knowns as LAG).
Example
{"server": ServerInput, "linkAggregation": false}

CreatePostInstallScriptInput

Fields
Input Field Description
name String!
Post-install script name.
content String!
Script content as plain text.
isAutoSelected Boolean
When enabled, the script runs automatically on installations that come through an account manager or support.
Example
{
  "name": "log-time-script",
  "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
  "isAutoSelected": true
}

CreateSupportRequestInput

Fields
Input Field Description
message String!
subject SupportRequestSubject!
Subject of the support request.
priority SupportRequestPriority!
Priority requested for of the support request.
servers [String!]
Unique server identifier. Format: DP-12345.
sources [String!]
Network issues only - Location of the source for the faulty network requests.
destinations [String!]
Network issues only - Location of the destination for the faulty network requests.
Example
{
  "message": "Server cannot connect to Chicago internet exchanges. Please check the network configuration. Further details...",
  "subject": "HARDWARE_ISSUE",
  "priority": "NORMAL",
  "servers": ["DP-12345", "DP-12346"],
  "sources": ["Prague", "Chicage"],
  "destinations": ["162.151.210.193"]
}

DecimalRange

Fields
Input Field Description
min Decimal
The inclusive minimum value of the decimal range.
max Decimal
The inclusive maximum value of the decimal range.
Example
{"min": "10.12", "max": "20.34"}

DeletePostInstallScriptInput

Fields
Input Field Description
id ID!
Post-install script ID.
Example
{"id": "2d2af78a-cc03-424f-985c-d6500754a0ed"}

IntRange

Fields
Input Field Description
min Int
The inclusive minimum value of the integer range.
max Int
The inclusive maximum value of the integer range.
Example
{"min": 10, "max": 20}

InvoiceInput

Fields
Input Field Description
invoiceNumber String!
Unique alpha numeric code identifying invoice.
Example
{"invoiceNumber": "DP000123"}

InvoicesInput

Fields
Input Field Description
invoiceNumber_in [String!]
Array of invoice numbers for filtering.
currency_in [Currency!]
Array of supported currencies for filtering.
paymentStatus_in [PaymentStatus!]
Array of payment statuses for filtering.
Example
{
  "invoiceNumber_in": ["DP000123"],
  "currency_in": ["USD"],
  "paymentStatus_in": ["PAID"]
}

PaginatedInvoicesInput

Fields
Input Field Description
pageIndex Int
First page has pageIndex value 0. Default = 0
pageSize Int!
The maximum number of results per page is 50. Default = 50
filter InvoicesInput
Example
{"pageIndex": 3, "pageSize": 50, "filter": InvoicesInput}

PaginatedPostInstallScriptsInput

Fields
Input Field Description
pageIndex Int
First page has pageIndex value 0. Default = 0
pageSize Int!
The maximum number of results per page is 50. Default = 50
filter PostInstallScriptsInput
Example
{
  "pageIndex": 123,
  "pageSize": 123,
  "filter": PostInstallScriptsInput
}

PaginatedServersInput

Fields
Input Field Description
pageIndex Int
First page has pageIndex value 0. Default = 0
pageSize Int!
The maximum number of results per page is 50. Default = 50
filter ServersInput
Example
{"pageIndex": 3, "pageSize": 50, "filter": ServersInput}

PaginatedSubscriptionsInput

Fields
Input Field Description
pageIndex Int
First page has pageIndex value 0. Default = 0
pageSize Int!
The maximum number of results per page is 50. Default = 50
filter SubscriptionsInput
Example
{
  "pageIndex": 123,
  "pageSize": 50,
  "filter": SubscriptionsInput
}

PaginatedSupportRequestsInput

Fields
Input Field Description
pageIndex Int
First page has pageIndex value 0. Default = 0
pageSize Int!
The maximum number of results per page is 50. Default = 50
filter SupportRequestsInput
Example
{
  "pageIndex": 123,
  "pageSize": 123,
  "filter": SupportRequestsInput
}

PerformServerPowerActionInput

Fields
Input Field Description
action PowerAction!
server ServerInput!
Example
{"action": "ON", "server": ServerInput}

PostInstallScriptsInput

Fields
Input Field Description
name_in [String!]
Array of post-install script names for filtering.
Example
{"name_in": ["xyz789"]}

ProvisionServerInput

Fields
Input Field Description
configurationId ID!
Server configuration id.
billingPeriod ProvisioningBillingPeriod!
Specifies the billing method for the provisioned server.
osImageId ID!
The identifier of the image to be used for provisioning.
sshKeyNames [String!]
List of SSH keys to be injected into the server during provisioning. Specify the titles of the SSH keys. You can find them in the Security settings of the client panel.
disableLinkAggregation Boolean
Disable link aggregation. Link aggregation combines multiple physical network connections into a single logical connection (also knowns as LAG).
postInstallScriptName String
You can use a post-install script to customize your server installation to fit your requirements—like installing extra packages, joining your cluster, or changing default access credentials. This script will execute at the end of the server installation, right before we hand the server over to you. We'll include the status of the script execution in the email with your access details. If the script fails, the email will specify the exit code. If you don't explicitly specify a script name, no script will be run. Post-install scripts have a 10-minute execution timeout and only plain text files are allowed. You can manage your post-install scripts in the Provisioning settings section of the Client panel.
Example
{
  "configurationId": "36shlfd-prg",
  "billingPeriod": "DAILY",
  "osImageId": "1me7736",
  "sshKeyNames": ["My Key 1", "My Key 2"],
  "disableLinkAggregation": true,
  "postInstallScriptName": "xyz789"
}

ProvisioningConfigurationsInput

Fields
Input Field Description
cpuName_in [String!]
Filter by CPU name.
cpuCount IntRange
Filter by the number of CPUs.
cpuCores IntRange
Filter by the number of CPU cores.
cpuThreads IntRange
Filter by the number of CPU threads.
cpuBenchmarkScore IntRange
Filter servers based on their multithread CPU benchmark score for the specific CPU configuration (including socket count). (Integer Range) Note: Scores may not be available for all configurations. Source for the data: cpubenchmark.net
memory IntRange
Filter by the amount of RAM in GB.
gpuCount IntRange
Filter by the number of GPUs.
gpuMemory IntRange
Filter by the GPU memory (VRAM) in GB.
storageRequirements [ProvisioningStorageRequirementInput!]
Filter by storage requirements. An array of storage requirements, where each requirement must be met by the server configuration.
uplinkTotalCapacity IntRange
Filter by the total uplink capacity in Gbps.
monthlyHwPriceAmount DecimalRange
Filter by the monthly hardware price amount.
dailyHwPriceAmount DecimalRange
Filter by the daily hardware price amount.
locationIdentifier_in [LocationIdentifier!]
Filter by location identifier.
region_in [Region!]
Filter by region.
stockCount IntRange
Filter by the number of servers in stock.
Example
{
  "cpuName_in": ["EPYC 9754"],
  "cpuCount": {"min": 2, "max": 4},
  "cpuCores": {"min": 32, "max": 64},
  "cpuThreads": {"min": 64, "max": 128},
  "cpuBenchmarkScore": {"min": 40000, "max": 100000},
  "memory": {"min": 32},
  "gpuCount": {"max": 0},
  "gpuMemory": {"min": 40},
  "storageRequirements": [
    ProvisioningStorageRequirementInput
  ],
  "uplinkTotalCapacity": {"min": 40},
  "monthlyHwPriceAmount": {"max": "6"},
  "dailyHwPriceAmount": {"max": "250"},
  "locationIdentifier_in": ["FRANKFURT", "AMSTERDAM", "PRAGUE"],
  "region_in": ["US"],
  "stockCount": {"min": 5}
}

ProvisioningStorageRequirementInput

Fields
Input Field Description
type_in [StorageInputType!]
Storage type.
totalSize IntRange
Total storage size in GB.
count IntRange
Number of storage devices.
Example
{"type_in": ["SSD"], "totalSize": {"min": 500}, "count": {"min": 2}}

ReverseDnsRecordInput

Fields
Input Field Description
ip String!
IP address for the reverse DNS (PTR) record. Currently only IPv4 addresses are supported.
Example
{"ip": "123.213.231.132"}

ServerInput

Fields
Input Field Description
name String
Unique server identifier. Format: DP-12345.
alias String
Make sure all server aliases are unique, otherwise you will get an error.
ip String
One of the IP adresses of the server
ipmiIp String
The IPMI IP address
tag ServerTagInput
The key-value tag pair which is unique for the server
Example
{
  "name": "DP-12345",
  "alias": "Load Balancer 01",
  "ip": "123.213.231.132",
  "ipmiIp": "10.110.120.130",
  "tag": ServerTagInput
}

ServerLinksConfigurationTaskInput

Fields
Input Field Description
taskId ID!
Example
{"taskId": 4}

ServerTagInput

Fields
Input Field Description
key String!
The key of the tag. Can only contain alphanumeric characters, hyphens, underscores and periods. Maximal length is 100 characters.
value String!
The value of the tag. Maximum length of 150 characters.
Example
{"key": "env", "value": "production"}

ServersInput

Fields
Input Field Description
name_in [String!]
The name of the server.
alias_in [String!]
The alias of the server.
location_in [String!]
The location of the server.
region_in [String!]
The region of the server.
serverStatus_in [ServerStatus!]
Use serverStatusV2_in instead.
The status of the server.
serverStatusV2_in [ServerStatusV2!]
The status of the server.
powerStatus_in [PowerStatus!]
The power status of the server.
ip_in [String!]
One of the IP adresses is assigned to the server.
ipmiIp_in [String!]
One of the IP adresses is assigned to the server, has to be adressed to IPMI interface.
tags_in [ServerTagInput!]
Server has at least one of the tags included here (must match both key and value).
tags_each [ServerTagInput!]
Use tag_value condition instead, it's equivalent.
Server has all of the tags included here (must match both key and value).
tag_key [String!]
Server has tags listed in this filter.
tag_value [ServerTagInput!]
Server has all of the tags included here (must match both key and value).
Example
{
  "name_in": ["DP-12345"],
  "alias_in": ["Load Balancer 01"],
  "location_in": ["London"],
  "region_in": ["Europe"],
  "serverStatus_in": ["PROVISIONING"],
  "serverStatusV2_in": ["WAITING"],
  "powerStatus_in": ["ON"],
  "ip_in": ["123.213.231.132"],
  "ipmiIp_in": ["10.110.120.130"],
  "tags_in": [ServerTagInput],
  "tags_each": [ServerTagInput],
  "tag_key": ["env"],
  "tag_value": [ServerTagInput]
}

SetDefaultTrafficPlanInput

Fields
Input Field Description
type DefaultTrafficPlanType!
Specifies the type of the default traffic plan.
bandwidth Float!
Specifies the default traffic plan’s bandwidth limit in GB. It must be 0.1, 0.2, ..., 1 or an integer between 2 and 40.
Example
{"type": "P95", "bandwidth": 0.1}

SetReverseDnsRecordInput

Fields
Input Field Description
ip String!
IP address for the reverse DNS (PTR) record. Currently only IPv4 addresses are supported.
hostname String
Hostname for the PTR record or null to delete the current record. Must end with a dot.
Example
{"ip": "123.213.231.132", "hostname": "example.com."}

SetServerAliasInput

Fields
Input Field Description
alias String
Choose unique value so you can use the alias in ServerInput. Set to null to remove alias.
server ServerInput!
Example
{"alias": "Load Balancer 01", "server": ServerInput}

SetServerBootDeviceInput

Fields
Input Field Description
bootDevice BootDevice!
server ServerInput!
Example
{"bootDevice": "DISK", "server": ServerInput}

SetServerPrimaryIpInput

Fields
Input Field Description
ip String!
server ServerInput!
Example
{"ip": "192.168.0.1", "server": ServerInput}

SetServerTagInput

Fields
Input Field Description
server ServerInput!
The server to set the tag for.
key String!
The key of the tag. Can only contain alphanumeric characters, hyphens, underscores and periods. The maximum length is 100 characters.
value String
The value of the tag. Maximum length of 150 characters.
Example
{
  "server": ServerInput,
  "key": "env",
  "value": "production"
}

SetServerTagsInput

Fields
Input Field Description
server ServerInput!
The server to set the tags for.
tags [ServerTagInput!]!
The tags to set. A server is allowed to have maximum of 10 tags. Note that both key and value are trimmed of whitespace at the start and end.
Example
{
  "server": ServerInput,
  "tags": [ServerTagInput]
}

SubscriptionInput

Fields
Input Field Description
name String!
Unique alpha numeric code identifying subscription.
Example
{"name": "7"}

SubscriptionsInput

Fields
Input Field Description
name_in [String!]
Array of subscription names for filtering.
currency_in [Currency!]
Array of supported currencies for filtering.
type_in [SubscriptionType!]
Array of subscription types for filtering.
Example
{"name_in": ["7"], "currency_in": ["USD"], "type_in": ["PREPAID"]}

SupportRequestInput

Fields
Input Field Description
id Int!
The integer ID of the support request.
Example
{"id": 123}

SupportRequestReplyInput

Fields
Input Field Description
id Int!
The integer ID of the support request to add message to.
message String!
The text of the message to add to the post.
Example
{"id": 123, "message": "Can you also upgrade the storage to 24 8TB NVMe SSDs?"}

SupportRequestsInput

Fields
Input Field Description
status SupportRequestStatus
Status of the support request.
categories_in [SupportRequestCategory!]
Category of the support request.
Example
{"status": "OPEN", "categories_in": ["NEW"]}

TrafficInput

Fields
Input Field Description
from DateTime!
The date from which the traffic should be displayed.
to DateTime!
The date to which the traffic should be displayed, must be date after the to value.
filter TrafficServersInput
Example
{
  "from": "2025-12-01T10:23:43.161Z",
  "to": "2025-12-01T10:23:43.161Z",
  "filter": TrafficServersInput
}

TrafficServersInput

Fields
Input Field Description
name_in [String!]
alias_in [String!]
location_in [String!]
region_in [String!]
ip_in [String!]
ipmiIp_in [String!]
Example
{
  "name_in": ["DP-12345"],
  "alias_in": ["Load Balancer 01"],
  "location_in": ["London"],
  "region_in": ["Europe"],
  "ip_in": ["123.213.231.132"],
  "ipmiIp_in": ["10.110.120.130"]
}

UpdatePostInstallScriptInput

Fields
Input Field Description
id ID!
Post-install script ID.
name String
Post-install script name.
content String
Script content as plain text.
isAutoSelected Boolean
When enabled, the script runs automatically on installations that come through an account manager or support.
Example
{
  "id": "2d2af78a-cc03-424f-985c-d6500754a0ed",
  "name": "log-time-script",
  "content": "#!/bin/sh\nset -e\nexec > /root/logfile.log 2>&1\necho \"Server's current timestamp is: $(date '+%F %T %Z')\"",
  "isAutoSelected": true
}

Enum

BillingIntervalUnit

Description

Specifies the time unit for subscription billing intervals.

Values
Enum Value Description

MONTH

A billing period that recurs every month.

YEAR

A billing period that recurs every year.

DAY

A billing period that recurs every day.
Example
"MONTH"

BootDevice

Description

Type of the server boot device.

Values
Enum Value Description

DISK

Set boot from BIOS default boot device.

PXE

Set boot from PXE.

SAFE_MODE

Set boot from BIOS default boot device, request Safe Mode.

DIAGNOSTIC

Set boot from diagnostic partition.

BIOS

Set boot into BIOS setup.
Example
"DISK"

Currency

Description

Supported currencies.

Values
Enum Value Description

USD

United States dollar.

GBP

Pound sterling.

EUR

Euro.
Example
"USD"

DdosShieldLevel

Description

Level of protection available for the DDoS Shield.

Values
Enum Value Description

VOLUMETRIC

Deployed automatically on our edge routers and detects and filters out DDoS attacks through firewall rules. Efficient against NTP, DNS, Memcached, and other simple amplification attacks.

FULL

Deployed on dedicated anti-DDoS hardware in each data center. It intercepts L4 protocol-based attacks such as TCP SYN floods and filters malicious packets using custom mitigation techniques.

OFF

No DDoS protection.
Example
"VOLUMETRIC"

DefaultTrafficPlanType

Values
Enum Value Description

P95

PEAK_UNMETERED

Example
"P95"

InvoiceItemType

Description

Types of items which can appear on invoice.

Values
Enum Value Description

SERVER

Regular recurring fee charged for server.

IP

One time or recurring fee charged for IP address.

FEE

Additional fee which is not covered by other types.

DISCOUNT

Discount applied to subscription.

DDOS

DDOS protection fee charge.

BGP

Charge for BGP service setup.

CREDIT

Credit added to subscription to be used in further charges.

TRAFFIC

Recurring price charged for outgoing traffic usage.

TRAFFIC_OVERAGE

Extra fee, if the traffic usage exceeds the used plan.

OTHER

Any other subscription item (not charge) not covered by other types.
Example
"SERVER"

InvoiceType

Description

Type of the invoice, the type can change based on further actions.

Values
Enum Value Description

DRAFT

A preliminary payment request, typically issued for services to be rendered in the upcoming billing period. Draft invoices are not intended for tax reporting or compliance purposes.

TAX

An invoice provided to the customer after a service has been provided, used for tax reporting and compliance purposes. Draft invoices are typically converted to tax invoices upon receiving payment for the services rendered.
Example
"DRAFT"

IpAddressType

Description

Currently there are two versions of IP addresses in use on the Internet: IPv4 and IPv6.

Values
Enum Value Description

IPV4

IPv4 address type.

IPV6

IPv6 address type.
Example
"IPV4"

LocationIdentifier

Description

Transliterated machine-readable version of location name.

Values
Enum Value Description

AMSTERDAM

Amsterdam, Netherlands, Europe

ASHBURN

Ashburn, United States, North America

ATHENS

Athens, Greece, Europe

ATLANTA

Atlanta, United States, North America

AUCKLAND

Auckland, New Zealand, Asia-Pacific

BERLIN

Berlin, Germany, Europe

BOGOTA

Bogotá, Colombia, Latin America

BORDEAUX

Bordeaux, France, Europe

BOSTON

Boston, United States, North America

BRATISLAVA

Bratislava, Slovakia, Europe

BRUSSELS

Brussels, Belgium, Europe

BUCHAREST

Bucharest, Romania, Europe

BUDAPEST

Budapest, Hungary, Europe

BUENOS_AIRES

Buenos Aires, Argentina, Latin America

CHICAGO

Chicago, United States, North America

COPENHAGEN

Copenhagen, Denmark, Europe

DALLAS

Dallas, United States, North America

DENVER

Denver, United States, North America

DUBLIN

Dublin, Ireland, Europe

FRANKFURT

Frankfurt, Germany, Europe

FUJAIRAH

Fujairah, United Arab Emirates, Middle East & Africa

HONG_KONG

Hong Kong, Asia-Pacific

HOUSTON

Houston, United States, North America

ISTANBUL

Istanbul, Turkey, Middle East & Africa

JOHANNESBURG

Johannesburg, South Africa, Middle East & Africa

KUALA_LUMPUR

Kuala Lumpur, Malaysia, Asia-Pacific

KYIV

Kyiv, Ukraine, Europe

LAGOS

Lagos, Nigeria, Middle East & Africa

LIMA

Lima, Peru, Latin America

LISBON

Lisbon, Portugal, Europe

LONDON

London, United Kingdom, Europe

LOS_ANGELES

Los Angeles, United States, North America

MADRID

Madrid, Spain, Europe

MANCHESTER

Manchester, United Kingdom, Europe

MARSEILLE

Marseille, France, Europe

MCALLEN

McAllen, United States, North America

MELBOURNE

Melbourne, Australia, Asia-Pacific

MIAMI

Miami, United States, North America

MILAN

Milan, Italy, Europe

MONTREAL

Montréal, Canada, North America

NEW_YORK

New York, United States, North America

OSLO

Oslo, Norway, Europe

PALERMO

Palermo, Italy, Europe

PARIS

Paris, France, Europe

PRAGUE

Prague, Czechia, Europe

QUERETARO

Querétaro, Mexico, Latin America

SAN_JOSE

San Jose, United States, North America

SANTIAGO

Santiago, Chile, Latin America

SAO_PAULO

São Paulo, Brazil, Latin America

SEATTLE

Seattle, United States, North America

SEOUL

Seoul, South Korea, Asia-Pacific

SINGAPORE

Singapore, Asia-Pacific

SOFIA

Sofia, Bulgaria, Europe

STOCKHOLM

Stockholm, Sweden, Europe

SYDNEY

Sydney, Australia, Asia-Pacific

TEL_AVIV

Tel Aviv, Israel, Middle East & Africa

TOKYO

Tokyo, Japan, Asia-Pacific

TORONTO

Toronto, Canada, North America

VANCOUVER

Vancouver, Canada, North America

VIENNA

Vienna, Austria, Europe

WARSAW

Warsaw, Poland, Europe

ZAGREB

Zagreb, Croatia, Europe

ZURICH

Zürich, Switzerland, Europe
Example
"AMSTERDAM"

PaymentMethod

Description

The payment method.

Values
Enum Value Description

BANK_TRANSFER

Bank transfer.

CARD

Card payment.

DP_BALANCE

Payment with DP balance.

PAYPAL

PayPal payment.

CREDIT_NOTE

Cancelled via Credit note.
Example
"BANK_TRANSFER"

PaymentStatus

Description

description

Values
Enum Value Description

PAID

Payment has been made and received.

NOT_PAID

Payment has not been made or received.

PAST_DUE

Payment is past due date.
Example
"PAID"

PowerAction

Description

IPMI power actions that can be performed on a server. For detailed information, see the IPMI specification.

Values
Enum Value Description

ON

Power on the server.

OFF

Power off the server. WARNING: This command does not initiate a clean shutdown of the operating system prior to powering down the system

RESET

This command will perform a hard reset.

SOFT

Initiate a soft-shutdown of OS via ACPI.

CYCLE

Power cycle involves cutting power to the system for at least one second and then restoring it.
Example
"ON"

PowerStatus

Description

Power status of the device.

Values
Enum Value Description

ON

OFF

UNKNOWN

Example
"ON"

ProvisioningBillingPeriod

Description

See Billing period in the Server Provisioning section for more information.

Values
Enum Value Description

DAILY

Daily billing with post-paid charges and per-TB traffic pricing. Requires $100 minimum balance. See Daily billing for more information.

MONTHLY

Monthly billing with payment before service period (pre-paid)
Example
"DAILY"

Raid

Description

RAID stands for redundant array of independent disks. It is a way of storing the same data on multiple hard drives to improve performance and increase data availability.

Values
Enum Value Description

OTHER

NONE

CUSTOM

RAID_0

This type of RAID uses striping, which means that data is split across multiple disks and written in parallel. This can improve performance because multiple disks can be accessed at the same time. However, RAID 0 provides no data redundancy, so if one of the disks fails, all data on the array is lost.

RAID_1

This type of RAID is also known as mirroring. It involves writing the same data to multiple disks, so that if one disk fails, the data can still be accessed from the other disk. This provides improved data availability, but does not improve performance.

RAID_5

This type of RAID uses striping and parity, which is a method of error checking. Data is striped across multiple disks, and a parity block is also written to each disk. This allows the array to continue functioning even if one of the disks fails, because the missing data can be reconstructed using the parity information. However, writing data to a RAID 5 array can be slower than writing to a single disk.

RAID_6

This is similar to RAID 5, but it uses double parity, which provides even greater data protection. It can continue functioning even if two disks fail at the same time. However, this comes at the cost of reduced performance.

RAID_10

This is a combination of RAID 1 and RAID 0. It involves mirroring data across multiple disks, and then striping the mirrored data across even more disks. This provides both improved performance and data availability. However, it requires at least four disks.
Example
"OTHER"

Region

Values
Enum Value Description

MEA

Middle East & Africa.

LA

Latin America.

AP

Asia-Pacific.

NA

North America.

EU

Europe.
Example
"MEA"

ServerLinksConfigurationStatus

Description

Server links configuration task status.

Values
Enum Value Description

PENDING

Task is pending and has not started yet. This status is set when the task is created.

IN_PROGRESS

Task is currently in progress. This status is set when the task is started and is being executed.

SUCCESS

Task has been completed successfully. This status is set when the task is completed without any errors.

FAILED

Task has failed. This status is set when the task encounters an error and cannot be completed. Please try again later or contact support for more information.
Example
"PENDING"

ServerStatus

Description

Deprecated in favour of ServerStatusV2.
Information about the server's production status.

Values
Enum Value Description

PROVISIONING

Use ServerStatusV2.PROVISIONING instead.
Server is being prepared for production. It may include hardware configuration, OS installation, and other tasks.

INSTALLING

Use ServerStatusV2.WAITING instead.
Server is being installed with the OS.

IN_PRODUCTION

Use ServerStatusV2.ACTIVE instead.
Server is configured and available for use. Access details were delivered to the customer.

IN_MAINTENANCE

Use ServerStatusV2.MAINTENANCE instead.
There is a maintenance task in progress such as OS reinstall, hardware replacement or reconfiguration.

DISCONNECTED

This status is no longer used.
Server is disconnected from the network. This is usually due to unpaid invoices.
Example
"PROVISIONING"

ServerStatusV2

Description

Information about the server's production status.

Values
Enum Value Description

WAITING

Server is waiting for initial payment confirmation or other prerequisites before provisioning can proceed. This status typically appears when there are billing-related requirements that need to be fulfilled before the server can be deployed.

PROVISIONING

Server is being prepared for production. This includes hardware allocation, operating system installation, and network configuration. During this state, the server is not yet accessible.

MAINTENANCE

There is a maintenance task in progress such as OS reinstall, hardware replacement, reconfiguration or data center maintenance.

UNREACHABLE

Server is unreachable by our monitoring.

ACTIVE

Server is in production and ready for use. Access details were delivered.
Example
"WAITING"

StorageInputType

Values
Enum Value Description

HDD

SATA_SSD

NVME

Example
"HDD"

StorageType

Description

Type of the storage device.

Values
Enum Value Description

SSD

Use SATA_SSD instead.
A SSD (Solid State Drive) is a type of storage that uses non-volatile memory to store data. SSDs are faster and more reliable than traditional HDDs, but they are also more expensive.

SATA_SSD

A SSD (Solid State Drive) is a type of storage that uses non-volatile memory to store data. SSDs are faster and more reliable than traditional HDDs, but they are also more expensive.

HDD

An HDD (Hard Disk Drive) is a traditional type of storage that uses spinning disks to store data. HDDs are slower and less reliable than SSDs, but they are also less expensive.

NVME

An NVMe (Non-Volatile Memory Express) is a type of SSD that uses the PCIe interface to connect to the motherboard, rather than the SATA interface used by most SSDs. This allows for faster data transfer speeds.

SATADOM

A SATADOM (SATA Disk on Module) is a type of SSD that uses the same interface as a traditional HDD, but is much smaller and more durable. It is commonly used in servers that have limited space for storage devices.

EMMC

An eMMC (Embedded MultiMediaCard) is a type of SSD that is integrated into a device. They are smaller and less expensive than other types of SSDs, but are also slower and have less storage capacity.
Example
"SSD"

SubscriptionItemType

Description

Types of items available for subscription.

Values
Enum Value Description

SERVER

Regular recurring fee charged for server.

IP

One time or recurring fee charged for IP address.

FEE

Additional fee which is not covered by other types.

DDOS

DDOS protection fee charge.

TRAFFIC

Recurring price charged for outgoing traffic usage.

OTHER

Any other subscription item (not charge) not covered by other types.
Example
"SERVER"

SubscriptionType

Description

Defines the payment model and lifecycle of a subscription.

Values
Enum Value Description

PREPAID

A subscription paid in advance for the upcoming service period.

POSTPAID

A subscription billed after the service period has ended.

TRIAL

A temporary trial subscription providing limited access before payment is required.
Example
"PREPAID"

SupportRequestCategory

Description

Category of the support request.

Values
Enum Value Description

NEW

The support request is a new request which has not been assigned category yet.

SALES_INQUIRY

The support request is a sales inquiry.

NETWORK_ISSUE

The support request is a network issue.

TECHNICAL_ISSUE

The support request is a technical issue.

ABUSE_REPORT

The support request is an abuse report.
Example
"NEW"

SupportRequestPostBy

Description

Author group of the post author, staff or user.

Values
Enum Value Description

USER

The post was created by a user.

STAFF

The post was created by a DataPacket staff member.
Example
"USER"

SupportRequestPriority

Description

Priority requested for of the support request.

Values
Enum Value Description

NORMAL

The support request is to be answered by the following day (within 12-24 hours).

HIGH

The support request is to be answered within 2-6 hours.

URGENT

The support request is to be answered as soon as possible.
Example
"NORMAL"

SupportRequestStatus

Description

Status of the support request.

Values
Enum Value Description

OPEN

The support request is open.

CLOSED

The support request is closed and no longer being resolved.
Example
"OPEN"

SupportRequestSubject

Description

Subject of the support request.

Values
Enum Value Description

HARDWARE_ISSUE

The support request is a hardware issue such as faulty hardware.

HARDWARE_OTHER

The support request is a hardware issue different from HARDWARE_ISSUE.

NETWORK_ROUTING

The support request is a network routing issue.

NETWORK_BGP

The support request is a network BGP issue.

NETWORK_ADDITIONAL_IPS

The support request is a network additional IPs issue.

NETWORK_OTHER

The support request is a network issue different from NETWORK_ROUTING, NETWORK_BGP, NETWORK_ADDITIONAL_IPS.

SALES_SERVER_ORDER

The support request is a sales server order issue.

SALES_PRICING

The support request is an inquiry about pricing.

SALES_BANDWIDTH_PLAN

The support request is a sales bandwidth plan issue, such as upgrade or downgrade of server bandwidth plan.

SALES_OTHER

The support request is a sales issue different from SALES_SERVER_ORDER, SALES_PRICING, SALES_BANDWIDTH_PLAN.

SALES_CANCELLATION

The support request is a cancellation issue.

SALES_SERVER_UPGRADE

The support request is a sales server upgrade issue, such as RAM or Storage upgrade.
Example
"HARDWARE_ISSUE"

TrafficPlanScope

Description

The scope of the traffic plan, either POOLED (shared) or SERVER (dedicated).

Values
Enum Value Description

POOLED

SERVER

Example
"POOLED"

TrafficPlanType

Description

The type of the traffic plan.

Values
Enum Value Description

P95

METERED

PEAK_UNMETERED

PEAK_METERED

Example
"P95"

Scalar

Boolean

Description

The Boolean scalar type represents true or false.

DateTime

Description

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.This scalar is serialized to a string in ISO 8601 format and parsed from a string in ISO 8601 format.

Example
"2025-12-01T10:23:43.161Z"

Decimal

Description

Scalar type for high-precision decimal numbers.

Example
Decimal

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

Error

ErrorCode

Description

List of all possible error codes that can be returned by the API. Error codes are accompanied by an error message. See Error handling section for more information.

Values
Enum Value Description

BAD_REQUEST

An error occurred before the GraphQL server could attempt to parse given operation. For example, if the client sends a query with wrong Content-type, the server would return a BAD_REQUEST error.

GRAPHQL_VALIDATION_FAILED

Unable to process a request because it failed to validate the data provided in the request against the server's schema. This error typically occurs when the client sends a query or mutation that contains data that is not in the correct format or is missing required fields. For example, if the server's schema specifies that a certain field must be an integer, but the client sends a string value for that field, the server would return a GRAPHQL_VALIDATION_FAILED error.

NOT_AUTHORIZED

Indicates that the server was unable to process a request because the client is not authorized to perform the requested action. This is typically returned when the client has not provided an authentication token or the token is invalid.

VALIDATION_FAILED

The request is formally valid, but the server can't process it due to internal constraints. For example a password change that doesn't meet the minimum length requirement.

NOT_FOUND

The server was unable to find the requested resource. For example, if you request a server DP-999999, but there is no such server associated with your account, the server would return a NOT_FOUND error.

INTERNAL_SERVER_ERROR

The server encountered an unexpected condition that prevented it from fulfilling the request. This is a general error code that can be caused by a wide range of issues, such as an unhandled exception or a server-side bug. We are monitoring all issues.

REVERSE_DNS_API_NOT_AVAILABLE

The reverse DNS management API is currently under maintenance. Please try again in 5 minutes.

INSUFFICIENT_CREDIT_BALANCE

You do not have enough credit (DP Balance) to perform this action. Please top up your account.

OUT_OF_STOCK

The requested resource is out of stock. Please try again later or contact support for more information.

DAILY_PROVISIONING_QUOTA_EXCEEDED

You've reached your API provisioning quota. Try again tomorrow or contact support to increase your quota.
Example
"BAD_REQUEST"