Skip to main content

Edgegap V1

Download OpenAPI specification:Download

Introduction

The Edgegap API lets you manage all your resources from standard HTTP requests. We promote using them to automate all your processes that are using Edgegap.

If you have any questions, don't hesitate to contact us via email, or you can also jump on our Discord. We will be happy to help. Feel free to make features request; we also love those.

Pagination - Response

The GET response body can be returned with pagination to avoid requesting all the data at once.

Pagination object will always be under the paginator key.

{
"number": "The Current page, default=1",
"next_page_number": "The Next page number or null",
"previous_page_number": "The Previous page number or null",
"paginator": {
"num_pages": "The total numbers of pages"
},
"has_next": "Boolean if there is a next page",
"has_previous": "Boolean if there is a previous page"
}

Full Body Example:

{
"count": 100,
"data": ["value-0", "[...]", "value-9"],
"success": true,
"pagination": {
"number": 1,
"next_page_number": 2,
"previous_page_number": null,
"paginator": {
"num_pages": 10
},
"has_next": true,
"has_previous": false
}
}

Pagination - Parameters

You can add those values to manipulate the pagination object in the URL Parameters.

  • page
  • limit

Example:

# To get the second page
GET - https://api.edgegap.com/v1/apps?page=2

# To change the count of element in one page (20/page)
GET - https://api.edgegap.com/v1/apps?limit=20

# You can mix those (20/page, second page)
GET - https://api.edgegap.com/v1/apps?page=2&limit=20

Deployments

Deployments Control API - Please refer to this documentation to get started with deployments.

Create a Deployment

Create a new deployment. Deployment is a server instance of your application version.

Authorizations:
apiKey
Request Body schema: application/json
app_name
required
string

The name of the App you want to deploy

version_name
string

The name of the App Version you want to deploy, if not present, the last version created is picked

is_public_app
boolean

If the Application is public or private. If not specified, we will look for a private Application

ip_list
Array of strings

The List of IP of your user

Array of objects (GeoIpListModel)

The list of IP of your user with their location (latitude, longitude)

telemetry_profile_uuid_list
Array of strings
Array of objects (DeployEnvModel)

A list of deployment variables

skip_telemetry
boolean
Default: true

If you want to skip the Telemetry and use a geolocations decision only

object (LocationModel)
city
string

DEPRECATED - See filters instead.

country
string

DEPRECATED - See filters instead.

continent
string

DEPRECATED - See filters instead.

region
string

DEPRECATED - See filters instead.

administrative_division
string

DEPRECATED - See filters instead.

webhook_url
string

A web URL. This url will be called with method POST. The deployment status will be send in JSON format

tags
Array of strings

The list of tags for your deployment

object (ContainerLogStorageModel)
Array of objects (api-model-deploymentfilter)

Filters to use while choosing the deployment location.

ap_sort_strategy
string
Enum: "basic" "weighted"

Algorithm used to select the edge location

command
string or null

Allows to override the Container command for this deployment.

arguments
string or null

Allows to override the Container arguments for this deployment.

Responses

Request samples

Content type
application/json
{
  • "app_name": "string",
  • "version_name": "string",
  • "is_public_app": true,
  • "ip_list": [
    ],
  • "geo_ip_list": [
    ],
  • "telemetry_profile_uuid_list": [
    ],
  • "env_vars": [
    ],
  • "skip_telemetry": true,
  • "location": {
    },
  • "city": "DEPRECATED - See `filters` instead.",
  • "country": "DEPRECATED - See `filters` instead.",
  • "continent": "DEPRECATED - See `filters` instead.",
  • "region": "DEPRECATED - See `filters` instead.",
  • "administrative_division": "DEPRECATED - See `filters` instead.",
  • "webhook_url": "https://www.webhook.com/",
  • "tags": [
    ],
  • "container_log_storage": {
    },
  • "filters": [
    ],
  • "ap_sort_strategy": "basic",
  • "command": "null, \"string\"",
  • "arguments": "null, \"string\""
}

Response samples

