Brokkr API (1.0.0)

Download OpenAPI specification:

Welcome to the Brokkr Platform API

The Brokkr API provides powerful, programmatic access to manage your infrastructure and deployments through a RESTful interface.

Rate Limits

The API is rate limited to 100 requests per minute. If you exceed this limit, requests will return a 429 status code. If you need a higher limit, please contact support@hydrahost.com.

Authentication

All API requests must be authenticated using an API key. Here's how to get started:

Getting Your API Key

  1. Sign in to your Brokkr account at brokkr.hydrahost.com
  2. Click on your organization name in the sidebar
  3. Select the API Keys tab

    Note: If you don't see the API Keys tab, please contact support@hydrahost.com for access

  4. Click the Create Key button
  5. Copy and securely store your API key

Using Your API Key

To authenticate requests, include your API key in the request headers:

x-api-key: YOUR_API_KEY

V1

List API keys for the active organization

query Parameters
page
integer >= 1
Default: 1
pageSize
integer [ 1 .. 100 ]
Default: 20
sort
string
search
string <= 200 characters
filters
string
createdByEmail
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create a new API key for the active organization

Request Body schema: application/json

Body

name
required
string [ 1 .. 100 ] characters
expiresIn
number

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "expiresIn": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "start": "string",
  • "prefix": "string",
  • "userId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "enabled": true,
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "requestCount": 0,
  • "remaining": 0,
  • "lastRequest": "2019-08-24T14:15:22Z",
  • "metadata": "string",
  • "createdByName": "string",
  • "createdByEmail": "string",
  • "key": "string"
}

Get a specific API key

path Parameters
apiKeyId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "start": "string",
  • "prefix": "string",
  • "userId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "enabled": true,
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "requestCount": 0,
  • "remaining": 0,
  • "lastRequest": "2019-08-24T14:15:22Z",
  • "metadata": "string",
  • "createdByName": "string",
  • "createdByEmail": "string"
}

Delete an API key

path Parameters
apiKeyId
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get hello message

Responses

Response samples

Content type
application/json
"string"

Get current authenticated user

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "emailVerified": true,
  • "name": "string",
  • "image": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "role": "string",
  • "banned": true,
  • "banReason": "string",
  • "banExpires": "2019-08-24T14:15:22Z"
}

Get paginated baremetal devices for the current organization

query Parameters
page
integer >= 1
Default: 1
pageSize
integer [ 1 .. 100 ]
Default: 20
sort
string
search
string <= 200 characters
filters
string
role
string
status
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get baremetal device by ID

path Parameters
deviceId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "role": "string",
  • "location": "string",
  • "locationId": 0,
  • "zoneName": "string",
  • "siteId": 0,
  • "siteName": "string",
  • "status": {
    },
  • "powerStatus": {
    },
  • "customer": {
    },
  • "dcim": {
    },
  • "listing": {
    },
  • "networking": {
    },
  • "specs": {
    },
  • "tenant": {
    },
  • "availableOperatingSystems": [
    ],
  • "storageLayouts": {
    },
  • "defaultDiskLayouts": [
    ],
  • "deployment": {
    },
  • "reservationInvite": {
    },
  • "ecoMode": false
}

Update baremetal device info (nickname, eco mode)

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

nickname
string
ecoMode
boolean

Responses

Request samples

Content type
application/json
{
  • "nickname": "string",
  • "ecoMode": true
}

Response samples

Content type
application/json
{
  • "success": true
}

Get eco mode status for a baremetal device

path Parameters
deviceId
required
string

Responses

Response samples

Content type
application/json
true

Get available metrics for a specific baremetal device

path Parameters
deviceId
required
string

Responses

Response samples

Content type
application/json
[
  • "string"
]

Onboard a discovered device

Request Body schema: application/json

Body

id
required
string
siteId
required
string
locationId
required
string
tenantId
required
string
macAddress
required
string
ipmiLogin
required
string
ipmiPassword
required
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "siteId": "string",
  • "locationId": "string",
  • "tenantId": "string",
  • "macAddress": "string",
  • "ipmiLogin": "string",
  • "ipmiPassword": "string"
}

Response samples

Content type
application/json
{
  • "success": true
}

Update listing for a baremetal device

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

hourlyPrice
required
number
floorHourlyPrice
number
billingFrequency
required
string
Value: "Weekly"
isListed
required
boolean
isInterruptibleOnly
boolean

Responses

Request samples

