Skip to content

The Servers API provides endpoints for browsing the rental marketplace, renting servers, managing rentals, and coordinating team access through pools. Use these endpoints to find available servers, create and manage rentals, organize servers into shared pools, and invite team members.

Pools let teams share access to rented servers. Pool owners can invite members, assign roles, and manage which servers belong to the pool.

Get all pools the user owns or is a member of.

This endpoint takes no parameters.

{
"statusCode": 200,
"message": "Pools retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439300",
"name": "Development Team",
"description": "Pool for development team resources",
"is_default": false,
"settings": {},
"created_at": "2025-01-15T10:00:00.000Z",
"updated_at": "2025-01-20T14:30:00.000Z",
"owner_id": "507f1f77bcf86cd799439011",
"user_role": "owner",
"member_count": 5,
"server_count": 3
}
]
}

Get detailed information about a specific pool, including members and associated servers.

NameInTypeRequiredDescription
idpathstringYesPool identifier
{
"statusCode": 200,
"message": "Pool retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439300",
"name": "Development Team",
"description": "Pool for development team resources",
"is_default": false,
"settings": {},
"created_at": "2025-01-15T10:00:00.000Z",
"updated_at": "2025-01-20T14:30:00.000Z",
"owner_id": "507f1f77bcf86cd799439011",
"members": [
{
"id": "507f1f77bcf86cd799439310",
"role": "admin",
"is_authorized": true,
"joined_at": "2025-01-16T11:00:00.000Z",
"user": {
"id": "507f1f77bcf86cd799439012",
"username": "jane_admin",
"alias": "Jane Smith"
}
}
],
"servers": [
{
"id": "507f1f77bcf86cd799439014",
"name": "node-us-nyc-1",
"rental_status": "active",
"is_ready": true
}
]
}
}

Create a new pool for team collaboration.

This endpoint takes no parameters.

NameTypeRequiredDescription
namestringYesPool name (max 100 characters)
descriptionstringNoPool description (max 500 characters)
settingsobjectNoArbitrary pool settings
{
"name": "Production Team",
"description": "Pool for production environment management",
"settings": {
"auto_approve": true,
"max_servers": 20
}
}
{
"statusCode": 201,
"message": "Pool created successfully",
"data": {
"id": "507f1f77bcf86cd799439301",
"name": "Production Team",
"description": "Pool for production environment management",
"owner_id": "507f1f77bcf86cd799439011",
"is_default": false,
"settings": {},
"created_at": "2025-01-21T22:00:00.000Z"
}
}

Update pool details. Only the pool owner may update a pool.

NameInTypeRequiredDescription
idpathstringYesPool identifier
NameTypeRequiredDescription
descriptionstringNoUpdated description (max 500 characters)
settingsobjectNoUpdated pool settings
{
"description": "Pool for staging and production environments",
"settings": {
"auto_approve": false,
"max_servers": 15
}
}
{
"statusCode": 200,
"message": "Pool updated successfully",
"data": {
"success": true
}
}

Delete a pool. Only the owner may delete a pool, and the default pool cannot be deleted.

NameInTypeRequiredDescription
idpathstringYesPool identifier
{
"statusCode": 200,
"message": "Pool deleted successfully",
"data": {
"success": true
}
}

Users receive invitations to join pools. The endpoints below let users review, accept, and reject pending invitations.

Get all pending pool invitations for the authenticated user.

This endpoint takes no parameters.

{
"statusCode": 200,
"message": "Pending invitations retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439312",
"pool_id": "507f1f77bcf86cd799439300",
"pool_name": "Development Team",
"pool_description": "Pool for development team resources",
"role": "user",
"invited_by": {
"id": "507f1f77bcf86cd799439011",
"username": "team_lead",
"alias": "Team Lead"
},
"invited_at": "2025-01-20T14:30:00.000Z"
}
]
}

Accept an invitation to join a pool.

NameInTypeRequiredDescription
idpathstringYesInvitation identifier
{
"statusCode": 200,
"message": "Invitation accepted successfully",
"data": {
"success": true
}
}

Reject an invitation to join a pool.