Content type
application/json
{
  • "request_id": "93924761ccde",
  • "request_dns": "supermario.93924761ccde.edgelab.io",
  • "request_app": "supermario",
  • "request_version": "v1.0",
  • "request_user_count": 4,
  • "city": "string",
  • "country": "string",
  • "continent": "string",
  • "administrative_division": "string",
  • "tags": [
    ],
  • "container_log_storage": {
    }
}

Get Deployment Container Logs

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:
apiKey
path Parameters
request_id
required
string

Responses

Response samples

Content type
application/json
{
  • "logs": "string",
  • "encoding": "string",
  • "crash_logs": "string",
  • "crash_data": {
    },
  • "logs_link": "string"
}

List All Deployments

List all deployments.

Authorizations:
apiKey
query Parameters
query
string

Query to filter the deployments.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total_count": 0,
  • "pagination": {
    },
  • "message": [
    ]
}

Delete Deployments in Bulk

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

Authorizations:
apiKey
Request Body schema: application/json
required
Array of objects (DeploymentBulkStopFiltersPayload)

Filters used to match with deployments

Array
field
required
string
Enum: "request_id" "deployment_tags"

The field on which to apply the filter

values
required
Array of strings

Values that will be used for the filter

filter_type
required
string
Enum: "any" "all" "not"

Types of filter used. Possible values are: ['any', 'all', 'not']

Responses

Request samples

Content type
application/json
{
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "processable": [
    ]
}

Updates properties of a deployment

Updates properties of a deployment. Currently only the is_joinable_by_session property can be updated.

Authorizations:
apiKey
path Parameters
request_id
required
string
Request Body schema: application/json
is_joinable_by_session
boolean

Whether a session can connect to this deployment or not.

Responses

Request samples

Content type
application/json
{
  • "is_joinable_by_session": true
}

Response samples

Content type
application/json
{
  • "is_joinable_by_session": true
}

Deployments with Available Sockets

Get the list of deployments that have available sockets sorted by proximity to the geographical data.

Authorizations:
apiKey
Request Body schema: application/json
app_name
required
string

The name of the application

app_version
required
string

the name of the application version

minimum_sockets
integer

The minimum number of sockets required

ip_list
Array of strings

The list of IPs

location
string

The location of the deployment

latitude
number

The latitude of the deployment

longitude
number

The longitude of the deployment

Responses

Request samples

Content type
application/json
{
  • "app_name": "string",
  • "app_version": "string",
  • "minimum_sockets": 0,
  • "ip_list": [
    ],
  • "location": "string",
  • "latitude": 0,
  • "longitude": 0
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Delete a Deployment from inside the container

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_id
required
string

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_id
required
integer

Access Point Number provided by our system

query Parameters
container_log_storage
string

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
authorization
required
string

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

Responses

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "deployment_summary": {
    }
}

Get a Deployment Status and Information

Retrieve the information for a deployment.

Authorizations:
apiKey
path Parameters
request_id
required
string

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

Response samples

Content type
application/json
{
  • "request_id": "string",
  • "fqdn": "abc123.test.edgegap.com",
  • "app_name": "test",
  • "app_version": "v1",
  • "current_status": "Status.DEPLOYING",
  • "running": true,
  • "whitelisting_active": true,
  • "start_time": "2024-12-06 12:00:35.945600",
  • "removal_time": "2024-12-06 12:00:35.945600",
  • "elapsed_time": 0,
  • "last_status": "Status.SEEKING",
  • "error": true,
  • "error_detail": "string",
  • "ports": {
    },
  • "public_ip": "100.10.0.85",
  • "sessions": [
    ],
  • "location": {
    },
  • "tags": [
    ],
  • "sockets": "5",
  • "sockets_usage": "2",
  • "command": "string",
  • "arguments": "string"
}

Delete a Deployment

Delete an instance of deployment. It will stop the running container and all its games.

Authorizations:
apiKey
path Parameters
request_id
required
string

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

93924761ccde
query Parameters
container_log_storage
string

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

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "deployment_summary": {
    }
}