Content type
application/json
{
  • "hourlyPrice": 0,
  • "floorHourlyPrice": 0,
  • "billingFrequency": "Weekly",
  • "isListed": true,
  • "isInterruptibleOnly": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "role": "string",
  • "location": "string",
  • "locationId": 0,
  • "zoneName": "string",
  • "siteId": 0,
  • "siteName": "string",
  • "status": {
    },
  • "powerStatus": {
    },
  • "customer": {
    },
  • "dcim": {
    },
  • "listing": {
    },
  • "networking": {
    },
  • "specs": {
    },
  • "tenant": {
    },
  • "availableOperatingSystems": [
    ],
  • "storageLayouts": {
    },
  • "defaultDiskLayouts": [
    ],
  • "deployment": {
    },
  • "reservationInvite": {
    },
  • "ecoMode": false
}

Update nickname for a baremetal device

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

nickname
required
string

Responses

Request samples

Content type
application/json
{
  • "nickname": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "role": "string",
  • "location": "string",
  • "locationId": 0,
  • "zoneName": "string",
  • "siteId": 0,
  • "siteName": "string",
  • "status": {
    },
  • "powerStatus": {
    },
  • "customer": {
    },
  • "dcim": {
    },
  • "listing": {
    },
  • "networking": {
    },
  • "specs": {
    },
  • "tenant": {
    },
  • "availableOperatingSystems": [
    ],
  • "storageLayouts": {
    },
  • "defaultDiskLayouts": [
    ],
  • "deployment": {
    },
  • "reservationInvite": {
    },
  • "ecoMode": false
}

Update device to deprecated status

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true
}

Update device to discovered hosts status

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true
}

Provision a baremetal device

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

property name*
additional property
any or null

Responses

Request samples

Content type
application/json
{
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "success": true
}

Get active reservation invites with devices

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get pending reservation invites with devices

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get past reservation invites with devices

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get reservation invites by device ID

path Parameters
deviceId
required
string

Responses

Response samples

Content type
application/json
[
  • null
]

Create a reservation invite for demand customer

path Parameters
deviceId
required
string
Request Body schema: application/json

Body

inviterEmail
required
string
inviteeEmail
string
organizationId
required
string
channel
required
string
Enum: "HYDRA_MARKETPLACE" "HYDRA_SALES" "DC_SALES" "SELF_PROVISION" "HYDRA_ADMIN_TEST"
contractType
required
string
Enum: "ON_DEMAND" "INTERRUPTIBLE" "RESERVED_ROLLING" "RESERVED"
buyerPrice
required
number
supplierPrice
required
number
margin
required
number
billingFrequency
required
string
Enum: "HOURLY" "WEEKLY" "MONTHLY"
dateExpires
required
string or null <date-time>
deviceIds
required
Array of numbers
notes
string
interruptibleNoticePeriod
number or null

Responses

Request samples

Content type
application/json
{
  • "inviterEmail": "string",
  • "inviteeEmail": "string",
  • "organizationId": "string",
  • "channel": "HYDRA_MARKETPLACE",
  • "contractType": "ON_DEMAND",
  • "buyerPrice": 0,
  • "supplierPrice": 0,
  • "margin": 0,
  • "billingFrequency": "HOURLY",
  • "dateExpires": "2019-08-24T14:15:22Z",
  • "deviceIds": [
    ],
  • "notes": "string",
  • "interruptibleNoticePeriod": 0
}

Response samples

Content type
application/json
null

Edit a reservation invite

path Parameters
inviteId
required
string
Request Body schema: application/json

Body

channel
required
string
Enum: "HYDRA_MARKETPLACE" "HYDRA_SALES" "DC_SALES" "SELF_PROVISION" "HYDRA_ADMIN_TEST"
contractType
required
string
Enum: "ON_DEMAND" "INTERRUPTIBLE" "RESERVED_ROLLING" "RESERVED"
buyerPrice
required
number
supplierPrice
required
number
margin
required
number
billingFrequency
required
string
Enum: "HOURLY" "WEEKLY" "MONTHLY"
dateExpires
required
string or null <date-time>
deviceIds
required
Array of numbers
notes
string
interruptibleNoticePeriod
number or null

Responses

Request samples

Content type
application/json
{
  • "channel": "HYDRA_MARKETPLACE",
  • "contractType": "ON_DEMAND",
  • "buyerPrice": 0,
  • "supplierPrice": 0,
  • "margin": 0,
  • "billingFrequency": "HOURLY",
  • "dateExpires": "2019-08-24T14:15:22Z",
  • "deviceIds": [
    ],
  • "notes": "string",
  • "interruptibleNoticePeriod": 0
}

Response samples

Content type
application/json
null

Delete a reservation invite

