LogoLogo
edgegap.comDashboard
  • 📘Learning Center
    • Getting Started
    • Unity Games
      • Getting Started - Servers
      • Developer Tools
    • Unreal Engine Games
      • Getting Started - Servers
      • Developer Tools
    • Matchmaking
      • Getting Started
      • Matchmaker In-Depth
      • Ping Beacons
    • Advanced Features
      • Apps and Versions
      • Deployments
      • Managed Clusters
  • API Reference
    • Dedicated Servers
    • Integration
    • Matchmaking
    • Peer to Peer
  • Release Notes
  • 📚Documentation
    • Sample Projects
      • Unity Netcodes
        • Unity NGO
        • Photon Fusion 1
        • Photon Fusion 2
        • Mirror
        • Mirror WebGL
        • Fishnet
        • Fishnet WebGL
        • Photon Bolt
      • Unreal Top-Down Sample
      • NuxtJS
      • Ruby On Rails
    • Tools & Integrations
      • Container
        • What is Docker
        • Your First Docker
        • SSH in Your Container
        • External Registries
          • Docker Hub
          • AWS ECR
          • GCP GCR
          • Gitlab registry
      • Deploy from Nakama
      • EOS Lobby Integration
      • Switch From Gamelift
      • Switch From Multiplay
      • Playfab Bridge
    • Container Registry
    • Deployment
      • Endpoint Storage
        • How to Save Logs
        • Upload File to Deployment
      • Webhooks
    • Session
      • How They Work
      • Application Version Configuration
      • Manage Request
      • Selectors Filtering
    • Fleet
      • Fleet Policy
      • Policy Filter
      • Linking Version
      • Fleet's Deployment
    • Relays (P2P)
      • Relay Edgegap API
      • Transport Samples
      • Game Integration
      • Lobby Service
      • Lobby API
      • Unity Lobby Sample
    • Glossary
    • SLA Terms
Powered by GitBook
LogoLogo

Connect with Community

  • Discord
  • Linkedin
  • X

Read More

  • Release Notes
  • Blog
  • Enterprise
  • Legal
  • edgegap.com

© 2025 Edgegap

On this page

Was this helpful?

  1. API Reference

Dedicated Servers

PreviousAPI ReferenceNextIntegration

Last updated 3 months ago

Was this helpful?

⚡ Deployments

🚢 Smart Fleets

🔖 Tags

Stop a deployment

delete

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.

Authorizations
Path parameters
request_idstringRequired

Unique Identifier to keep track of your request across all Edgegap ecosystem. It's included in the response of the app deploy, example:

93924761ccde
Query parameters
container_log_storagestringOptional

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.

Responses
200
Success
application/json
202
Accepted
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not Found
application/json
410
Instance Already terminated
application/json
500
Internal Server Error
application/json
delete
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-06-20 12:00:43.066217",
    "removal_time": "2025-06-20 12:00:43.066217",
    "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 inside the container

delete

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.

Path parameters
request_idstringRequired

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_idintegerRequired

Access Point Number provided by our system

Query parameters
container_log_storagestringOptional

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.

Header parameters
authorizationstringRequired

Auto Generated token. This token is injected in your deployment and can be found via the environment variable named ARBITRIUM_DELETE_TOKEN

Responses
200
Success
application/json
202
Accepted
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
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-06-20 12:00:43.066217",
    "removal_time": "2025-06-20 12:00:43.066217",
    "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
  }
}

List All Deployments

get

[Rate Limit: 10/second] List all deployments.

Authorizations
Query parameters
querystringOptional

Query to filter the deployments.

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
get
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-06-20 12:00:43.066217",
      "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 Locations

get

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.

Authorizations
Query parameters
appstringOptional

The App Name you want to filter with capacity

versionstringOptional

The Version Name you want to filter with capacity

typestringOptional

The type of the location

tagsstringOptional

Gets locations with tags. Set to: "true" to have the tags

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
get
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": [
    ""
  ]
}

Get Deployment Container Logs

get

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

Authorizations
Path parameters
request_idanyRequired
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
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 a Deployment Metrics

get

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.

Authorizations
Path parameters
request_idanyRequired
Query parameters
start_timestringOptional

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_timestringOptional

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
stepsstringOptional

Steps between each metrics.

	Example: 30s, 1m, 5m 10m, 1h
rawstringOptional

If set to true, will return the raw data. Default to false.

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
422
Unprocessable
application/json
500
Internal Server Error
application/json
get
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"
      ]
    }
  }
}

Get a Fleet

get