NameInTypeRequiredDescription
idpathstringYesid path parameter
{
"statusCode": 200,
"message": "Invitation rejected successfully",
"data": {
"success": true
}
}

Pool admins and owners can invite new members, change member roles, and remove members from a pool.

Invite a user to join the pool. Requires admin or owner privileges.

NameInTypeRequiredDescription
idpathstringYesPool identifier
NameTypeRequiredDescription
usernamestringYesUsername of the user to invite (1-100 chars, alphanumeric, underscore, dash)
rolestringYesRole to assign. One of admin, user
{
"username": "new_developer",
"role": "user"
}
{
"statusCode": 201,
"message": "Member invited successfully",
"data": {
"id": "507f1f77bcf86cd799439311",
"role": "user",
"is_authorized": false,
"invited_at": "2025-01-21T22:15:00.000Z"
}
}

Update a member’s role in the pool. Only the pool owner may change roles.

NameInTypeRequiredDescription
idpathstringYesPool identifier
userIdpathstringYesMember user identifier
NameTypeRequiredDescription
rolestringYesNew role. One of admin, user
{
"role": "admin"
}
{
"statusCode": 200,
"message": "Member role updated successfully",
"data": {
"success": true
}
}

DELETE /api/v1/pools/{id}/members/{userId}

Section titled “DELETE /api/v1/pools/{id}/members/{userId}”

Remove a member from the pool. Requires admin or owner privileges.

NameInTypeRequiredDescription
idpathstringYesPool identifier
userIdpathstringYesMember user identifier
{
"statusCode": 200,
"message": "Member removed successfully",
"data": {
"success": true
}
}

The rentals endpoints let users list active and historical rentals, retrieve rental details, and extend ongoing rentals.

Get all rentals for the authenticated user.

This endpoint takes no parameters.

{
"statusCode": 200,
"message": "Rentals retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439320",
"rental_start": "2025-01-21T22:00:00.000Z",
"rental_end": "2025-01-28T22:00:00.000Z",
"status": "active",
"amount": "70.00",
"remaining_days": 6,
"server_id": "507f1f77bcf86cd799439014",
"pool_id": "507f1f77bcf86cd799439300",
"server": {
"id": "507f1f77bcf86cd799439014"
}
}
]
}

Get detailed information about a specific rental, including the associated server and transaction.

NameInTypeRequiredDescription
idpathstringYesRental identifier
{
"statusCode": 200,
"message": "Rental retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439320",
"rental_start": "2025-01-21T22:00:00.000Z",
"rental_end": "2025-01-28T22:00:00.000Z",
"hold_days": 2,
"status": "active",
"amount": "70.00",
"remaining_days": 6,
"usage_days": 1,
"server_id": "507f1f77bcf86cd799439014",
"pool_id": "507f1f77bcf86cd799439300",
"server": {
"id": "507f1f77bcf86cd799439014",
"name": "node-us-nyc-1",
"country": "US",
"region": "us-east",
"city": "New York",
"datacenter": "NYC-DC1",
"model": "Intel Xeon E5-2680 v4",
"is_vm": false,
"specs": {
"cpu": {
"model": "AMD EPYC 7763",
"cores": 64,
"threads": 128,
"score": 48500,
"score_type": "passmark"
},
"ram": {
"capacity_gb": 256,
"type": "ECC DDR5",
"speed_mhz": 4800
},
"disks": {
"config": [
{ "count": 2, "capacity_gb": 1000, "type": "NVMe", "interface": "PCIe 4.0" },
{ "count": 6, "capacity_gb": 15000, "type": "NVMe", "interface": "PCIe 4.0" }
],
"total_gb": 92000,
"summary": "2x1TB NVMe + 6x15TB NVMe"
},
"network": {
"bandwidth_mbps": 10000,
"bandwidth_formatted": "10 Gbps",
"traffic_tb": 100,
"traffic_unlimited": false
},
"additional": {
"ipv4_count": 5,
"ipv6_enabled": true
}
}
},
"transaction": {
"id": "507f1f77bcf86cd799439321",
"amount": 70,
"currency": "USD",
"created_at": "2025-01-21T22:00:00.000Z"
}
}
}