path Parameters
inviteId
required
string

Responses

Response samples

Content type
application/json
null

List active offers with optional filters

query Parameters
type
string
Enum: "SUPPLIER" "DEMAND"
organizationId
string <uuid>
gpuModel
string
gpuCountMin
integer > 0
gpuCountMax
integer > 0
nodeCountMin
integer > 0
nodeCountMax
integer > 0
boolean or string
region
string
country
string
boolean or string
oemName
string
Enum: "DELL" "SUPERMICRO" "GIGABYTE" "HPE" "LENOVO" "ASUS" "OTHER"
cpuOem
string
Enum: "INTEL" "AMD" "ARM" "OTHER"
cpuModel
string
ramType
string
Enum: "DDR4" "DDR5" "HBM2" "HBM3" "OTHER"
ramSpecMin
number or null
ramSpecMax
number or null
interconnectType
string
Enum: "ANY" "INFINIBAND" "ROCEV1" "ROCEV2"
interconnectSpeedMin
number or null
interconnectSpeedMax
number or null
boolean or string
boolean or string
priceMin
number or null
priceMax
number or null
contractLengthWeeks
integer or null
availableFrom
string
availableUntil
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get available filter values for the offers UI

query Parameters
type
string
Enum: "SUPPLIER" "DEMAND"

Responses

Response samples

Content type
application/json
{
  • "gpuModels": [
    ],
  • "regions": [
    ],
  • "countries": [
    ],
  • "oemNames": [
    ],
  • "cpuOems": [
    ],
  • "cpuModels": [
    ],
  • "ramTypes": [
    ],
  • "interconnectTypes": [
    ],
  • "gpuCountRange": {
    },
  • "nodeCountRange": {
    },
  • "priceRange": {
    }
}

Get a single offer by ID

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "SUPPLIER",
  • "status": "DRAFT",
  • "organizationId": "string",
  • "organization": {
    },
  • "gpuModel": "string",
  • "gpuCount": 0,
  • "gpusPerNode": 0,
  • "gpuBusType": "PCIE",
  • "fromDate": "string",
  • "toDate": "string",
  • "isFeatured": true,
  • "region": "string",
  • "country": "string",
  • "deviceSpec": "string",
  • "interconnect": true,
  • "createdAt": "string",
  • "updatedAt": "string",
  • "contractTerms": [
    ],
  • "advancedSpecs": {
    }
}

Create a new demand offer

Request Body schema: application/json

Body

gpuModel
required
string non-empty
gpuCount
required
integer > 0
fromDate
required
string <date-time>
toDate
string <date-time>
region
required
string non-empty
deviceSpec
string
interconnect
boolean
required
Array of objects non-empty

Responses

Request samples

Content type
application/json
{
  • "gpuModel": "string",
  • "gpuCount": 0,
  • "fromDate": "2019-08-24T14:15:22Z",
  • "toDate": "2019-08-24T14:15:22Z",
  • "region": "string",
  • "deviceSpec": "string",
  • "interconnect": true,
  • "contractTerms": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "SUPPLIER",
  • "status": "DRAFT",
  • "organizationId": "string",
  • "organization": {
    },
  • "gpuModel": "string",
  • "gpuCount": 0,
  • "gpusPerNode": 0,
  • "gpuBusType": "PCIE",
  • "fromDate": "string",
  • "toDate": "string",
  • "isFeatured": true,
  • "region": "string",
  • "country": "string",
  • "deviceSpec": "string",
  • "interconnect": true,
  • "createdAt": "string",
  • "updatedAt": "string",
  • "contractTerms": [
    ],
  • "advancedSpecs": {
    }
}

Record interest in an offer

path Parameters
id
required
string
Request Body schema: application/json

Body

selectedTermIds
required
Array of strings <uuid> non-empty [ items <uuid > ]
requestedNodes
integer > 0
pricingDetails
required
string

Responses

Request samples

Content type
application/json
{
  • "selectedTermIds": [
    ],
  • "requestedNodes": 0,
  • "pricingDetails": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "offerListingId": "string",
  • "organizationId": "string",
  • "createdById": "string",
  • "requestedNodes": 0,
  • "pricingDetails": "string",
  • "createdAt": "string",
  • "selectedTerms": [
    ]
}

Get billing information for organization

path Parameters
organizationId
required
string

Responses

Response samples

Content type
application/json
{
  • "verifiedExtendTerms": true,
  • "netTerms": "P7D"
}

Get default payment method for organization