Applications

Applications Control API - Please refer to this documentation to get started with applications.

Create a New Application

Create an application that will regroup application versions.

Authorizations:
apiKey
Request Body schema: application/json
name
required
string [ 1 .. 64 ] characters

The application name

is_active
required
boolean

If the application can be deployed

is_telemetry_agent_active
boolean

If the telemetry agent is installed on the versions of this app.

image
required
string

Image base64 string

Responses

Request samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}

Response samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
  • "create_time": "2024-12-06 12:00:35.945600",
  • "last_updated": "2024-12-06 12:00:35.945600"
}

Delete an Application

Delete an application and all its current versions.

Authorizations:
apiKey
path Parameters
app_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get an Application

Retrieve an application and its information.

Authorizations:
apiKey
path Parameters
app_name
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
  • "create_time": "2024-12-06 12:00:35.945600",
  • "last_updated": "2024-12-06 12:00:35.945600"
}

Update an Application

Update an application with new information.

Authorizations:
apiKey
path Parameters
app_name
required
string
Request Body schema: application/json
name
string [ 3 .. 64 ] characters

Application name

is_active
boolean

If the application can be deployed

is_telemetry_agent_active
boolean

If the telemetry agent is installed on the versions of this app.

image
string

Image base64 string

Responses

Request samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}

Response samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
  • "create_time": "2024-12-06 12:00:35.945600",
  • "last_updated": "2024-12-06 12:00:35.945600"
}

Create a New Application Version

Create an application version associated with an application. The version contains all the specifications to create a deployment.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application associated

Request Body schema: application/json
name
required
string [ 1 .. 64 ] characters

The Version Name

is_active
boolean

If the Version is active currently in the system

docker_repository
required
string

The Repository where the image is (i.e. 'harbor.edgegap.com' or 'docker.io')

docker_image
required
string

The name of your image (i.e. 'edgegap/demo')

docker_tag
required
string

The tag of your image (i.e. '0.1.2')

private_username
string

The username to access the docker repository

private_token
string

The Private Password or Token of the username (We recommend to use a token)

req_cpu
required
integer >= 100

Units of vCPU needed (1024 = 1vcpu)

req_memory
required
integer >= 100

Units of memory in MB needed (1024 = 1GB)

req_video
integer >= 0

Units of GPU needed (1024 = 1 GPU)

max_duration
integer

The Max duration of the game in minute. 0 means forever.

use_telemetry
boolean

Allow to inject ASA Variables

inject_context_env
boolean

DEPRECATED - The context environment variables are now injected into all deployments by default. No changes are required. (https://docs.edgegap.com/docs/deployment/injected-variables)

whitelisting_active
boolean

ACL Protection is active

force_cache
boolean

Allow faster deployment by caching your container image in every Edge site

cache_min_hour
integer [ 0 .. 23 ]

Start of the preferred interval for caching your container

cache_max_hour
integer [ 0 .. 23 ]

End of the preferred interval for caching your container

time_to_deploy
integer >= 15

Estimated maximum time in seconds to deploy, after this time we will consider it not working and retry.

enable_all_locations
boolean

Enable every location available. By enabling this, your request will use every potential location, including those which may require a longer time to deploy. This means that your application could take significantly more time before being ready. We do not recommend this feature for live games. This functionality does not support ACL and Caching at the moment.

object (AppVersionCreateSessionConfig)
Array of objects (AppVersionPort)
object (AppVersionProbe)
Array of objects (AppVersionEnv)
verify_image
boolean
Default: false

By enabling the verify_image option, your image infos (docker_repository, docker_image, docker_tag) will be tested.

termination_grace_period_seconds
integer [ 5 .. 3600 ]

Termination grace period in seconds after the SIGTERM signal has been sent

endpoint_storage
string

The name of the endpoint storage to link

command
string or null

Entrypoint/Command override of your Container

arguments
string or null

The Arguments to pass to the command

build_type
string

Available Build Types: Production or Development

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "docker_repository": "string",
  • "docker_image": "string",
  • "docker_tag": "string",
  • "private_username": "string",
  • "private_token": "string",
  • "req_cpu": 256,
  • "req_memory": 256,
  • "req_video": 256,
  • "max_duration": 30,
  • "use_telemetry": true,
  • "inject_context_env": true,
  • "whitelisting_active": false,
  • "force_cache": true,
  • "cache_min_hour": 23,
  • "cache_max_hour": 23,
  • "time_to_deploy": 15,
  • "enable_all_locations": false,
  • "session_config": {
    },
  • "ports": [
    ],
  • "probe": {
    },
  • "envs": [
    ],
  • "verify_image": false,
  • "termination_grace_period_seconds": 5,
  • "endpoint_storage": "string",
  • "command": "null, \"string\"",
  • "arguments": "null, \"string\"",
  • "build_type": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "version": {
    }
}

