Brokkr API Documentation

Use the Brokkr API to access devices, deployments, the marketplace, seamlessly integrate your product into the workflows of the leading data center inventory management system and more.

Authentication

To authenticate, use the login endpoint with your email and password to obtain an API token. Once you have the token, attach it as a bearer token to the headers for subsequent requests.

Login

This endpoint will fetch an API token.

Request
POST/api/login
{ "email": "[email protected]", "password": "password" }
Response
POST/api/login
{ "token": "token", "expiresIn": 3600 }

User

These endpoints will allow you to retrieve and modify your user record.

Get User

This endpoint will fetch your user record.

Response
GET/api/user
{ "id": "1234abcd5678efgh9012ijkl", "first_name": "John", "last_name": "Doe", "nickname": "johnny.doe", "name": "John Doe", "picture": "https://s.gravatar.com/avatar/abc123def456gh789ij012klmnopqrstu?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fjo.png", "updated_at": "2024-06-03T15:00:53.517Z", "email": "[email protected]", "email_verified": true, "roles": [], "tenant_reference_id": 2, "organizations": [ { "organization": { "id": "org_ABC123XYZ456", "name": "Doe Inc.", "display_name": "Doe Inc.", "metadata": { "tenant_id": "100", "type": "demand-customer" } }, "roles": [ { "name": "Owner", "permissions": [ "manage:admins", "manage:members", "member:all", "update:payment_methods", "update:roles" ] } ] } ] }

Update User

This endpoint allows you to update your name and/or email.

Request
PATCH/api/user
{ "name": "John Doe", "email": "[email protected]" }
Response
PATCH/api/user
{ "id": "1234abcd5678efgh9012ijkl", "first_name": "John", "last_name": "Doe", "nickname": "johnny.doe", "name": "John Doe", "picture": "https://s.gravatar.com/avatar/abc123def456gh789ij012klmnopqrstu?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fjo.png", "updated_at": "2024-06-03T15:00:53.517Z", "email": "[email protected]", "email_verified": true, "roles": [], "tenant_reference_id": 2, "organizations": [ { "organization": { "id": "org_ABC123XYZ456", "name": "Doe Inc.", "display_name": "Doe Inc.", "metadata": { "tenant_id": "100", "type": "demand-customer" } }, "roles": [ { "name": "Owner", "permissions": [ "manage:admins", "manage:members", "member:all", "update:payment_methods", "update:roles" ] } ] } ] }

Deployments

These endpoints allow you to retrieve, update and reprovision deployments.

Get Deployments

This endpoint allows you to retrieve all deployments.

Optional Query Parameters

organizationId

string