path Parameters
organizationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "source": "stripe",
  • "isDefault": true,
  • "type": "card",
  • "brand": "string",
  • "last4": "string",
  • "expDate": "string",
  • "country": "string",
  • "city": "string",
  • "state": "string",
  • "postalCode": "string",
  • "addressLine1": "string",
  • "addressLine2": "string"
}

Set default payment method for organization

path Parameters
organizationId
required
string
Request Body schema: application/json

Body

paymentMethodId
required
string

Responses

Request samples

Content type
application/json
{
  • "paymentMethodId": "string"
}

Response samples

Content type
application/json
"string"

Get checkout configuration for organization

path Parameters
organizationId
required
string

Responses

Response samples

Content type
application/json
{
  • "billingInformation": null,
  • "sshKeys": [
    ],
  • "setupIntent": {
    },
  • "defaultPaymentMethod": {
    },
  • "paymentMethods": [
    ]
}

Get payment methods for organization

path Parameters
organizationId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create setup intent for organization

path Parameters
organizationId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "client_secret": "string"
}

Attach payment method to organization

path Parameters
organizationId
required
string
Request Body schema: application/json

Body

setupIntentId
required
string

Responses

Request samples

Content type
application/json
{
  • "setupIntentId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "source": "stripe",
  • "isDefault": true,
  • "type": "card",
  • "brand": "string",
  • "last4": "string",
  • "expDate": "string",
  • "country": "string",
  • "city": "string",
  • "state": "string",
  • "postalCode": "string",
  • "addressLine1": "string",
  • "addressLine2": "string"
}

Create a new bridge request

Request Body schema: application/json

Body

zoneId
required
number >= 1
bridgeType
string
Default: "managed"
Enum: "managed" "self-hosted"
bridgeCount
required
number [ 1 .. 2 ]
networkType
required
string
Enum: "public" "private"
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "zoneId": 1,
  • "bridgeType": "managed",
  • "bridgeCount": 1,
  • "networkType": "public",
  • "prefixes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "datacenter": {
    },
  • "zone": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "string",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "string",
  • "status": "pending",
  • "data": {
    }
}

Get all bridge requests for the current organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a specific bridge request

path Parameters
requestId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "datacenter": {
    },
  • "zone": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "string",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "string",
  • "status": "pending",
  • "data": {
    }
}

Update a pending bridge request

path Parameters
requestId
required
string
Request Body schema: application/json

Body

zoneId
required
number >= 1
bridgeType
string
Default: "managed"
Enum: "managed" "self-hosted"
bridgeCount
required
number [ 1 .. 2 ]
networkType
required
string
Enum: "public" "private"
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "zoneId": 1,
  • "bridgeType": "managed",
  • "bridgeCount": 1,
  • "networkType": "public",
  • "prefixes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "datacenter": {
    },
  • "zone": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "string",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "string",
  • "status": "pending",
  • "data": {
    }
}

Soft delete a bridge request

path Parameters
requestId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true
}

Get available netplan config templates

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all datacenters for the current organization

query Parameters
page
integer >= 1
Default: 1
pageSize
integer [ 1 .. 100 ]
Default: 20
sort
string
search
string <= 200 characters
filters
string
status
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create a new datacenter

Request Body schema: application/json

Body

name
required
string non-empty
required
object
object
required
Array of objects non-empty
zoneName
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "primaryAddress": {
    },
  • "shippingAddress": {
    },
  • "contacts": [
    ],
  • "zoneName": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Get datacenter by ID

path Parameters
datacenterId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "status": "string",
  • "facility": "string",
  • "region": "string",
  • "physicalAddress": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Update datacenter name

path Parameters
datacenterId
required
string
Request Body schema: application/json

Body

name
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "status": "string",
  • "facility": "string",
  • "region": "string",
  • "physicalAddress": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Update datacenter primary address

path Parameters
datacenterId
required
string
Request Body schema: application/json

Body

addressLineOne
required
string non-empty
addressLineTwo
string
city
required
string non-empty
state
required
string non-empty
zip
required
string non-empty
country
required
string non-empty
latitude
required
number [ -90 .. 90 ]
longitude
required
number [ -180 .. 180 ]
timezone
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "addressLineOne": "string",
  • "addressLineTwo": "string",
  • "city": "string",
  • "state": "string",
  • "zip": "string",
  • "country": "string",
  • "latitude": -90,
  • "longitude": -180,
  • "timezone": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "status": "string",
  • "facility": "string",
  • "region": "string",
  • "physicalAddress": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Update datacenter shipping address

path Parameters
datacenterId
required
string
Request Body schema: application/json

Body