Retrieve a fleet with its details.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
GET /v1/fleet/{fleet_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "name": "fleet_name",
  "enabled": false,
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

List All Fleets

get

List all the fleets you own.

Authorizations
Query parameters
pageintegerOptional

Page number for pagination

limitintegerOptional

Limit of Fleet for each page

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
get
GET /v1/fleets HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "fleets": [
    {
      "name": "fleet_name",
      "enabled": false,
      "create_time": "2022-01-01 00:00:00.000000",
      "last_updated": "2022-01-01 00:00:00.000000"
    }
  ],
  "pagination": {
    "number": 1,
    "next_page_number": 1,
    "previous_page_number": 1,
    "paginator": {
      "num_pages": 1
    },
    "has_next": true,
    "has_previous": true
  }
}

Delete a Fleet

delete

Delete a fleet, its policies and links between the application versions.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/fleet/{fleet_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "message": "text"
}

List All Policies of a Fleet

get

List all the policies of a fleet.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

Query parameters
pageintegerOptional

Page number for pagination

limitintegerOptional

Limit of Fleet for each page

Header parameters
X-Fieldsstring · maskOptional

An optional fields mask

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
GET /v1/fleet/{fleet_name}/policies HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "policies": [
    {
      "name": "policy_name",
      "enabled": true,
      "type": "Location",
      "minimum": 1,
      "maximum": 1,
      "threshold": 0.9,
      "data": {
        "filters": [
          {
            "field": "city",
            "values": [
              "Montreal"
            ],
            "filter_type": "any"
          }
        ]
      },
      "create_time": "2022-01-01 00:00:00.000000",
      "last_updated": "2022-01-01 00:00:00.000000"
    }
  ],
  "pagination": {
    "number": 1,
    "next_page_number": 1,
    "previous_page_number": 1,
    "paginator": {
      "num_pages": 1
    },
    "has_next": true,
    "has_previous": true
  }
}

Link an Application Version to a Fleet

put

Link an application version to a fleet. By linking this version, the fleet will automatically create deployments of this version according to the fleet policies.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

app_namestringRequired

The name of the application to link

version_namestringRequired

The name of the application version to link

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
put
PUT /v1/fleet/{fleet_name}/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "app": "app_name",
  "app_version": "version_name",
  "fleet": "fleet_name",
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

Unlink an Application Version From a Fleet

delete

Unlink an application version from a fleet. It will not delete the application version or the fleet

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

app_namestringRequired

The name of the application to link

version_namestringRequired

The name of the application version to link

Responses
204
Success
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/fleet/{fleet_name}/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*

No content

Delete a Policy

delete

Delete a policy. It will not delete the fleet.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

policy_namestringRequired

The name of the policy to delete

Responses
200
OK
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/fleet/{fleet_name}/policies/{policy_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "message": "text"
}

Get a Policy

get

Retrieve a specific policy of a fleet.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

policy_namestringRequired

The name of the policy

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
GET /v1/fleet/{fleet_name}/policies/{policy_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "name": "policy_name",
  "enabled": true,
  "type": "Location",
  "minimum": 1,
  "maximum": 1,
  "threshold": 0.9,
  "data": {
    "filters": [
      {
        "field": "city",
        "values": [
          "Montreal"
        ],
        "filter_type": "any"
      }
    ]
  },
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

List tags for a Deployment

get

List tags for a deployment.

Authorizations
Path parameters
request_idanyRequired
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
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

get

Get tag for a deployment.

Authorizations
Path parameters
request_idanyRequired
tag_nameanyRequired
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
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"
}

Delete Tag for a Deployment

delete

Delete a tag for a deployment. The tag will however not be removed from the environment of a running container.

Authorizations
Path parameters
request_idanyRequired
tag_nameanyRequired
Responses
204
No Content
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/deployments/{request_id}/tags/{tag_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*

No content

  • ⚡ Deployments
  • POSTCreate a Deployment request.
  • GETGet a Deployment Status and Information
  • DELETEStop a deployment
  • DELETEDelete a Deployment from inside the container
  • POSTDelete Deployments in Bulk
  • GETList All Deployments
  • GETList All Locations
  • GETGet Deployment Container Logs
  • GETGet a Deployment Metrics
  • 🚢 Smart Fleets
  • PATCHUpdate a Fleet
  • GETGet a Fleet
  • GETList All Fleets
  • DELETEDelete a Fleet
  • POSTCreate a Fleet Policy
  • POSTCreate a Fleet
  • GETList All Policies of a Fleet
  • PUTLink an Application Version to a Fleet
  • DELETEUnlink an Application Version From a Fleet
  • DELETEDelete a Policy
  • GETGet a Policy
  • PATCHUpdate a Policy
  • 🔖 Tags
  • GETList tags for a Deployment
  • GETGet tag for a Deployment
  • POSTCreate Tag for a Deployment
  • DELETEDelete Tag for a Deployment
  • PATCHUpdate Tag for a Deployment

Get a Deployment Status and Information

get

[Rate Limit: 20/second] Retrieve the information for a deployment.

Authorizations
Path parameters
request_idstringRequired

Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example:

93924761ccde
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
get
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-06-20 12:00:43.066217",
  "removal_time": "2025-06-20 12:00:43.066217",
  "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
}