Delete an Application Version

Delete a specific version of an application.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

Get an Application Version

Retrieve the specifications of an application version.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "docker_repository": "string",
  • "docker_image": "string",
  • "docker_tag": "string",
  • "private_username": "string",
  • "private_token": "string",
  • "req_cpu": 256,
  • "req_memory": 256,
  • "req_video": 256,
  • "max_duration": 30,
  • "use_telemetry": true,
  • "inject_context_env": true,
  • "whitelisting_active": false,
  • "force_cache": true,
  • "cache_min_hour": 23,
  • "cache_max_hour": 23,
  • "time_to_deploy": 15,
  • "enable_all_locations": false,
  • "session_config": {
    },
  • "ports": [
    ],
  • "probe": {
    },
  • "envs": [
    ],
  • "verify_image": false,
  • "termination_grace_period_seconds": 5,
  • "endpoint_storage": "string",
  • "command": "null, \"string\"",
  • "arguments": "null, \"string\"",
  • "build_type": "string"
}

Update an Application Version

Update an application version with new specifications.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Request Body schema: application/json
name
string [ 1 .. 64 ] characters

The Version Name

is_active
boolean

If the Version is active currently in the system

docker_repository
string

The Repository where the image is (i.e. 'harbor.edgegap.com' or 'docker.io')

docker_image
string

The name of your image (i.e. 'edgegap/demo')

docker_tag
string

The tag of your image (i.e. '0.1.2')

private_username
string

The username to access the docker repository

private_token
string

The Private Password or Token of the username (We recommend to use a token)

req_cpu
integer >= 100

Units of vCPU needed (1024 = 1vcpu)

req_memory
integer >= 100

Units of memory in MB needed (1024 = 1GB)

req_video
integer >= 0

Units of GPU needed (1024= 1 GPU)

max_duration
integer or null >= 0

The Max duration of the game

use_telemetry
boolean

Allow to inject ASA Variables

inject_context_env
boolean

DEPRECATED - The context environment variables are now injected into all deployments by default. No changes are required. (https://docs.edgegap.com/docs/deployment/injected-variables)

whitelisting_active
boolean

ACL Protection is active

force_cache
boolean

Allow faster deployment by caching your container image in every Edge site

cache_min_hour
integer [ 0 .. 23 ]

Start of the preferred interval for caching your container

cache_max_hour
integer [ 0 .. 23 ]

End of the preferred interval for caching your container

time_to_deploy
integer >= 15

Estimated maximum time in seconds to deploy, after this time we will consider it not working and retry.

enable_all_locations
boolean

Enable every location available. By enabling this, your request will use every potential location, including those which may require a longer time to deploy. This means that your application may take up to 2 minutes before being up and ready. This functionality does not support ACL and Caching at the moment.

object (AppVersionUpdateSessionConfig)
Array of objects (AppVersionPort)
object (AppVersionProbe)
Array of objects (AppVersionEnv)
termination_grace_period_seconds
integer [ 5 .. 3600 ]

Termination grace period in seconds after the SIGTERM signal has been sent

verify_image
boolean
Default: false

By enabling the verify_image option, your image infos (docker_repository, docker_image, docker_tag) will be tested.

endpoint_storage
string

The name of the endpoint storage to link

command
string or null

Entrypoint/Command override of your Container

arguments
string or null

The Arguments to pass to the command

build_type
string

Available Build Types: Production or Development

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "docker_repository": "string",
  • "docker_image": "string",
  • "docker_tag": "string",
  • "private_username": "string",
  • "private_token": "string",
  • "req_cpu": 256,
  • "req_memory": 256,
  • "req_video": 256,
  • "max_duration": 30,
  • "use_telemetry": true,
  • "inject_context_env": true,
  • "whitelisting_active": true,
  • "force_cache": true,
  • "cache_min_hour": 23,
  • "cache_max_hour": 23,
  • "time_to_deploy": 15,
  • "enable_all_locations": true,
  • "session_config": {
    },
  • "ports": [
    ],
  • "probe": {
    },
  • "envs": [
    ],
  • "termination_grace_period_seconds": 5,
  • "verify_image": false,
  • "endpoint_storage": "string",
  • "command": "null, \"string\"",
  • "arguments": "null, \"string\"",
  • "build_type": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "version": {
    }
}