addressLineOne
required
string non-empty
addressLineTwo
string
city
required
string non-empty
state
required
string non-empty
zip
required
string non-empty
country
required
string non-empty
latitude
required
number [ -90 .. 90 ]
longitude
required
number [ -180 .. 180 ]
timezone
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "addressLineOne": "string",
  • "addressLineTwo": "string",
  • "city": "string",
  • "state": "string",
  • "zip": "string",
  • "country": "string",
  • "latitude": -90,
  • "longitude": -180,
  • "timezone": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "status": "string",
  • "facility": "string",
  • "region": "string",
  • "physicalAddress": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Create a contact for a datacenter

path Parameters
datacenterId
required
string
Request Body schema: application/json

Body

name
required
string non-empty
title
required
string non-empty
email
required
string <email>
phone
required
string non-empty
contactType
required
string
Enum: "Main" "Technical"
isShippingContact
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "title": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "contactType": "Main",
  • "isShippingContact": false
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "siteId": 0,
  • "name": "string",
  • "title": "string",
  • "email": "string",
  • "phone": "string",
  • "contactType": "Main",
  • "isShippingContact": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

Get all contacts for a datacenter

path Parameters
datacenterId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update a contact

path Parameters
datacenterId
required
string
contactId
required
string
Request Body schema: application/json

Body

name
required
string non-empty
title
required
string non-empty
email
required
string <email>
phone
required
string non-empty
contactType
required
string
Enum: "Main" "Technical"
isShippingContact
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "title": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "contactType": "Main",
  • "isShippingContact": false
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "siteId": 0,
  • "name": "string",
  • "title": "string",
  • "email": "string",
  • "phone": "string",
  • "contactType": "Main",
  • "isShippingContact": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

Delete a contact

path Parameters
datacenterId
required
string
contactId
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get all bridges for the current organization

query Parameters
page
integer >= 1
Default: 1
pageSize
integer [ 1 .. 100 ]
Default: 20
sort
string
search
string <= 200 characters
filters
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get bridge by ID

path Parameters
bridgeId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": "string",
  • "type": "managed",
  • "datacenter": {
    },
  • "zone": {
    },
  • "interfaces": [
    ]
}

Get all deployments

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get deployment by ID

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "location": "string",
  • "status": {
    },
  • "powerStatus": {
    },
  • "isInterruptible": true,
  • "scheduledInterruptionTime": "string",
  • "tags": [
    ],
  • "role": {
    },
  • "customer": {
    },
  • "networking": {
    },
  • "specs": {
    },
  • "sshKeys": [
    ],
  • "availableOperatingSystems": [
    ],
  • "storageLayouts": {
    },
  • "defaultDiskLayouts": [
    ],
  • "isLocked": true,
  • "lifecycleActions": [
    ],
  • "project": {
    },
  • "contractType": "string",
  • "interruptibleNoticePeriod": 0
}

Update name for deployment

path Parameters
id
required
string
Request Body schema: application/json

Body

name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "location": "string",
  • "status": {
    },
  • "powerStatus": {
    },
  • "isInterruptible": true,
  • "scheduledInterruptionTime": "string",
  • "tags": [
    ],
  • "role": {
    },
  • "customer": {
    },
  • "networking": {
    },
  • "specs": {
    },
  • "sshKeys": [
    ],
  • "availableOperatingSystems": [
    ],
  • "storageLayouts": {
    },
  • "defaultDiskLayouts": [
    ],
  • "isLocked": true,
  • "lifecycleActions": [
    ],
  • "project": {
    },
  • "contractType": "string",
  • "interruptibleNoticePeriod": 0
}

Get available metrics for a specific deployment

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get metrics data for a specific deployment

path Parameters
id
required
string
query Parameters
string or Array of strings
startTime
string
endTime
string
step
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "data": null,
  • "error": "string",
  • "errorType": "string"
}

Reprovision deployment

path Parameters
id
required
string
Request Body schema: application/json

Body

deploymentName
required
string non-empty
operatingSystem
required
string
Enum: "ubuntu-noble-vanilla" "debian-bullseye-vanilla" "ubuntu-focal-vanilla" "debian-bookworm-hpc" "ubuntu-focal-hpc" "ubuntu-jammy-hpc" "debian-bullseye-hpc" "debian-bookworm-vanilla" "ubuntu-noble-hpc" "ubuntu-jammy-vanilla" "debian-bookworm-proxmox" "ipxe-custom" "ubuntu-noble-tee" "ubuntu-plucky-tee" "ubuntu-plucky-vanilla"
sshKeyIds
required
Array of strings <uuid> [ items <uuid > ]
required
Array of objects
cloudInit
any or null
ipxeUrl
string or null