Extend an existing rental for additional days. The number of days must match a supported pricing duration for the underlying server.

NameInTypeRequiredDescription
idpathstringYesRental identifier
NameTypeRequiredDescription
additional_daysnumberYesNumber of additional days to extend the rental (minimum 1; must match a server pricing duration)
{
"additional_days": 7
}
{
"statusCode": 200,
"message": "Rental extended successfully",
"data": {
"rental": {
"id": "507f1f77bcf86cd799439320",
"rental_end": "2025-02-04T22:00:00.000Z",
"status": "active",
"amount": "140.00",
"remaining_days": 13
},
"transaction": {
"id": "507f1f77bcf86cd799439322",
"amount": 70,
"currency": "USD"
}
}
}

Browse available servers and initiate new rentals. Servers can be rented for a specific duration and optionally assigned to a pool.

Browse the rental marketplace. Use the query parameters to filter by location, price, hardware specifications, and category.

NameInTypeRequiredDescription
countryquerystringNoFilter by country code (e.g., US, DE)
regionquerystringNoFilter by region (e.g., us-east, eu-central)
max_price_per_dayquerynumberNoMaximum price per day in USD
available_durationsqueryarrayNoFilter servers that support these rental durations (days)
min_cpu_coresquerynumberNoMinimum CPU cores
min_cpu_scorequerynumberNoMinimum CPU benchmark score
cpu_score_typequerystringNoCPU benchmark type for score filtering. One of passmark, geekbench_single, geekbench_multi
min_ram_gbquerynumberNoMinimum RAM in GB
ram_typesqueryarrayNoFilter by RAM types
min_total_storage_gbquerynumberNoMinimum total storage in GB
disk_typesqueryarrayNoFilter servers with these disk types
min_bandwidth_mbpsquerynumberNoMinimum network bandwidth in Mbps
min_traffic_tbquerynumberNoMinimum monthly traffic allowance in TB
unlimited_traffic_onlyquerybooleanNoShow only servers with unlimited traffic
categoryquerystringNoFilter by server category. One of compute, memory, storage, general, gpu
featured_onlyquerybooleanNoShow only featured servers
{
"statusCode": 200,
"message": "Available servers retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439014",
"name": "node-us-nyc-1",
"country": "US",
"region": "us-east",
"city": "New York",
"datacenter": "NYC-DC1",
"model": "Intel Xeon E5-2680 v4",
"is_vm": false,
"category": "compute",
"featured": true,
"popularity_rank": 1,
"setup_time_minutes": 15,
"pricing": {
"prices": {},
"price_tiers": {}
},
"specs": {
"cpu": {
"model": "AMD EPYC 7763",
"cores": 64,
"threads": 128,
"score": 48500,
"score_type": "passmark"
},
"ram": {
"capacity_gb": 256,
"type": "ECC DDR5",
"speed_mhz": 4800
},
"disks": {
"config": [
{ "count": 2, "capacity_gb": 1000, "type": "NVMe", "interface": "PCIe 4.0" },
{ "count": 6, "capacity_gb": 15000, "type": "NVMe", "interface": "PCIe 4.0" }
],
"total_gb": 92000,
"summary": "2x1TB NVMe + 6x15TB NVMe"
},
"network": {
"bandwidth_mbps": 10000,
"bandwidth_formatted": "10 Gbps",
"traffic_tb": 100,
"traffic_unlimited": false
},
"additional": {
"ipv4_count": 5,
"ipv6_enabled": true
}
}
}
]
}

Alias for GET /rentals. Returns all rented servers for the authenticated user.

This endpoint takes no parameters.

