Dedicated Servers
⚡ Deployments
[Rate Limit: 40/seconds] Initiate a new deployment. A deployment is a containerized server instance of an application version running on the Edgegap platform.
Name of the application that will be deployed
my-appName of the version within the application that will be deployed
25.05.30-16.45.19-04Deploy faster by limiting placement to locations with cached image.
falseList of tags to associate with the deployment
my-custom-tagWebhook to call when the deployment is ready
Webhook to call when the deployment is in error
Webhook to call when the deployment is terminated
Deployment Request Accepted
Client Side Request Error
Unauthorized - Missing Token
Couldn't Allocate Server
Internal Server Error
POST /v2/deployments HTTP/1.1
Host: api.edgegap.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 542
{
"application": "my-app",
"version": "25.05.30-16.45.19-04",
"require_cached_locations": false,
"users": [
{
"user_type": "ip_address",
"user_data": {
"ip_address": "75.28.35.192"
}
},
{
"user_type": "geo_coordinates",
"user_data": {
"latitude": 45.508888,
"longitude": -73.561668
}
}
],
"environment_variables": [
{
"key": "MY_ENVIRONMENT_VARIABLE",
"value": "my-value",
"is_hidden": false
}
],
"tags": [
"my-custom-tag"
],
"webhook_on_ready": {
"url": "https://my-webhook.com"
},
"webhook_on_error": {
"url": "https://my-webhook.com"
},
"webhook_on_terminated": {
"url": "https://my-webhook.com"
}
}{
"request_id": "a69f8e3e0555"
}[Rate Limit: 20/second] Retrieve the information for a deployment.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example:
93924761ccde
Success
Bad Request
Unauthorized
Internal Server Error
GET /v1/status/{request_id} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"request_id": "c0653765de3b",
"fqdn": "abc123.test.edgegap.com",
"app_name": "test",
"app_version": "v1",
"current_status": "Status.DEPLOYING",
"running": true,
"whitelisting_active": true,
"start_time": "2025-11-29 22:35:31.971359",
"removal_time": "2025-11-29 22:35:31.971359",
"elapsed_time": 1,
"last_status": "Status.SEEKING",
"error": true,
"error_detail": "",
"ports": {
"7777": {
"external": 31669,
"internal": 7777,
"protocol": "UDP",
"name": "7777",
"tls_upgrade": false,
"link": "example.com:31669",
"proxy": 65002
},
"web": {
"external": 31587,
"internal": 8080,
"protocol": "http",
"name": "web",
"tls_upgrade": true,
"link": "https://example.com:31587",
"proxy": 65001
}
},
"public_ip": "100.10.0.85",
"sessions": [
{
"session_id": "abc123",
"status": "Status.READY",
"ready": true,
"linked": true,
"kind": "DEFAULT | SEATS | MATCH",
"user_count": "10"
}
],
"location": {
"city": "Montreal",
"country": "Canada",
"continent": "North America",
"administrative_division": "Quebec",
"timezone": "Eastern Time",
"latitude": 45.508888,
"longitude": -73.561668
},
"tags": [
"production"
],
"sockets": "5",
"sockets_usage": "2",
"command": "",
"arguments": "",
"max_duration": 1
}Request to stop a Deployment, triggering a graceful shutdown (SIGTERM). Returns 200 or 202 if deployment status is not READY and not ERROR, and stops deployment once either of these statuses is reached - see Deployment Lifecycle.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Unique Identifier to keep track of your request across all Edgegap ecosystem. It's included in the response of the app deploy, example:
93924761ccde
If you want to enable the container log storage for the deployment. You can put 'true' if you already have endpoint storage associated with your deployment's app version. You can put 'false' if it is enabled by default and you want to disable it for this specific request. Or you can put the name of your endpoint storage and if it is valid we will store the container logs.
Success
Accepted
Bad Request
Unauthorized
Forbidden
Not Found
Instance Already terminated
Internal Server Error
DELETE /v1/stop/{request_id} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"message": "Instance 93924761ccde will be deleted",
"deployment_summary": {
"request_id": "c0653765de3b",
"fqdn": "abc123.test.edgegap.com",
"app_name": "test",
"app_version": "v1",
"current_status": "Status.DEPLOYING",
"running": true,
"whitelisting_active": true,
"start_time": "2025-11-29 22:35:31.971359",
"removal_time": "2025-11-29 22:35:31.971359",
"elapsed_time": 1,
"last_status": "Status.SEEKING",
"error": true,
"error_detail": "",
"ports": {
"7777": {
"external": 31669,
"internal": 7777,
"protocol": "UDP",
"name": "7777",
"tls_upgrade": false,
"link": "example.com:31669",
"proxy": 65002
},
"web": {
"external": 31587,
"internal": 8080,
"protocol": "http",
"name": "web",
"tls_upgrade": true,
"link": "https://example.com:31587",
"proxy": 65001
}
},
"public_ip": "100.10.0.85",
"sessions": [
{
"session_id": "abc123",
"status": "Status.READY",
"ready": true,
"linked": true,
"kind": "DEFAULT | SEATS | MATCH",
"user_count": "10"
}
],
"location": {
"city": "Montreal",
"country": "Canada",
"continent": "North America",
"administrative_division": "Quebec",
"timezone": "Eastern Time",
"latitude": 45.508888,
"longitude": -73.561668
},
"tags": [
"production"
],
"sockets": "5",
"sockets_usage": "2",
"command": "",
"arguments": "",
"max_duration": 1
}
}Delete a deployment from the inside of a container. You should use this URL inside your deployment. The URL is injected in your deployment and can be found via the environment variable ARBITRIUM_DELETE_URL.
Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example:
93924761ccde
Access Point Number provided by our system
If you want to enable the container log storage for the deployment. You can put 'true' if you already have endpoint storage associated with your deployment's app version. You can put 'false' if it is enabled by default and you want to disable it for this specific request. Or you can put the name of your endpoint storage and if it is valid we will store the container logs.
Auto Generated token. This token is injected in your deployment and can be found via the environment variable named ARBITRIUM_DELETE_TOKEN
Success
Accepted
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
DELETE /v1/self/stop/{request_id}/{access_point_id} HTTP/1.1
Host: api.edgegap.com
authorization: text
Accept: */*
{
"message": "Instance 93924761ccde will be deleted",
"deployment_summary": {
"request_id": "c0653765de3b",
"fqdn": "abc123.test.edgegap.com",
"app_name": "test",
"app_version": "v1",
"current_status": "Status.DEPLOYING",
"running": true,
"whitelisting_active": true,
"start_time": "2025-11-29 22:35:31.971359",
"removal_time": "2025-11-29 22:35:31.971359",
"elapsed_time": 1,
"last_status": "Status.SEEKING",
"error": true,
"error_detail": "",
"ports": {
"7777": {
"external": 31669,
"internal": 7777,
"protocol": "UDP",
"name": "7777",
"tls_upgrade": false,
"link": "example.com:31669",
"proxy": 65002
},
"web": {
"external": 31587,
"internal": 8080,
"protocol": "http",
"name": "web",
"tls_upgrade": true,
"link": "https://example.com:31587",
"proxy": 65001
}
},
"public_ip": "100.10.0.85",
"sessions": [
{
"session_id": "abc123",
"status": "Status.READY",
"ready": true,
"linked": true,
"kind": "DEFAULT | SEATS | MATCH",
"user_count": "10"
}
],
"location": {
"city": "Montreal",
"country": "Canada",
"continent": "North America",
"administrative_division": "Quebec",
"timezone": "Eastern Time",
"latitude": 45.508888,
"longitude": -73.561668
},
"tags": [
"production"
],
"sockets": "5",
"sockets_usage": "2",
"command": "",
"arguments": "",
"max_duration": 1
}
}Make a bulk delete of deployments using filters. All the deployments matching the given filters will be permanently deleted.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Accepted
Bad Request
Unauthorized
Internal Server Error
POST /v1/deployments/bulk-stop HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 82
{
"filters": [
{
"field": "request_id",
"values": [
"c0653765de3b"
],
"filter_type": "any"
}
]
}{
"processable": [
{
"request_id": "c0653765de3b"
}
]
}[Rate Limit: 10/second] List all deployments.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Query to filter the deployments.
Success
Bad Request
Unauthorized
Internal Server Error
GET /v1/deployments HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"request_id": "2d35052ec4e9",
"fqdn": "abc123.test.edgegap.com",
"start_time": "2025-11-29 22:35:31.971359",
"ready": true,
"public_ip": "100.10.0.85",
"ports": {
"7777": {
"external": 31669,
"internal": 7777,
"protocol": "UDP",
"name": "7777",
"tls_upgrade": false,
"link": "example.com:31669",
"proxy": 65002
},
"web": {
"external": 31587,
"internal": 8080,
"protocol": "http",
"name": "web",
"tls_upgrade": true,
"link": "https://example.com:31587",
"proxy": 65001
}
},
"tags": [
"production"
],
"sockets": "5",
"sockets_usage": "2",
"is_joinable_by_session": true
}
],
"total_count": 1,
"pagination": {
"number": 1,
"next_page_number": 1,
"previous_page_number": 1,
"paginator": {
"num_pages": 1
},
"has_next": true,
"has_previous": true
},
"message": [
""
]
}List all the locations available to deploy on. You can specify an application and a version to filter out the locations that don’t have enough resources to deploy this application version.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
The App Name you want to filter with capacity
The Version Name you want to filter with capacity
The type of the location
Gets locations with tags. Set to: "true" to have the tags
Success
Bad Request
Unauthorized
Internal Server Error
GET /v1/locations HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"locations": [
{
"city": "Montreal",
"continent": "North America",
"country": "Canada",
"timezone": "Eastern Time",
"administrative_division": "Quebec",
"latitude": "45.3324097",
"longitude": "-73.2693626",
"type": "standard",
"tags": [
{
"key": "key",
"value": "value"
}
]
}
],
"messages": [
""
]
}Retrieve the logs of your container. Logs are not available when your deployment is terminated. You can set up an endpoint storage to save your logs. Endpoint Storage Documentation
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Success
Bad Request
Unauthorized
Not Found
Internal Server Error
GET /v1/deployment/{request_id}/container-logs HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"logs": "Logs of the container",
"encoding": "utf-8",
"crash_logs": "Logs of the container when it crashed",
"crash_data": {
"exit_code": 1,
"message": "Container crashed",
"restart_count": 1
},
"logs_link": "Link to the logs"
}Get the metrics for a specific deployment based on the start_time, end_time and steps. raw parameter can be set to true to get the raw data.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Starting time for the query. Default to deployment start time. Should match %Y-%m-%d %H:%M:%S.%f
Example: 2021-07-10 00:00:00.00
End time for the metrics. Default to now.Must be greater than start_time. Should match %Y-%m-%d %H:%M:%S.%f
Example: 2021-07-19 00:00:00.00
Steps between each metrics.
Example: 30s, 1m, 5m 10m, 1h
If set to true, will return the raw data. Default to false.
Success
Bad Request
Unauthorized
Not Found
Unprocessable
Internal Server Error
GET /v1/metrics/deployment/{request_id} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"total": {
"receive_total": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
},
"transmit_total": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
},
"disk_read_total": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
},
"disk_write_total": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
}
},
"cpu": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
},
"mem": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
},
"network": {
"receive": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
},
"transmit": {
"labels": [
"00:00:00"
],
"datasets": [
"2458"
],
"timestamps": [
"2021-07-14 14:17:37.711"
]
}
}
}Legacy [v1]
Legacy v1/deploy API endpoint is outdated, and has been replaced by v2 API - see ⚡ Deployments.
🗺️ Private Fleets
[Rate Limit: 40/seconds] Initiate a new private fleet deployment. A deployment is a containerized server instance of an application version running on the Edgegap platform.
Name of the application that will be deployed
my-appName of the version within the application that will be deployed
25.05.30-16.45.19-04Deploy faster by limiting placement to locations with cached image.
falsePreferred and prioritized Private Host IDs to try before overflowing to cloud.
alpha-north-america-95fab093List of tags to associate with the deployment
my-custom-tagWebhook to call when the deployment is ready
Webhook to call when the deployment is in error
Webhook to call when the deployment is terminated
Invalid Application or Application Version. No deployment has been created
Unauthorized. No deployment has been created.
Could not allocate an Edge Server for the deployment. A deployment has been created. Deployment is in error state. You can delete it manually or it will be deleted automatically by our system after some some times
Internal Server Error
POST /v2/private-fleets:deploy HTTP/1.1
Host: api.edgegap.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 594
{
"application": "my-app",
"version": "25.05.30-16.45.19-04",
"require_cached_locations": false,
"private_host_ids": [
"alpha-north-america-95fab093"
],
"users": [
{
"user_type": "ip_address",
"user_data": {
"ip_address": "75.28.35.192"
}
},
{
"user_type": "geo_coordinates",
"user_data": {
"latitude": 45.508888,
"longitude": -73.561668
}
}
],
"environment_variables": [
{
"key": "MY_ENVIRONMENT_VARIABLE",
"value": "my-value",
"is_hidden": false
}
],
"tags": [
"my-custom-tag"
],
"webhook_on_ready": {
"url": "https://my-webhook.com"
},
"webhook_on_error": {
"url": "https://my-webhook.com"
},
"webhook_on_terminated": {
"url": "https://my-webhook.com"
}
}{
"request_id": "a69f8e3e0555"
}[Rate Limit: 10/seconds] List all hosts in a private fleet.
Name of your private fleet.
test-fleetGET /v2/private-fleets/{fleet-name}/hosts HTTP/1.1
Host: api.edgegap.com
Authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"host_id": "alpha-north-america-95fab093",
"status": "ACTIVE",
"ip_address": "192.53.120.48",
"latitude": 43.6173,
"longitude": -79.3186,
"city": "Toronto",
"country": "Canada",
"continent": "North America",
"allocated_cpu_units": 1152,
"allocated_memory_mb": 2176,
"allocatable_cpu_units": 12928,
"allocatable_memory_mb": 25178,
"beacon": {
"tcp_port": 30974,
"udp_port": 31843,
"ip_address": "192.53.120.48"
},
"created_at": "2025-11-26T16:32:30.825138Z",
"updated_at": "2025-11-26T16:32:30.825144Z",
"pin": {
"label": "Alpha",
"latitude": 43.98884323260136,
"longitude": -78.67419552556069,
"radius_km": 700,
"radius_strategy": 1,
"cpu_cores": 16,
"memory_gb": 32,
"clock_speed_ghz": 2,
"desired_host_count": 1
},
"delete_schedules": [
{
"uuid": "6458350c-52ca-453b-bb1b-e2f7c9b4f4e9",
"scheduled_at": "2025-11-30T23:59:00Z"
}
]
}
]
} 🔖 Tags
List tags for a deployment.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Success
Bad Request
Unauthorized
Not Found
Internal Server Error
GET /v1/deployments/{request_id}/tags HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"tags": [
{
"name": "v1.0.0",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}
],
"count": 1,
"pagination": {}
}Get tag for a deployment.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Success
Bad Request
Unauthorized
Not Found
Internal Server Error
GET /v1/deployments/{request_id}/tags/{tag_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"name": "v1.0.0",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}Create a tag for a deployment. The tag will however not be injected into a running container.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
The name of the tag
v1.0.0Success
Bad Request
Unauthorized
Not Found
Conflict
Internal Server Error
POST /v1/deployments/{request_id}/tags HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 17
{
"name": "v1.0.0"
}{
"name": "v1.0.0",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}Delete a tag for a deployment. The tag will however not be removed from the environment of a running container.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
No Content
Bad Request
Unauthorized
Not Found
Internal Server Error
DELETE /v1/deployments/{request_id}/tags/{tag_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
No content
Update a tag for a deployment.
To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
The name of the tag
v1.0.0Success
Bad Request
Unauthorized
Not Found
Conflict
Internal Server Error
PATCH /v1/deployments/{request_id}/tags/{tag_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 17
{
"name": "v1.0.0"
}{
"name": "v1.0.0",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}Last updated
Was this helpful?