Responses

Request samples

Content type
application/json
{
  • "deploymentName": "string",
  • "operatingSystem": "ubuntu-noble-vanilla",
  • "sshKeyIds": [
    ],
  • "diskLayouts": [
    ],
  • "cloudInit": null,
  • "ipxeUrl": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Reboot deployment

path Parameters
id
required
string
Request Body schema: application/json

Body

powerCycle
required
boolean

Responses

Request samples

Content type
application/json
{
  • "powerCycle": true
}

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Power control for deployment

path Parameters
id
required
string
Request Body schema: application/json

Body

operation
required
string
Enum: "on" "off"

Responses

Request samples

Content type
application/json
{
  • "operation": "on"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Decommission deployment

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Activate rescue mode for device

path Parameters
id
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Deactivate rescue mode for device

path Parameters
id
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Get SOL logs for custom iPXE provision

path Parameters
id
required
string
Request Body schema: application/json

Body

jobType
required
string
Enum: "Provision" "Reprovision"

Responses

Request samples

Content type
application/json
{
  • "jobType": "Provision"
}

Response samples

Content type
application/json
{}

Toggle deployment lock

path Parameters
id
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true,
  • "error_code": "string",
  • "message": "string"
}

Get interruptible claims for organization

query Parameters
status
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new project

Request Body schema: application/json

Body

name
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "isDefault": true,
  • "organizationId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "deployments": [
    ]
}

Get all projects for an organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a project by ID

path Parameters
projectId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "isDefault": true,
  • "organizationId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "deployments": [
    ]
}

Update a project name

path Parameters
projectId
required
string
Request Body schema: application/json

Body

name
required
string non-empty
isDefault
required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "isDefault": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "isDefault": true,
  • "organizationId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "deployments": [
    ]
}

Delete a project

path Parameters
projectId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "isDefault": true,
  • "organizationId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "deployments": [
    ]
}

Move deployments from one project to another

path Parameters
projectId
required
string
Request Body schema: application/json

Body

deploymentIds
required
Array of strings non-empty
sourceProjectId
required
string

Responses

Request samples

Content type
application/json
{
  • "deploymentIds": [
    ],
  • "sourceProjectId": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get metrics data for a specific device

path Parameters
deviceMetadataId
required
string
query Parameters
string or Array of strings
startTime
string
endTime
string
step
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "data": null,
  • "error": "string",
  • "errorType": "string"
}

Create a new help desk ticket

Request Body schema: multipart/form-data

Body

title
required
string non-empty
body_html
required
string non-empty
issue
required
string
affectedMachinesCount
integer or null >= 0
workloadsImpact
string
deploymentId
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "id": "string",
  • "message": "string"
}

Get all inventory listings with optional filters

query Parameters
category
string
Enum: "5090" "4090" "3090" "a10" "a100" "a40" "a4000" "a5000" "a6000" "b200" "b300" "gb200" "gb300" "gh200" "h100" "h200" "l40s" "mi250" "mi300x" "rtx6000" "v100" "cpu"
status
string
Enum: "on demand" "reserve" "preorder"
interruptibleReady
boolean or null

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all available regions

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get starting prices for all GPU categories

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get inventory item by device ID

path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "location": "string",
  • "role": {
    },
  • "status": "on demand",
  • "isInterruptibleOnly": true,
  • "isTeeCapable": true,
  • "primary_ip4": "string",
  • "primary_ip6": "string",
  • "cluster": {
    },
  • "specs": {
    },
  • "price": {
    },
  • "interruptiblePrice": {
    },
  • "activeReservationInvite": {
    },
  • "availableOperatingSystems": [
    ],
  • "storageLayouts": {
    },
  • "defaultDiskLayouts": [
    ],
  • "supplierPolicyUrl": "string",
  • "networkType": "string",
  • "vpcCapable": true,
  • "isInterruptibleDeployment": true,
  • "interruptibleNoticePeriod": 0,
  • "availableAt": "string"
}

Provision device by device ID

path Parameters
id
required
string <uuid>
Request Body schema: application/json

Body

contractType
required
string
Enum: "ON_DEMAND" "INTERRUPTIBLE" "RESERVED_ROLLING" "RESERVED"
deploymentName
required
string
operatingSystem
required
string
Enum: "ubuntu-noble-vanilla" "debian-bullseye-vanilla" "ubuntu-focal-vanilla" "debian-bookworm-hpc" "ubuntu-focal-hpc" "ubuntu-jammy-hpc" "debian-bullseye-hpc" "debian-bookworm-vanilla" "ubuntu-noble-hpc" "ubuntu-jammy-vanilla" "debian-bookworm-proxmox" "ipxe-custom" "ubuntu-noble-tee" "ubuntu-plucky-tee" "ubuntu-plucky-vanilla"
sshKeyIds
required
Array of strings <uuid> [ items <uuid > ]
projectId
string
required
Array of objects
(string or null) or (string or null) or (object or null)
ipxeUrl
string or null <uri>