Create a Deployment request.

post

[Rate Limit: 40/second] Create a new deployment. A deployment is a containerized instance of an application version running on the Edgegap platform.

Authorizations
Body
app_namestringRequired

The application you want to deploy a version of.

Example: kart-racing
version_namestringOptional

The application version you want to deploy a container, if not present, the last version created is automatically chosen.

Example: production-v1.0
is_public_appbooleanOptional

(DEPRECATED) - No longer used and you don't need to set it.

Default: false
ip_liststring[]Optional

This parameter is not optional, but mutually exclusive with the geo_ip_list parameter. One of them is required. List of IP representing your users. These will be used to determine the best location for your deployment.

telemetry_profile_uuid_liststring[]Optional

(DEPRECATED)

Example: ["85cf70e6-f871-42c6-96f0-65ff5bd469b5"]
skip_telemetrybooleanOptional

If true, the deployment will skip the telemetry measurement. This result in a faster time to deploy.

Default: true
webhook_urlstringOptional

A URL to send a POST request when the deployment is ready. The request will contain the deployment status. The content of the request is the same as the v1/status/{request_id} endpoint.

Example: https://www.webhook.com/
tagsstring[]Optional

List of tags associated with the deployment. These tags will be shown in the dashboard.

ap_sort_strategystring · enumOptional

(DEPRECATED) - No longer used and you don't need to set it.

Example: basicPossible values:
commandstring | nullOptional

Allows to override the container command for this deployment. This is an advanced feature and should be used with caution.If set to null, the default command of the container will be used.

Example: null | 'string'
argumentsstring | nullOptional

Allows to override the container arguments for this deployment. This is an advanced feature and should be used with caution.If set to null, the default arguments of the container will be used.

Example: null | 'string'
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
409
Conflict
application/json
422
Unprocessable
application/json
post
POST /v1/deploy HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 661

{
  "app_name": "kart-racing",
  "version_name": "production-v1.0",
  "is_public_app": false,
  "ip_list": [
    "1.2.3.4"
  ],
  "geo_ip_list": [
    {
      "ip": "1.2.3.4",
      "latitude": 1,
      "longitude": 1
    }
  ],
  "telemetry_profile_uuid_list": [
    "85cf70e6-f871-42c6-96f0-65ff5bd469b5"
  ],
  "env_vars": [
    {
      "key": "MAP",
      "value": "Forest-2",
      "is_hidden": false
    }
  ],
  "skip_telemetry": true,
  "location": {
    "latitude": 45.5,
    "longitude": -73.56
  },
  "webhook_url": "https://www.webhook.com/",
  "tags": [
    "production"
  ],
  "container_log_storage": {
    "enabled": true,
    "endpoint_storage": "my-endpoint"
  },
  "filters": [
    {
      "field": "city",
      "values": [
        "Montreal"
      ],
      "filter_type": "any"
    }
  ],
  "ap_sort_strategy": "basic",
  "command": "null | 'string'",
  "arguments": "null | 'string'"
}
{
  "request_id": "61b1be8f54d9",
  "request_dns": "61b1be8f54d9.pr.edgegap.net",
  "request_app": "kart-racing",
  "filters": [
    {
      "field": "city",
      "values": [
        "Montreal"
      ],
      "filter_type": "any"
    }
  ],
  "request_version": "v1.0",
  "request_user_count": 4,
  "tags": [
    "production"
  ],
  "container_log_storage": {
    "enabled": true,
    "endpoint_storage": "my-endpoint"
  },
  "location": {
    "latitude": 45.5,
    "longitude": -73.56
  },
  "ap_sort_strategy": "basic"
}

Delete Deployments in Bulk

post

Make a bulk delete of deployments using filters. All the deployments matching the given filters will be permanently deleted.

Authorizations
Body
Responses
202
Accepted
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
post
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"
    }
  ]
}

Update a Fleet

patch

Update a fleet with new specifications.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

Body
namestringOptional

Name of the Fleet

Example: fleet_name
enabledbooleanOptional