Create an ACL Entry

Create an access control list entry for an app version. This will allow the specified CIDR to connect to the deployment. The option whitelisting_active must be activated in the application version.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Request Body schema: application/json
cidr
required
string

CIDR to allow

label
string

Label to organized your entries

is_active
boolean

If the Rule will be applied on runtime

Responses

Request samples

Content type
application/json
{
  • "cidr": "1.2.3.4/16",
  • "label": "Matchmaker",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "success": true,
  • "whitelist_entry": {
    }
}

List All ACL Entries for an Application Version

List all the access control list entries for a specific application version.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Responses

Response samples

Content type
application/json
{
  • "whitelist_entries": [
    ]
}

Delete an ACL Entry

Delete an access control list entry for a specific application version

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

entry_id
required
string

The unique ID of the entry

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "whitelist_entry": {
    }
}

Get an ACL Entry

Retrieve a specific access control list entry for an application version.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

entry_id
required
string

The unique ID of the entry

Responses

Response samples

Content type
application/json
{
  • "id": "1",
  • "cidr": "1.2.3.4/16",
  • "label": "Matchmaker",
  • "is_active": true
}

List All Versions for an Application

List all versions of a specific application.

Authorizations:
apiKey
path Parameters
app_name
required
string

The name of the application

Responses

Response samples

Content type
application/json
{
  • "versions": [
    ],
  • "total_count": 0
}

List All Applications

List all the applications that you own.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "applications": [
    ]
}

Locations

Locations API - Please refer to this documentation to get started with locations beacons.

List All Locations

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:
apiKey
query Parameters
app
string

The App Name you want to filter with capacity

version
string

The Version Name you want to filter with capacity

type
string

The type of the location

tags
string

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

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ],
  • "messages": [
    ]
}

List All Location Beacons

List all the active location beacons. They can be used to ping them for your matchmaking system. You cannot deploy on beacons.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ],
  • "count": 1
}

Sessions

Sessions Control API - Please refer to this documentation to get started with sessions.

Create a Session

Create a session with users. Sessions are linked to a deployment.

Authorizations:
apiKey
Request Body schema: application/json
app_name
required
string

The Name of the App you want to deploy, example:

supermario
version_name
string

The Name of the App Version you want to deploy, example:

v1.0
ip_list
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]
Array of objects (GeoIpListModel)

The list of IP of your user with their location (latitude, longitude)

deployment_request_id
string

The request id of your deployment. If specified, the session will link to the deployment

object (LocationModel)
city
string

If you want your session in a specific city

country
string

If you want your session in a specific country

continent
string

If you want your session in a specific continent

administrative_division
string

If you want your session in a specific administrative division

region
string

If you want your session in a specific region

Array of objects (SelectorModel)

List of Selectors to filter potential Deployment to link and tag the Session

webhook_url
string

When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url

Array of objects (SessionFilterModel)

List of location filters to apply to the session

skip_telemetry
boolean