Responses

Request samples

Content type
application/json
{
  • "contractType": "ON_DEMAND",
  • "deploymentName": "string",
  • "operatingSystem": "ubuntu-noble-vanilla",
  • "sshKeyIds": [
    ],
  • "projectId": "string",
  • "diskLayouts": [
    ],
  • "cloudInit": "string",
  • "ipxeUrl": "http://example.com"
}

Response samples

Content type
application/json
{
  • "success": true
}

Create a new lead contact

Request Body schema: application/json

Body

required
object
object

Responses

Request samples

Content type
application/json
{
  • "requiredFields": {
    },
  • "additionalFields": {
    }
}

Response samples

Content type
application/json
{ }

Submit a demand request form

Request Body schema: application/json

Body

required
object
email
required
string
gpuType
required
string
quantity
required
number
region
required
string
startDate
required
string
deviceSpecs
string
interconnect
boolean or null
targetTerm
number
targetPrice
number

Responses

Request samples

Content type
application/json
{
  • "context": {
    },
  • "email": "string",
  • "gpuType": "string",
  • "quantity": 0,
  • "region": "string",
  • "startDate": "string",
  • "deviceSpecs": "string",
  • "interconnect": true,
  • "targetTerm": 0,
  • "targetPrice": 0
}

Response samples

Content type
application/json
{ }

Get demand request form properties

Responses

Response samples

Content type
application/json
{
  • "region": [
    ]
}

Get lender device associations for the current organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get test runs for lender devices in the current organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new organization

Request Body schema: application/json

Body

name
required
string [ 1 .. 100 ] characters
type
required
string
Enum: "DemandCustomer" "SupplyCustomer"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "DemandCustomer"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "tenantType": "DemandCustomer",
  • "logo": "string",
  • "metadata": "string",
  • "email": "string",
  • "country": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List organizations for the current user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update active organization settings

Request Body schema: application/json

Body

name
string [ 1 .. 100 ] characters
logo
string or null
email
string or null <email>
country
string or null <= 100 characters
metadata
string or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "logo": "string",
  • "email": "user@example.com",
  • "country": "string",
  • "metadata": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "tenantType": "DemandCustomer",
  • "logo": "string",
  • "metadata": "string",
  • "email": "string",
  • "country": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get organization by ID

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "tenantType": "DemandCustomer",
  • "logo": "string",
  • "metadata": "string",
  • "email": "string",
  • "country": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Set the active organization for the current user

path Parameters
id
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true,
  • "organizationId": "string"
}

Get all memberships of an organization

query Parameters
page
integer >= 1
Default: 1
pageSize
integer [ 1 .. 100 ]
Default: 20
sort
string
search
string <= 200 characters
filters
string
role
string
Enum: "SuperAdmin" "Admin" "Member" "Owner"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get specific membership of an organization

path Parameters
memberId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "organizationId": "string",
  • "role": "SuperAdmin",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z"
}

Update membership role in organization

path Parameters
memberId
required
string
Request Body schema: application/json

Body

role
required
string
Enum: "SuperAdmin" "Admin" "Member" "Owner"

Responses

Request samples

Content type
application/json
{
  • "role": "SuperAdmin"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "organizationId": "string",
  • "role": "SuperAdmin",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "user": {
    }
}

Remove membership from organization

path Parameters
membershipId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "organizationId": "string",
  • "role": "SuperAdmin",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "user": {
    }
}

Get feature flags for the active organization

Responses

Response samples

Content type
application/json
{
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "api": true,
  • "storefront": true,
  • "stripeConnect": true,
  • "verifiedExtendTerms": true,
  • "openMeterBilling": true,
  • "dashboard": true,
  • "investments": true
}

Invite a user to the active organization

Request Body schema: application/json

Body

email
required
string <email>
role
required
string
Enum: "member" "admin" "owner"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role": "member"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "inviterId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "status": "pending",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

List invitations for the active organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a specific invitation by ID

path Parameters
invitationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "inviterId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "status": "pending",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Accept an organization invitation

path Parameters
invitationId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "inviterId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "status": "pending",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Reject an organization invitation