{
"statusCode": 200,
"message": "Rentals retrieved successfully",
"data": [
{
"id": "507f1f77bcf86cd799439320",
"rental_start": "2025-01-21T22:00:00.000Z",
"rental_end": "2025-01-28T22:00:00.000Z",
"status": "active",
"amount": "70.00",
"remaining_days": 6,
"server_id": "507f1f77bcf86cd799439014",
"pool_id": "507f1f77bcf86cd799439300",
"server": {
"id": "507f1f77bcf86cd799439014",
"name": "node-us-nyc-1",
"country": "US",
"region": "us-east",
"city": "New York",
"datacenter": "NYC-DC1",
"model": "Intel Xeon E5-2680 v4",
"is_vm": false,
"specs": {
"cpu": {
"model": "AMD EPYC 7763",
"cores": 64,
"threads": 128,
"score": 48500,
"score_type": "passmark"
},
"ram": {
"capacity_gb": 256,
"type": "ECC DDR5",
"speed_mhz": 4800
},
"disks": {
"config": [
{ "count": 2, "capacity_gb": 1000, "type": "NVMe", "interface": "PCIe 4.0" },
{ "count": 6, "capacity_gb": 15000, "type": "NVMe", "interface": "PCIe 4.0" }
],
"total_gb": 92000,
"summary": "2x1TB NVMe + 6x15TB NVMe"
},
"network": {
"bandwidth_mbps": 10000,
"bandwidth_formatted": "10 Gbps",
"traffic_tb": 100,
"traffic_unlimited": false
},
"additional": {
"ipv4_count": 5,
"ipv6_enabled": true
}
}
}
}
]
}

Alias for GET /rentals/{id}. Returns detailed information about a specific rented server.

NameInTypeRequiredDescription
idpathstringYesServer rental identifier
{
"statusCode": 200,
"message": "Rental details retrieved successfully",
"data": {
"id": "507f1f77bcf86cd799439320",
"rental_start": "2025-01-21T22:00:00.000Z",
"rental_end": "2025-01-28T22:00:00.000Z",
"hold_days": 2,
"status": "active",
"amount": "70.00",
"remaining_days": 6,
"usage_days": 1,
"server_id": "507f1f77bcf86cd799439014",
"pool_id": "507f1f77bcf86cd799439300",
"server": {
"id": "507f1f77bcf86cd799439014",
"name": "node-us-nyc-1",
"country": "US",
"region": "us-east",
"city": "New York",
"datacenter": "NYC-DC1",
"model": "Intel Xeon E5-2680 v4",
"is_vm": false,
"specs": {
"cpu": {
"model": "AMD EPYC 7763",
"cores": 64,
"threads": 128,
"score": 48500,
"score_type": "passmark"
},
"ram": {
"capacity_gb": 256,
"type": "ECC DDR5",
"speed_mhz": 4800
},
"disks": {
"config": [
{ "count": 2, "capacity_gb": 1000, "type": "NVMe", "interface": "PCIe 4.0" },
{ "count": 6, "capacity_gb": 15000, "type": "NVMe", "interface": "PCIe 4.0" }
],
"total_gb": 92000,
"summary": "2x1TB NVMe + 6x15TB NVMe"
},
"network": {
"bandwidth_mbps": 10000,
"bandwidth_formatted": "10 Gbps",
"traffic_tb": 100,
"traffic_unlimited": false
},
"additional": {
"ipv4_count": 5,
"ipv6_enabled": true
}
}
},
"transaction": {
"id": "507f1f77bcf86cd799439321",
"amount": 70,
"currency": "USD",
"created_at": "2025-01-21T22:00:00.000Z"
}
}
}

Rent an available server for a specified duration. The rental_days value must match a pricing duration supported by the server. Optionally, the rental can be assigned to one of the user’s pools.

NameInTypeRequiredDescription
idpathstringYesServer identifier
NameTypeRequiredDescription
pool_idstringNoOptional pool to assign the rental to (24-character hex ID)
rental_daysnumberYesNumber of days to rent (minimum 1; must match a server pricing duration)
{
"rental_days": 7,
"pool_id": "507f1f77bcf86cd799439300"
}
{
"statusCode": 201,
"message": "Server rented successfully",
"data": {
"rental": {
"id": "507f1f77bcf86cd799439320",
"server_id": "507f1f77bcf86cd799439014",
"rental_start": "2025-01-21T22:00:00.000Z",
"rental_end": "2025-01-28T22:00:00.000Z",
"hold_days": 2,
"actual_usage_days": 0,
"status": "active"
},
"transaction": {
"id": "507f1f77bcf86cd799439321",
"amount": 70,
"currency": "USD"
}
}
}