If system should skip the telemetry and use GeoBase decision only

Responses

Request samples

Content type
application/json
{
  • "app_name": "string",
  • "version_name": "string",
  • "ip_list": [
    ],
  • "geo_ip_list": [
    ],
  • "deployment_request_id": "string",
  • "location": {
    },
  • "city": "Montreal",
  • "country": "Canada",
  • "continent": "North America",
  • "administrative_division": "Quebec",
  • "region": "string",
  • "selectors": [
    ],
  • "webhook_url": "string",
  • "filters": [
    ],
  • "skip_telemetry": true
}

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "app": "demo",
  • "version": "v1.0",
  • "deployment_request_id": "string",
  • "selectors": [
    ],
  • "webhook_url": "string"
}

Delete a Session

Delete a session. Once deleted, a session is no more accessible and does not have a history. The deployment associated will not be deleted.

Authorizations:
apiKey
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123"
}

Get a Session

Retrieve the information for a session.

Authorizations:
apiKey
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "status": "Status.READY",
  • "ready": true,
  • "linked": true,
  • "kind": "DEFAULT | SEATS | MATCH",
  • "user_count": "10",
  • "app_version": 0,
  • "create_time": "2024-12-06 12:00:35.945600",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "webhook_url": "string"
}

Delete Users From a Session

Remove specified users from a session.

Authorizations:
apiKey
path Parameters
session_id
required
string
Request Body schema: application/json
ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]

Responses

Request samples

Content type
application/json
{
  • "ip_list": [
    ]
}

Response samples

Content type
application/json
{
  • "session_users": [
    ]
}

Put Users in a Session

Add specified users to a session.

Authorizations:
apiKey
path Parameters
session_id
required
string
Request Body schema: application/json
ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]

Responses

Request samples

Content type
application/json
{
  • "ip_list": [
    ]
}

Response samples

Content type
application/json
{
  • "session_users": [
    ]
}

List Users of a Session

List all the users of session.

Authorizations:
apiKey
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "session_users": [
    ]
}

List All Sessions

List all the active sessions.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total_count": 0,
  • "pagination": {
    }
}

Delete Sessions in Bulk

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

Authorizations:
apiKey
Request Body schema: application/json
required
Array of objects (SessionBulkStopFiltersPayload)

Filters used to match with sessions

Array
field
required
string
Enum: "session_id" "deployment_tags" "request_id"

The field on which to apply the filter

values
required
Array of strings

Values that will be used for the filter

filter_type
required
string
Enum: "any" "all" "not"

Types of filter used. Possible values are: ['any', 'all', 'not']

Responses

Request samples

Content type
application/json
{
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "processable": [
    ]
}

Metrics

Metrics API - Please refer to this documentation to get started with your deployment metrics.

Get a Deployment Metrics

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:
apiKey
path Parameters
request_id
required
string
query Parameters
start_time
string

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
string

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
string

Steps between each metrics.

    Example: 30s, 1m, 5m 10m, 1h 
raw
string

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

Responses

Response samples

Content type
application/json
{
  • "total": {
    },
  • "cpu": {
    },
  • "mem": {
    },
  • "network": {
    }
}

Matchmaker

Matchmaker Control API - Please refer to this documentation to get started with matchmakers.

Create a Matchmaker Component

Create a new matchmaker component.

Authorizations:
apiKey
Request Body schema: application/json
name
required
string

Matchmaker component name. Must be unique.

repository
required
string

Container repository where the component's image is hosted.

image
required
string

Container image to use for this component.

tag
required
string

Tag of the container image to use for this component.

object

Private repo credentials to use for pulling the image, if applicable.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Delete a Matchmaker Component

Delete a matchmaker component. It will not delete the matchmaker.

Authorizations:
apiKey
path Parameters
component_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Matchmaker Component

Retrieve a matchmaker component.

Authorizations:
apiKey
path Parameters
component_name
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Update a Matchmaker Component

Update a matchmaker component with new specifications.

Authorizations:
apiKey
path Parameters
component_name
required
string
Request Body schema: application/json
name
string