If the Fleet is enabled

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
patch
PATCH /v1/fleet/{fleet_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 36

{
  "name": "fleet_name",
  "enabled": true
}
{
  "name": "fleet_name",
  "enabled": true,
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

Create a Fleet Policy

post

Create a fleet policy. Policies are conditions that the fleet must respect.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

Body
namestringRequired

Name of the Policy

Example: policy_name
enabledbooleanRequired

If the Policy is enabled. Defaults to true.

Example: true
typestring · enumRequired

Type of the Policy. See our documentation for more information on the type and it's data.

Example: LocationPossible values:
minimuminteger · min: 1Required

Minimum deployments at all time

Example: 1
maximuminteger · min: 1Required

Maximum deployments for the provided type.

Example: 1
thresholdnumber · min: 0.1 · max: 1Required

Based on the number of sockets connected, how filled should a session deployment be before initiating a scale-up deployment. Float between 0.1 and 1.

Default: 0.9
dataobjectRequired

JSON object for your filters. See our documentation for more information.

Example: {"filters":[{"field":"city","values":["Montreal"],"filter_type":"any"}]}
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
post
POST /v1/fleet/{fleet_name}/policies HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 175

{
  "name": "policy_name",
  "enabled": true,
  "type": "Location",
  "minimum": 1,
  "maximum": 1,
  "threshold": 0.9,
  "data": {
    "filters": [
      {
        "field": "city",
        "values": [
          "Montreal"
        ],
        "filter_type": "any"
      }
    ]
  }
}
{
  "name": "policy_name",
  "enabled": true,
  "type": "Location",
  "minimum": 1,
  "maximum": 1,
  "threshold": 0.9,
  "data": {
    "filters": [
      {
        "field": "city",
        "values": [
          "Montreal"
        ],
        "filter_type": "any"
      }
    ]
  },
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

Create a Fleet

post

Create a fleet. A fleet is a top-level object; you must create child resources to work properly.

Authorizations
Body
namestringRequired

Name of the Fleet

Example: fleet_name
enabledbooleanOptional

If the Fleet is enabled. Defaults to false.

Default: false
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
post
POST /v1/fleet HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 37

{
  "name": "fleet_name",
  "enabled": false
}
{
  "name": "fleet_name",
  "enabled": false,
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

Update a Policy

patch

Update a policy with new specifications.

Authorizations
Path parameters
fleet_namestringRequired

The name of the fleet

policy_namestringRequired

The name of the policy

Body
namestringOptional

Name of the Policy

Example: policy_name
enabledbooleanOptional

If the Policy is enabled. Defaults to true.

Example: true
typestring · enumOptional

Type of the Policy. See our documentation for more information on the type and it's data.

Example: LocationPossible values:
minimumintegerOptional

Minimum deployments at all time

Example: 1
maximuminteger · min: 1Optional

Maximum deployments for the provided type.

Example: 1
thresholdnumber · min: 0.1 · max: 1Optional

Based on the number of sockets connected, how filled should a session deployment be before initiating a scale-up deployment. Float between 0.1 and 1.

Example: 0.9
dataobjectOptional

JSON object for your filters. See our documentation for more information.

Example: {"filters":[{"field":"city","values":["Montreal"],"filter_type":"any"}]}
create_timestringOptional

UTC time of policy creation

Example: 2022-01-01 00:00:00.000000
last_updatedstringOptional

UTC time of policy last update

Example: 2022-01-01 00:00:00.000000
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
patch
PATCH /v1/fleet/{fleet_name}/policies/{policy_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 262

{
  "name": "policy_name",
  "enabled": true,
  "type": "Location",
  "minimum": 1,
  "maximum": 1,
  "threshold": 0.9,
  "data": {
    "filters": [
      {
        "field": "city",
        "values": [
          "Montreal"
        ],
        "filter_type": "any"
      }
    ]
  },
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}
{
  "name": "policy_name",
  "enabled": true,
  "type": "Location",
  "minimum": 1,
  "maximum": 1,
  "threshold": 0.9,
  "data": {
    "filters": [
      {
        "field": "city",
        "values": [
          "Montreal"
        ],
        "filter_type": "any"
      }
    ]
  },
  "create_time": "2022-01-01 00:00:00.000000",
  "last_updated": "2022-01-01 00:00:00.000000"
}

Create Tag for a Deployment

post

Create a tag for a deployment. The tag will however not be injected into a running container.

Authorizations
Path parameters
request_idanyRequired
Body
namestring · max: 20Required

The name of the tag

Example: v1.0.0
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
409
Conflict
application/json
500
Internal Server Error
application/json
post
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"
}

Update Tag for a Deployment

patch

Update a tag for a deployment.

Authorizations
Path parameters
request_idanyRequired
tag_nameanyRequired
Body
namestring · max: 20Required

The name of the tag

Example: v1.0.0
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
409
Conflict
application/json
500
Internal Server Error
application/json
patch
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"
}