Filter deployments by organization ID
Response
GET/api/deployments
[ { "id": 1, "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "listing": { "is_internal": true, "price": { "per_month": 150, "per_hour": 0.08, "gpu_per_hour": 0.4 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA A100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } } ]

Get Deployment by ID

This endpoint allows you to retrieve a deployment by ID.

Required Path Parameters

id

string

Retrieve deployment by ID
Response
GET/api/deployments/:id
{ "id": 1, "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "listing": { "is_internal": true, "price": { "per_month": 150, "per_hour": 0.08, "gpu_per_hour": 0.4 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA A100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Update Deployment by ID

This endpoint allows you to update a deployment.

Required Path Parameters

id

string

Update deployment by ID
Request
PATCH/api/deployment/:id
{ "name": "deployment-name" }
Response
PATCH/api/deployment/:id
{ "id": 1, "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "listing": { "is_internal": true, "price": { "per_month": 150, "per_hour": 0.08, "gpu_per_hour": 0.4 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA A100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Reprovision

This endpoint allows you to reprovision a deployment.

Required Path Parameters

id

string

Reprovision Deployment by ID
Request
PATCH/api/deployments/:id/reprovision
{ "deploymentName": "deployment name", "operatingSystem": "ubuntu2204", "sshKeyIds": [ "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example" ] }
Response
PATCH/api/deployments/:id/reprovision
{ "id": 1, "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "listing": { "is_internal": true, "price": { "per_month": 150, "per_hour": 0.08, "gpu_per_hour": 0.4 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA A100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Delete Deployment

This endpoint allows you to delete a deployment.

Required Path Parameters

id

string

Reprovision Deployment by ID
Response
DELETE/api/deployments/:id
{ "id": 1, "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "listing": { "is_internal": true, "price": { "per_month": 150, "per_hour": 0.08, "gpu_per_hour": 0.4 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA A100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Inventory

These endpoints allow you to retrieve, update and provision inventory.

Get Inventory

This endpoint allows you to retrieve all inventory listings.

Optional Query Parameters

organizationId

string

Filter inventory by organization ID
Response
GET/api/dcim/inventory/baremetal
[ { "id": 1, "name": "Sample Device", "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "dcim": { "nickname": "NYC-Server-01" }, "listing": { "is_active": true, "is_private": null, "is_internal": false, "invitee": null, "price": { "per_month": 200, "per_hour": 0.1, "gpu_per_hour": 0.5 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA Tesla V100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } } ]

Get Inventory by ID

This endpoint allows you to retrieve inventory listing by ID.

Required Path Parameters

id

string

Retrieve inventory by ID
Response
GET/api/dcim/inventory/baremetal/:id
{ "id": 1, "name": "Sample Device", "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "dcim": { "nickname": "NYC-Server-01" }, "listing": { "is_active": true, "is_private": null, "is_internal": false, "invitee": null, "price": { "per_month": 200, "per_hour": 0.1, "gpu_per_hour": 0.5 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA Tesla V100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Update Inventory by ID

This endpoint allows you to update an inventory listing.

Required Path Parameters

id

string

Update inventory by ID
Request
PATCH/api/dcim/inventory/baremetal/:id/listing
{ "active": true, "frequency": "Monthly", "price": 29.99, "invitee": "user-5678", "prepaid": false }
Response
PATCH/api/dcim/inventory/baremetal/:id/listing
{ "id": 1, "name": "Sample Device", "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "dcim": { "nickname": "NYC-Server-01" }, "listing": { "is_active": true, "is_private": null, "is_internal": false, "invitee": null, "price": { "per_month": 200, "per_hour": 0.1, "gpu_per_hour": 0.5 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA Tesla V100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Update Nickname by ID

This endpoint allows you to update an inventory listing's nickname.

Required Path Parameters

id

string

Update inventory nickname by ID
Request
PATCH/api/dcim/inventory/baremetal/:id/nickname
{ "nickname": "device-nickname" }
Response
PATCH/api/dcim/inventory/baremetal/:id/nickname
{ "id": 1, "name": "Sample Device", "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "dcim": { "nickname": "NYC-Server-01" }, "listing": { "is_active": true, "is_private": null, "is_internal": false, "invitee": null, "price": { "per_month": 200, "per_hour": 0.1, "gpu_per_hour": 0.5 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA Tesla V100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Provision

This endpoint allows you to provision a listing from your organizations inventory.

Required Path Parameters

id

string

Provision inventory by ID
Request
PATCH/api/dcim/inventory/baremetal/:id/provision
{ "deploymentName": "deployment name", "operatingSystem": "ubuntu2204", "sshKeyIds": [ "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example" ] }
Response
PATCH/api/dcim/inventory/baremetal/:id/provision
{ "id": 1, "name": "Sample Device", "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "dcim": { "nickname": "NYC-Server-01" }, "listing": { "is_active": true, "is_private": null, "is_internal": false, "invitee": null, "price": { "per_month": 200, "per_hour": 0.1, "gpu_per_hour": 0.5 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA Tesla V100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

Storefront

These endpoints allow you to create, delete and retrieve storefront settings by an organization ID.

Get Storefront by Organization ID

This endpoint allows you to retrieve storefront settings by an organization ID.

Required Path Parameters

organizationId

string

Retrieve settings by organization ID
Response
GET/api/storefront/:organizationId
{ "organizationId": "org-7890", "slug": "sample-organization", "logoFileName": "logo.png", "stylesFileName": "styles.css" }

Create Storefront

This endpoint allows you to create a storefront for your organization.

Required Path Parameters

organizationId

string

Create storefront with organization ID
Request
POST/api/storefront/:organizationId
{ "slug": "sample-organization", "logoFileName": "logo.png", "stylesFileName": "styles.css" }
Response
POST/api/storefront/:organizationId
{ "organizationId": "org-7890", "slug": "sample-organization", "logoFileName": "logo.png", "stylesFileName": "styles.css" }

Delete Storefront

This endpoint allows you to delete a storefront from your organization.

Required Path Parameters

organizationId

string

Delete storefront with organization ID
Response
DELETE/api/storefront/:organizationId
{ "organizationId": "org-7890", "slug": "sample-organization", "logoFileName": "logo.png", "stylesFileName": "styles.css" }

Hypervisor

These endpoints allow you to create a hypervisor device.

Create Hypervisor

This endpoint allows you to create a Hypervisor device for your data center. There are requirements listed below that must be satisfied before creating your Hypervisor device.

Requirements

  • Install Ubuntu 22.04
  • IOMMU enabled in BIOS
  • Enable virtualization in BIOS
  • Created site and location
  • Public IP for hypervisor
  • Public IP for virtual machine
Request
POST/api/hypervisors
{ "name": "Sample Network", "site": 101, "location": 205, "virtualNetworkConfig": { "ip_address": "192.168.1.10", "gateway": "192.168.1.1", "public_ip_address": "203.0.113.1" }, "gateway": "192.168.1.1", "interface_name": "eth0", "ip_address": "192.168.1.10", "nameservers": [ "8.8.8.8", "8.8.4.4" ], "public_ip_address": "203.0.113.1", "tenant": 502 }
Response
POST/api/hypervisors
{ "name": "Sample Network", "id": 1, "status": "staged" }

Marketplace

These endpoints allow you to retrieve the marketplace listings and categories.

Get categories

This endpoint allows you to retrieve all of the marketplace categories.

Response
GET/api/marketplace/categories
[ { "name": "NVIDIA A100", "description": "The NVIDIA A100 description will be here.", "badgeList": [ { "value": "AI", "label": "AI" }, { "value": "Deep Learning", "label": "Deep Learning" }, { "value": "HPC", "label": "HPC" }, { "value": "Data Analytics", "label": "Data Analytics" }, { "value": "Scientific Computing", "label": "Scientific Computing" } ], "brandImages": [ { "url": "https://example.com/product1", "alt": "image alt text" } ], "startPrice": 1.4, "priceFrequency": "per card-hour", "ctaButton": { "label": "See Inventory", "href": "/marketplace/category/a100" }, "hasPreorder": true, "hasOnDemand": true, "hasReserve": true, "hasCluster": false, "categorySlug": { "value": "a100" } } ]

Get listing by ID

This endpoint allows you to retrieve a single marketplace listing.

Required Path Parameters

id

string

Retrieve device by ID
Response
GET/api/marketplace/listings/:id
{ "id": 1, "name": "High Performance Instance", "location": "Arizona", "status": "on demand", "cluster": { "network": "10Gbps", "nodes": 5 }, "specs": { "cpu": { "cores": 16, "vCpus": 32 }, "gpu": { "count": 4 }, "memory": 128 }, "price": { "monthly": 1500, "hourly": { "per_cpu": 0.05, "per_gpu": 0.1, "total": 1 } } }

Get all listings

This endpoint allows you to retrieve all of the marketplace listings.

Optional Query Parameters

status

"on demand" | "reserve" | "preorder"

Filter by device status

category

"4090" | "3090" | "a100" | "a40" | "a5000" | "a6000" | "gh200" | "h100" | "mi250" | "mi300x"

Filter by device category
Response
GET/api/marketplace/listings
[ { "id": 1, "name": "High Performance Instance", "location": "Arizona", "status": "on demand", "cluster": { "network": "10Gbps", "nodes": 5 }, "specs": { "cpu": { "cores": 16, "vCpus": 32 }, "gpu": { "count": 4 }, "memory": 128 }, "price": { "monthly": 1500, "hourly": { "per_cpu": 0.05, "per_gpu": 0.1, "total": 1 } } } ]

Provision

This endpoint allows you to provision a marketplace listing.

Required Path Parameters

id

string

Provision marketplace listing by ID
Request
PATCH/api/marketplace/listings/baremetal/:id/provision
{ "organizationId": "org-7890", "deploymentName": "deployment name", "operatingSystem": "ubuntu2204", "sshKeyIds": [ "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example" ], "paymentIdentifier": { "setupIntentId": "abcdef1234" } }

OR

{ "organizationId": "org-7890", "deploymentName": "deployment name", "operatingSystem": "ubuntu2204", "sshKeyIds": [ "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example" ], "paymentIdentifier": { "defaultPaymentMethodId": "abcdef1234" } }
Response
PATCH/api/marketplace/listings/baremetal/:id/provision
{ "id": 1, "name": "Sample Device", "location": "New York, USA", "status": { "value": "active", "label": "Active" }, "customer": { "device_name": "Device123", "organization_id": "org-7890", "provisioned_date": "2023-01-15T10:00:00Z", "ssh_pub_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "ssh_pub_keys_ids": "key-1234", "user_id": "user-5678" }, "dcim": { "nickname": "NYC-Server-01" }, "listing": { "is_active": true, "is_private": null, "is_internal": false, "invitee": null, "price": { "per_month": 200, "per_hour": 0.1, "gpu_per_hour": 0.5 } }, "networking": { "download_speed": 1000, "ipv4": "192.168.1.1", "ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "mac": "00:1A:2B:3C:4D:5E", "upload_speed": 100 }, "specs": { "cpu": { "cores_per_cpu": 8, "count": 2, "model": "Intel Xeon E5-2670", "threads_per_core": 2, "threads_per_cpu": 16, "total_cores": 16, "total_threads": 32 }, "gpu": { "count": 2, "model": "NVIDIA Tesla V100" }, "memory": { "total": 128 }, "storage": { "hdd_count": 2, "hdd_size": 2000, "hdd_total": 4000, "nvme_count": 1, "nvme_size": 1000, "nvme_total": 1000, "ssd_count": 2, "ssd_size": 500, "ssd_total": 1000, "total": 6000 } } }

SSH Keys

These endpoints allow you to retrieve, create and delete SSH keys.

Get key by ID

This endpoint allows you to retrieve a user's SSH key by ID.

Required Path Parameters

id

string

Retrieve an SSH key by ID
Response
GET/api/sshkeys/:id
{ "id": "123e4567-e89b-12d3-a456-426614174000", "dateCreated": "2023-01-15T10:00:00Z", "name": "Sample SSH Key", "fingerprint": "abc123def456ghi789", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "userId": "user-5678", "dateDeleted": null }

Get all SSH keys

This endpoint allows you to retrieve all of a users SSH keys.

Response
GET/api/sshkeys
[ { "id": "123e4567-e89b-12d3-a456-426614174000", "dateCreated": "2023-01-15T10:00:00Z", "name": "Sample SSH Key", "fingerprint": "abc123def456ghi789", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "userId": "user-5678", "dateDeleted": null } ]

Create SSH key

This endpoint allows you to add an SSH key to a user.

Request
POST/api/sshkeys/create
{ "dateDeleted": null, "name": "Sample SSH Key", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example" }
Response
POST/api/sshkeys/create
{ "id": "123e4567-e89b-12d3-a456-426614174000", "dateCreated": "2023-01-15T10:00:00Z", "name": "Sample SSH Key", "fingerprint": "abc123def456ghi789", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "userId": "user-5678", "dateDeleted": null }

Delete SSH key

This endpoint allows you to delete an SSH key from a user.

Required Path Parameters

id

string

Delete an SSH key by ID
Response
DELETE/api/sshkeys/:id
{ "id": "123e4567-e89b-12d3-a456-426614174000", "dateCreated": "2023-01-15T10:00:00Z", "name": "Sample SSH Key", "fingerprint": "abc123def456ghi789", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr1N8...example", "userId": "user-5678", "dateDeleted": "2023-01-15T10:00:00Z" }