Matchmaker component name. Must be unique.

repository
string

Container repository where the component's image is hosted.

image
string

Container image to use for this component.

tag
string

Tag of the container image to use for this component.

object

Private repo credentials to use for pulling the image, if applicable.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Create a Matchmaker Component ENV

Create a new matchmaker component ENV.

Authorizations:
apiKey
path Parameters
component_name
required
string
Request Body schema: application/json
key
required
string

Name of the ENV variable.

value
required
string

Value of the ENV variable.

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "key": "string",
  • "value": "string"
}

Delete a Matchmaker Component ENV

Delete a matchmaker component ENV. It will not delete the component or the matchmaker.

Authorizations:
apiKey
path Parameters
component_name
required
string
env_key
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Matchmaker Component ENV

Retrieve a matchmaker component ENV.

Authorizations:
apiKey
path Parameters
component_name
required
string
env_key
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "key": "string",
  • "value": "string"
}

Update a Matchmaker Component ENV

Update a matchmaker component ENV.

Authorizations:
apiKey
path Parameters
component_name
required
string
env_key
required
string
Request Body schema: application/json
key
string

Name of the ENV variable.

value
string

Value of the ENV variable.

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "key": "string",
  • "value": "string"
}

List All Matchmaker Component ENVs

List all ENVs for a specific matchmaker component.

Authorizations:
apiKey
path Parameters
component_name
required
string

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": [
    ]
}

List All Matchmaker Components

List all components for a specific matchmaker.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": {
    }
}

Create a Matchmaker

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

Authorizations:
apiKey
Request Body schema: application/json
name
required
string

Name of the Matchmaker.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "url": "null, \"string\""
}

Delete a Matchmaker

Delete a matchmaker.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Matchmaker

Retrieve a matchmaker.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "url": "null, \"string\""
}

Update a Matchmaker

Update a matchmaker with new specifications.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
Request Body schema: application/json
name
string

Name of the Matchmaker.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "url": "null, \"string\""
}

Create a Matchmaker Release

Create a matchmaker release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
Request Body schema: application/json
version
required
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

frontend_component_name
required
string

Name of the matchmaker component to use as the Open Match frontend.

director_component_name
required
string

Name of the matchmaker component to use as the Open Match director.

match_function_component_name
required
string

Name of the matchmaker component to use as the Open Match match function.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Create a Matchmaker Managed Release

Create a matchmaker managed release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
Request Body schema: application/json
version
required
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

release_config_name
required
string

Name of the matchmaker release configuration to use for this managed release.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "release_config_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "string"
}

Delete a Matchmaker Managed Release

Delete a matchmaker managed release. It will not delete the matchmaker.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Matchmaker Managed Release

Retrieve a matchmaker managed release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "string"
}

Update a Matchmaker Managed Release

Update a matchmaker managed release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
release_version
required
string
Request Body schema: application/json
version
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

release_config_name
string

Name of the matchmaker release configuration to use for this managed release.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "release_config_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "string"
}

Delete a Matchmaker Release

Delete a matchmaker release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Matchmaker Release

Retrieve a matchmaker release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Update a Matchmaker Release

Update a matchmaker release.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string
release_version
required
string
Request Body schema: application/json
version
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

frontend_component_name
string

Name of the matchmaker component to use as the Open Match frontend.

director_component_name
string

Name of the matchmaker component to use as the Open Match director.

match_function_component_name
string

Name of the matchmaker component to use as the Open Match match function.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

List All Matchmaker Releases

List all releases of a specific matchmaker.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": [
    ]
}

List All Matchmakers

List all matchmakers.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": [
    ]
}

Create a Matchmaker Release Config

Create a matchmaker release config.

Authorizations:
apiKey
Request Body schema: application/json
name
required
string

Matchmaker configuration name. Must be unique.

configuration
required
string

Matchmaker configuration, parsed as a string.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "configuration": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "configuration": "string"
}

Delete a Matchmaker Release Config

Delete a matchmaker release config.