path Parameters
invitationId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "inviterId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "status": "pending",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Cancel an organization invitation

path Parameters
invitationId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "inviterId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "status": "pending",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Get reservation invite by ID for current user

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "inviteeEmail": "string",
  • "inviterEmail": "string",
  • "inviteeOrganizationId": "string",
  • "dateAccepted": "2019-08-24T14:15:22Z",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateDeleted": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "dateExpires": "2019-08-24T14:15:22Z",
  • "organizationId": "string",
  • "channel": "HYDRA_MARKETPLACE",
  • "reservationId": "string",
  • "buyerPrice": 0,
  • "contractType": "ON_DEMAND",
  • "billingFrequency": "HOURLY",
  • "deviceIds": [
    ]
}

Get all reservation invites for current user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all SSH keys for authenticated user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create new SSH key

Request Body schema: application/json

Body

name
required
string
key
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "key": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateDeleted": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "fingerprint": "string",
  • "key": "string",
  • "userId": "string"
}

Get all SSH keys for organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get specific SSH key by ID

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateDeleted": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "fingerprint": "string",
  • "key": "string",
  • "userId": "string"
}

Delete SSH key

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateDeleted": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "fingerprint": "string",
  • "key": "string",
  • "userId": "string"
}

Update the current user's profile

Request Body schema: application/json

Body

firstName
string non-empty
lastName
string non-empty
email
string <email>

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com"
}

Response samples

Content type
application/json
null

Set the default organization for the current user

Request Body schema: application/json

Body

organizationId
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}

Response samples

Content type
application/json
null

List pending invitations for the current user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accept an invitation (no org context required)

path Parameters
invitationId
required
string
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "inviterId": "string",
  • "organizationId": "string",
  • "role": "string",
  • "status": "pending",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Create a new webhook

Request Body schema: application/json

Body

endpoint
required
string
description
string
events
required
Array of strings non-empty
Items Enum: "DEVICE_LISTING_UPDATED" "DEVICE_LISTING_CREATED" "DEVICE_LISTING_DEPRECATED" "DEPLOYMENT_INTERRUPTED" "DEPLOYMENT_INTERRUPTION_COMPLETED"
isActive
boolean
Default: true

Responses

Request samples

Content type
application/json
{
  • "endpoint": "string",
  • "description": "string",
  • "events": [
    ],
  • "isActive": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "endpoint": "string",
  • "description": "string",
  • "events": [
    ],
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "secret": "string"
}

Get all webhooks for the active organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get webhook deliveries for the active organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get webhook statistics for the active organization

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "active": 0,
  • "failed": 0,
  • "recentDeliveries": [
    ]
}

Get a specific webhook

path Parameters
webhookId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "endpoint": "string",
  • "description": "string",
  • "events": [
    ],
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a webhook

path Parameters
webhookId
required
string <uuid>
Request Body schema: application/json

Body

endpoint
required
string <uri>
description
string
events
required
Array of strings non-empty
Items Enum: "DEVICE_LISTING_UPDATED" "DEVICE_LISTING_CREATED" "DEVICE_LISTING_DEPRECATED" "DEPLOYMENT_INTERRUPTED" "DEPLOYMENT_INTERRUPTION_COMPLETED"
isActive
boolean

Responses

Request samples

Content type
application/json
{
  • "endpoint": "http://example.com",
  • "description": "string",
  • "events": [
    ],
  • "isActive": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "endpoint": "string",
  • "description": "string",
  • "events": [
    ],
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a webhook

path Parameters
webhookId
required
string <uuid>
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
null

Retry a failed webhook delivery

path Parameters
deliveryId
required
string <uuid>
Request Body schema: application/json

Body

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "webhookId": "ed71eef4-4c34-46dc-81fe-954e560454fd",
  • "webhookEndpoint": "string",
  • "eventType": "DEVICE_LISTING_UPDATED",
  • "payload": null,
  • "status": "PENDING",
  • "statusCode": 0,
  • "responseBody": "string",
  • "attemptNumber": 0,
  • "error": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "deliveredAt": "2019-08-24T14:15:22Z"
}

Create a new zone

Request Body schema: application/json

Body

name
required
string non-empty
datacenterId
required
number

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "datacenterId": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "siteId": 0,
  • "siteName": "string"
}

Get all zones for the current organization

query Parameters
page
integer >= 1
Default: 1
pageSize
integer [ 1 .. 100 ]
Default: 20
sort
string
search
string <= 200 characters
filters
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get zone by ID

path Parameters
zoneId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "siteId": 0,
  • "siteName": "string"
}