> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/~/changes/305/docs/api/dedicated-servers.md).

# Dedicated Servers

## ⚡ Deployments

## \[v2] Deploy

> \[Rate Limit: 40 req/s] Create a new deployment - containerized instance of an application version.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v2 API","version":"2026.08.05"},"tags":[{"name":"Deployments"},{"name":"Dedicated Servers"}],"servers":[{"url":"https://api.edgegap.com/v2","description":"v2"}],"security":[{"apiKey1":[]}],"components":{"securitySchemes":{"apiKey1":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"DeploymentV2":{"required":["application","users","version"],"properties":{"application":{"type":"string","description":"Name of the application that will be deployed"},"version":{"type":"string","description":"Name of the version within the application that will be deployed"},"resources":{"type":"object","properties":{"cpu_units":{"type":"integer","description":"Amount of vCPU units assigned to deployment. (1024 units = 1 vCPU).","minimum":256},"memory_mib":{"type":"integer","description":"Amount of memory MB assigned to deployment, at most double your vCPU units. (1024 MB = 1 GB).","minimum":256}},"required":["cpu_units","memory_mib"],"description":"Overrides app version resource specification if supplied."},"require_cached_locations":{"type":"boolean","default":false,"description":"Deploy faster by limiting placement to locations with cached image.","nullable":true},"users":{"type":"array","description":"List of users. These users will be used to select the locations for the deployment","minItems":1,"items":{"type":"object","properties":{"user_type":{"type":"string","description":"Type of user (e.g., ip_address or geo_coordinates)"},"user_data":{"type":"object","description":"Dynamic user data depending on user_type","properties":{}}},"required":["user_data","user_type"]}},"environment_variables":{"type":"array","description":"List of environment variables to inject into the deployment","items":{"type":"object","properties":{"key":{"type":"string","description":"Environment variable key"},"value":{"type":"string","description":"Environment variable value"},"is_hidden":{"type":"boolean","description":"An hidden environment variable is not shown in the UI"}},"required":["is_hidden","key","value"]}},"tags":{"type":"array","description":"List of tags to associate with the deployment","items":{"type":"string"}},"webhook_on_ready":{"description":"Webhook to call when the deployment is ready","allOf":[{"$ref":"#/components/schemas/BasicWebhook"}]},"webhook_on_error":{"description":"Webhook to call when the deployment is in error","allOf":[{"$ref":"#/components/schemas/BasicWebhook"}]},"webhook_on_terminated":{"description":"Webhook to call when the deployment is terminated","allOf":[{"$ref":"#/components/schemas/BasicWebhook"}]}},"type":"object"},"BasicWebhook":{"required":["url"],"properties":{"url":{"type":"string","description":"Webhook URL"}},"type":"object"}}},"paths":{"/deployments":{"post":{"summary":"[v2] Deploy","deprecated":false,"description":"[Rate Limit: 40 req/s] Create a new deployment - containerized instance of an application version.","operationId":"v2-deployment-create","tags":["Deployments","Dedicated Servers"],"parameters":[{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentV2"}}}},"responses":{"202":{"description":"Deployment Request Accepted","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"request_id":{"type":"string","description":"ID of your deployment, also referred to as request ID."}},"required":["request_id"]}}},"headers":{}},"400":{"description":"Client Side Request Error","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"Error message"},"details":{"type":"object","description":"Additional error details","properties":{}}},"required":["message"]}}},"headers":{}},"401":{"description":"Unauthorized - Missing Token","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"Error message"},"details":{"type":"object","description":"Additional error details","properties":{}}},"required":["message"]}}},"headers":{}},"422":{"description":"Couldn't Allocate Server","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"request_id":{"type":"string","description":"Request ID. Unique identifier of the deployment request"},"message":{"type":"string","description":"Error message"}},"required":["request_id","message"]}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"Error message"},"details":{"type":"object","description":"Additional error details","properties":{}}},"required":["message"]}}},"headers":{}}}}}}}
```

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/status/{request\_id}" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/stop/{request\_id}" method="delete" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/self/stop/{request\_id}/{access\_point\_id}" method="delete" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments/bulk-stop" method="post" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/locations" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployment/{request\_id}/container-logs" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/metrics/deployment/{request\_id}" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

### Legacy \[v1]

{% hint style="warning" %}
Legacy v1/deploy API endpoint is **outdated, and has been replaced by v2 API** - see [#deployments](#deployments "mention").
{% endhint %}

## 🗺️ Private Fleets

## List Private Fleet Hosts

> \<strong>\[Rate Limit: 10/seconds]\</strong> List all hosts in a private fleet.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v2 API","version":"2026.08.05"},"tags":[{"name":"Dedicated Servers"},{"name":"Private Fleets"}],"servers":[{"url":"https://api.edgegap.com/v2","description":"v2"}],"security":[{"apiKey1":[]}],"components":{"securitySchemes":{"apiKey1":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}}},"paths":{"/private-fleets/{fleet-name}/hosts":{"get":{"summary":"List Private Fleet Hosts","deprecated":false,"description":"<strong>[Rate Limit: 10/seconds]</strong> List all hosts in a private fleet.","operationId":"private-fleet-hosts-list","tags":["Dedicated Servers","Private Fleets"],"parameters":[{"name":"fleet-name","in":"path","description":"Name of your private fleet.","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"host_id":{"type":"string","description":"Unique private fleet host identifier, used to deploy on this host."},"status":{"type":"string","description":"Lifecycle stage of the host, only ACTIVE hosts accept deployments.","enum":["PENDING","ACTIVE"]},"ip_address":{"type":"string","description":"Public IP address of the host.","nullable":true},"latitude":{"type":"number","description":"Approximate geographic latitude of the host.","nullable":true},"longitude":{"type":"number","description":"Approximate geographic longitude of the host.","nullable":true},"city":{"type":"string","description":"City in which the host is located.","nullable":true},"country":{"type":"string","description":"Country in which the host is located.","nullable":true},"continent":{"type":"string","description":"Continent in which the host is located.","nullable":true},"allocated_cpu_units":{"type":"integer","description":"Total virtual CPU units currently in use for deployments, beacons, and orchestration.","nullable":true},"allocated_memory_mb":{"type":"integer","description":"Total memory in MB currently in use for deployments, beacons, and orchestration."},"allocatable_cpu_units":{"type":"integer","description":"Total available virtual CPU units for deployments.","nullable":true},"allocatable_memory_mb":{"type":"integer","description":"Total available memory in MB for deployments.","nullable":true},"beacon":{"type":"object","properties":{"tcp_port":{"type":"integer","description":"External beacon TCP port used to perform TCP ping."},"udp_port":{"type":"integer","description":"External beacon UDP port used to perform UDP ping."},"ip_address":{"type":"string","description":"Public IP address used to perform ping measurement."}},"required":["tcp_port","udp_port","ip_address"],"description":"Assigned beacon information, if enabled for this fleet.","nullable":true},"created_at":{"type":"string","description":"Timestamp of creation in UTC, ISO 8601 format."},"updated_at":{"type":"string","description":"Timestamp of last update in UTC, ISO 8601 format."},"centroid":{"type":"object","properties":{"label":{"type":"string","description":"Human readable label."},"latitude":{"type":"number","description":"Approximate geographic latitude of the centroid."},"longitude":{"type":"number","description":"Approximate geographic longitude of the centroid."},"radius_km":{"type":"number","description":"Approximate geographic radius used to pick primary and fallback locations."},"desired_host_count":{"type":"integer","description":"Requested amount of hosts to be started under this centroid."}},"required":["label","latitude","longitude","radius_km","desired_host_count"],"description":"Centroid information used to orchestrate placement of the host."},"delete_schedule":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier of deletion schedule."},"scheduled_at":{"type":"string","description":"Timestamp of scheduled deletion in UTC, ISO 8601 format."}},"description":"If defined, specified when the host will be deleted.","required":["uuid","scheduled_at"],"nullable":true},"fleet_host_specifications":{"type":"object","properties":{"cpu_units":{"type":"integer","description":"Host specification vCPU units selected during fleet creation."},"memory_mb":{"type":"integer","description":"Host specification memory MB selected during fleet creation."},"base_clock_speed_mhz":{"type":"integer","description":"Host specification base CPU clock frequency selected during fleet creation."}},"required":["cpu_units","memory_mb","base_clock_speed_mhz"]}},"description":"List of private fleet hosts.","required":["host_id","status","allocated_cpu_units","allocated_memory_mb","created_at","updated_at","centroid","fleet_host_specifications"]}},"total_count":{"type":"integer","minimum":0},"pagination":{"type":"object","properties":{"number":{"type":"integer","minimum":1},"next_page_number":{"type":"integer","minimum":1,"nullable":true},"previous_page_number":{"type":"integer","minimum":1,"nullable":true},"paginator":{"type":"object","properties":{"num_pages":{"type":"integer","minimum":1}},"required":["num_pages"]},"has_next":{"type":"boolean","default":true},"has_previous":{"type":"boolean","default":false}},"required":["number","next_page_number","previous_page_number","paginator","has_next","has_previous"]}},"required":["data","total_count","pagination"]}}},"headers":{}},"400":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"Error message"},"details":{"type":"object","description":"Additional error details","properties":{}}},"required":["message"]}}},"headers":{}},"401":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"Error message"},"details":{"type":"object","description":"Additional error details","properties":{}}},"required":["message"]}}},"headers":{}},"500":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"Error message"},"details":{"type":"object","description":"Additional error details","properties":{}}},"required":["message"]}}},"headers":{}}}}}}}
```

## &#x20;🔖 Tags

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments/{request\_id}/tags" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments/{request\_id}/tags/{tag\_name}" method="get" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments/{request\_id}/tags" method="post" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments/{request\_id}/tags/{tag\_name}" method="delete" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}

{% openapi src="<https://api.edgegap.com/swagger.json>" path="/v1/deployments/{request\_id}/tags/{tag\_name}" method="patch" %}
<https://api.edgegap.com/swagger.json>
{% endopenapi %}