Authorizations:
apiKey
path Parameters
config_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Matchmaker Release Config

Get a matchmaker release config.

Authorizations:
apiKey
path Parameters
config_name
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "configuration": "string"
}

Update a Matchmaker Release Config

Update a matchmaker release config.

Authorizations:
apiKey
path Parameters
config_name
required
string
Request Body schema: application/json
name
string

Matchmaker configuration name. Must be unique.

configuration
string

Matchmaker configuration, parsed as a string.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "configuration": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2024-12-06 12:00:35.945600",
  • "updated_at": "2024-12-06 12:00:35.945600",
  • "name": "string",
  • "configuration": "string"
}

List All Matchmaker Release Configs

List all configs for a specific matchmaker release.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": [
    ]
}

Telemetry

Active Deployment Telemetry API - Please refer to this documentation to get started with active deployment telemetry.

Create a New Active Deployment Telemetry Request

Create a telemetry request to get the best deployment(s) for given IP(s). You can use this to add players on a running deployment. If you set a webhook URL, the result will be sent to it.

Authorizations:
apiKey
Request Body schema: application/json
deployments
required
Array of strings

List of Deployment request ID to get telemetry.

ips
required
Array of strings
webhook_url
string

Webhook URL that we should call to send the telemetry response back.

Responses

Request samples

Content type
application/json
{
  • "deployments": [
    ],
  • "ips": [
    ],
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "retrieval_key": "string",
  • "expire": "2024-12-06 12:00:35.945600"
}

Get the Result of an Active Deployment Telemetry Request

Retrieve the results of a telemetry request on active deployment(s) for given IP(s). The score array is sorted from the best to the worse deployment. You can use this to add players on a running deployment.

Authorizations:
apiKey
path Parameters
retrieval_key
required
string

Responses

Response samples

Content type
application/json
{
  • "retrieval_key": "string",
  • "scores": [
    ],
  • "partial_result": true
}

IP Lookup

IP API - IP addresses related operations.

Get Your Public IP

Retrieve your public IP address.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "public_ip": "174.91.204.75"
}

Get an IP's information

Lookup an IP address and return the associated information.

Authorizations:
apiKey
path Parameters
ip
required
string

Responses

Response samples

Content type
application/json
{
  • "type": "ipv4",
  • "ip_address": "1.1.1.1",
  • "location": {
    }
}

Get IPs Information in Bulk

Lookup IP addresses and return the associated information. Maximum of 20 IPs.

Authorizations:
apiKey
Request Body schema: application/json
addresses
required
Array of strings

IP Addresses

Responses

Request samples

Content type
application/json
{
  • "addresses": [
    ]
}

Response samples

Content type
application/json
{
  • "addresses": [
    ]
}

Fleets

Fleets Control API - Please refer to this documentation to get started with fleets.

Create a Fleet

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

Authorizations:
apiKey
Request Body schema: application/json
name
required
string

Name of the Fleet

enabled
boolean
Default: false

If the Fleet is enabled. Defaults to false.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": false
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": false,
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Delete a Fleet

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

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Fleet

Retrieve a fleet with its details.

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": false,
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Update a Fleet

Update a fleet with new specifications.

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

Request Body schema: application/json
name
string

Name of the Fleet

enabled
boolean

If the Fleet is enabled

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

List All Policies of a Fleet

List all the policies of a fleet.

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Limit of Fleet for each page

header Parameters
X-Fields
string <mask>

An optional fields mask

Responses

Response samples

Content type
application/json
{
  • "policies": [
    ],
  • "pagination": {
    }
}

Create a Fleet Policy

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

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

Request Body schema: application/json
name
required
string

Name of the Policy

enabled
required
boolean

If the Policy is enabled. Defaults to true.

type
required
string
Enum: "Location" "Tag" "Coordinates"

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

minimum
required
integer >= 1

Minimum deployments at all time

maximum
required
integer >= 1

Maximum deployments for the provided type.

threshold
required
number [ 0.1 .. 1 ]
Default: 0.9

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.

data
required
object

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

Responses