Skip to main content

Edgegap

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

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

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
}

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-03-18 12:00:46.392699",
  • "removal_time": "2024-03-18 12:00:46.392699",
  • "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-03-18 12:00:46.392699",
  • "last_updated": "2024-03-18 12:00:46.392699"
}

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-03-18 12:00:46.392699",
  • "last_updated": "2024-03-18 12:00:46.392699"
}

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-03-18 12:00:46.392699",
  • "last_updated": "2024-03-18 12:00:46.392699"
}

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"
}

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

Allow to inject Context 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

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\""
}

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\""
}

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 >= 0

The Max duration of the game

use_telemetry
boolean

Allow to inject ASA Variables

inject_context_env
boolean

Allow to inject Context 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

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

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,
  • "endpoint_storage": "string",
  • "command": "null, \"string\"",
  • "arguments": "null, \"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": [
    ]
}

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
}

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": {
    }
}

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"
}

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_id": 0,
  • "create_time": "2024-03-18 12:00:46.392699",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "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"
}

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": [
    ]
}

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": [
    ]
}

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.

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

    Example: 2021-07-10 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

    Example: 2021-07-19 00:00:00
steps
string

Steps between each metrics.

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

Responses

Response samples

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

Custom Sessions

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

Update a Custom Session

Update a custom session with new specifications.

Authorizations:
apiKey
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

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"]
webhook_url
string

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

Responses

Request samples

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

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_id": 0,
  • "create_time": "2024-03-18 12:00:46.392699",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "webhook_url": "string"
}

Create a New Custom Session

Create a custom session with users. You must specify a custom ID and a deployment request ID.

Authorizations:
apiKey
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

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"]
webhook_url
string

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

Responses

Request samples

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

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"
}

Get a Custom Session

Retrieve the information of a custom session.

Authorizations:
apiKey
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

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_id": 0,
  • "create_time": "2024-03-18 12:00:46.392699",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "webhook_url": "string"
}

Delete a Custom Session

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

Authorizations:
apiKey
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

Responses

Response samples

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

Create Custom Sessions in Bulk

Create multiple custom sessions in a deployment. You must specify a custom ID for each.

Authorizations:
apiKey
path Parameters
request_id
required
string

Deployment Request ID

Request Body schema: application/json
Array of objects (CustomBulkSessionModel)
Array
custom_id
required
string

Custom Session ID

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"]
webhook_url
string

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

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "sessions": [
    ],
  • "errors": [
    ]
}

List All Custom Session of a Deployment

List all custom sessions of a deployment.

Authorizations:
apiKey
path Parameters
request_id
required
string

Deployment Request ID

Responses

Response samples

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

Delete Custom Sessions in Bulk

Delete multiple custom sessions from a specific deployment.

Authorizations:
apiKey
path Parameters
request_id
required
string

Deployment Request ID

Request Body schema: application/json
sessions
required
Array of strings

List of Custom IDs to Delete

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "sessions": [
    ],
  • "errors": [
    ]
}

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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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"
}

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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "key": "string",
  • "value": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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"
}

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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "name": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "name": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "name": "string"
}

Delete a Matchmaker

Delete a matchmaker.

Authorizations:
apiKey
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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"
}

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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_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"
}

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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "name": "string",
  • "configuration": "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-03-18 12:00:46.392699",
  • "updated_at": "2024-03-18 12:00:46.392699",
  • "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"
}

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-03-18 12:00:46.392699"
}

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

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {
    },
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Delete a Policy

Delete a policy. It will not delete the fleet.

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

policy_name
required
string

The name of the policy to delete

Responses

Response samples

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

Get a Policy

Retrieve a specific policy of a fleet.

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

policy_name
required
string

The name of the policy

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {
    },
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Update a Policy

Update a policy with new specifications.

Authorizations:
apiKey
path Parameters
fleet_name
required
string

The name of the fleet

policy_name
required
string

The name of the policy

Request Body schema: application/json
name
string

Name of the Policy

enabled
boolean

If the Policy is enabled. Defaults to true.

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

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

minimum
integer >= 0

Minimum deployments at all time

maximum
integer >= 1

Maximum deployments for the provided type.

threshold
number [ 0.1 .. 1 ]

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
object

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

create_time
string

UTC time of policy creation

last_updated
string

UTC time of policy last update

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {
    },
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {
    },
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

List All Fleets

List all the fleets you own.

Authorizations:
apiKey
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Limit of Fleet for each page

Responses

Response samples

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

Endpoint Storage

Endpoint Storage Control API - Please refer to this documentation to get started with storage.

Create a New Endpoint Storage

Create an endpoint storage to store your container logs at the end of a deployment.

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

Name of the Endpoint Storage

access_key_id
required
string

Your access key ID to connect to your S3 Bucket.

endpoint
required
string

Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain

bucket
required
string

Your secret access key to connect to your S3 Bucket. Will be encrypted.

secret_access_key
required
string

Your secret access key to connect to your S3 Bucket. Will be encrypted.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "access_key_id": "string",
  • "bucket": "The Bucket name you want your container logs to be stored in.",
  • "secret_access_key": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "access_key_id": "string",
  • "bucket": "The Bucket name you want your container logs to be stored in.",
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Delete an Endpoint Storage

Delete an endpoint storage. All the application versions linked to it won't be able to store logs anymore.

Authorizations:
apiKey
path Parameters
endpoint_name
required
string

Responses

Response samples

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

Get an Endpoint Storage

Retrieve an endpoint storage. The secret_access_key won't be displayed.

Authorizations:
apiKey
path Parameters
endpoint_name
required
string

Responses

Response samples

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

Update an Endpoint Storage

Update an Endpoint Storage with new specifications.

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

Name of the Endpoint Storage

access_key_id
string

Your access key ID to connect to your S3 Bucket.

endpoint
string

Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain

bucket
string

Your secret access key to connect to your S3 Bucket. Will be encrypted.

secret_access_key
string

Your secret access key to connect to your S3 Bucket. Will be encrypted.

Responses

Request samples

Content type
application/json
{}

Response samples

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

Create a New Pull Profile

Create a pull profile. Pull profile will upload data from an endpoint storage to a deployment container on boot. You must link the application version to the pull profile first.

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

Name of the pull profile

source
required
string

Source in the S3 bucket to fetch from

source_type
required
string
Enum: "File" "Folder"

If the source is a File or a Directory

destination
required
string

Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as /etc/, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "source": "/my-bucket/config.cfg",
  • "source_type": "File",
  • "destination": "/usr/share/configs"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "source": "/my-bucket/config.cfg",
  • "source_type": "File",
  • "destination": "/usr/share/configs",
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Delete a Pull Profile

Delete a pull profile. All the application versions linked won't receive the data upload anymore. It will not delete your endpoint storage.

Authorizations:
apiKey
path Parameters
endpoint_name
required
string
pull_profile_name
required
string

Responses

Response samples

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

Get a Pull Profile

Retrieve a pull profile and its specifications.

Authorizations:
apiKey
path Parameters
endpoint_name
required
string
pull_profile_name
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "source": "/my-bucket/config.cfg",
  • "source_type": "File",
  • "destination": "/usr/share/configs",
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Update a Pull Profile

Update a pull profile with new specifications.

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

Name of the pull profile

source
string

Source in the S3 bucket to fetch from

source_type
string
Enum: "File" "Folder"

If the source is a File or a Directory

destination
string

Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as /etc/, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "source": "/my-bucket/config.cfg",
  • "source_type": "File",
  • "destination": "/usr/share/configs"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "source": "/my-bucket/config.cfg",
  • "source_type": "File",
  • "destination": "/usr/share/configs",
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

List All Pull Profile of an Endpoint Storage

List all pull profiles of an endpoint storage.

Authorizations:
apiKey
path Parameters
endpoint_name
required
string
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Limit of pull profiles for each page

Responses

Response samples

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

List All Endpoint Storage

List all endpoint storage.

Authorizations:
apiKey
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
{
  • "endpoints": [
    ],
  • "pagination": {
    }
}

Relays

Handles Relay Sessions operations. Those operations are similar to Sessions but are simplified to be used with relays.

Create a Relay Session

Create a relay session with users.

Authorizations:
apiKey
Request Body schema: application/json
required
Array of objects (RelaySessionUser) non-empty

List of IP Addresses of session users

Array of objects (RelayFilterModel)

List of location filters to apply to the session

webhook_url
string

URL to send the session data to

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "session_id": "string",
  • "authorization_token": 3500589645,
  • "status": "string",
  • "ready": true,
  • "linked": true,
  • "error": "string",
  • "session_users": [
    ],
  • "relay": {
    },
}

List all Relay Sessions

List all the active relay sessions.

Authorizations:
apiKey

Responses

Response samples

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

Delete a Relay Session

Delete a relay session.

Authorizations:
apiKey
path Parameters
session_id
required
string

Responses

Response samples

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

Get a Relay Session

Retrieve the information for a relay session.

Authorizations:
apiKey
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "session_id": "string",
  • "authorization_token": 3500589645,
  • "status": "string",
  • "ready": true,
  • "linked": true,
  • "error": "string",
  • "session_users": [
    ],
  • "relay": {
    },
}

Authorize a user on a Relay Session

Authorize a user on a Relay Session

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

Session Request ID (ex: 0724828881e2-S)

user_ip
required
string

User Ip to Authorize

Responses

Request samples

Content type
application/json
{
  • "session_id": "string",
  • "user_ip": "string"
}

Response samples

Content type
application/json
{
  • "session_id": "string",
  • "authorization_token": 3500589645,
  • "status": "string",
  • "ready": true,
  • "linked": true,
  • "error": "string",
  • "session_user": {
    },
  • "relay": {
    },
}

Remove a user on a Relay Session

Authorize a user on a Relay Session

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

Session Request ID (ex: 0724828881e2-S)

authorization_token
required
integer

Relay Authorization Token

Responses

Request samples

Content type
application/json
{
  • "session_id": "string",
  • "authorization_token": 0
}

Response samples

Content type
application/json
{
  • "session_id": "string",
  • "authorization_token": 3500589645,
  • "status": "string",
  • "ready": true,
  • "linked": true,
  • "error": "string",
  • "session_users": [
    ],
  • "relay": {
    },
}

Lobbies

Management of Arbitrium lobbies.

Create a Lobby

Create a named lobby.

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

Name of the lobby

Responses

Request samples

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

Response samples

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

Get a Lobby

Get a named lobby.

Authorizations:
apiKey
path Parameters
lobby_name
required
string

Responses

Response samples

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

Deploy a Lobby

Deploy the lobby with the given name.

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

Name of the lobby

Responses

Request samples

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

Response samples

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

Terminate a Lobby

Terminate the lobby with the given name.

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

Name of the lobby

Responses

Request samples

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

Response samples

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

Deployment Tags

Deployment Tags API - Deployment Tags related operations.

Create Tag for a Deployment

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

Authorizations:
apiKey
path Parameters
request_id
required
string
Request Body schema: application/json
name
required
string <= 20 characters

The name of the tag

Responses

Request samples

Content type
application/json
{
  • "name": "v1.0.0"
}

Response samples

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

List tags for a Deployment

List tags for a deployment.

Authorizations:
apiKey
path Parameters
request_id
required
string

Responses

Response samples

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

Delete Tag for a Deployment

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

Authorizations:
apiKey
path Parameters
request_id
required
string
tag_name
required
string

Responses

Response samples

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

Get tag for a Deployment

Get tag for a deployment.

Authorizations:
apiKey
path Parameters
request_id
required
string
tag_name
required
string

Responses

Response samples

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

Update Tag for a Deployment

Update a tag for a deployment.

Authorizations:
apiKey
path Parameters
request_id
required
string
tag_name
required
string
Request Body schema: application/json
name
required
string <= 20 characters

The name of the tag

Responses

Request samples

Content type
application/json
{
  • "name": "v1.0.0"
}

Response samples

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

Context

Context API - Context related operations. These routes are only accessible from within a deployment. They need a special token to be accessed and the Application Version that is deployed must have an injected context.

Get the Context of a Deployment

Retrieve contextual information about your live deployment. You should use this URL inside your deployment container. The URL is injected in your deployment and accessible via the environment variable ARBITRIUM_CONTEXT_URL.

path Parameters
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem.

security_number
required
integer

Random Security number generate to validate the request id.

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_CONTEXT_TOKEN

Responses

Response samples

Content type
application/json
{
  • "request_id": "abc123",
  • "public_ip": "100.10.0.85",
  • "status": "Status.READY",
  • "ready": true,
  • "whitelisting_active": true,
  • "fqdn": "abc123.test.edgegap.com",
  • "ports": {
    },
  • "location": {
    },
  • "tags": [
    ],
  • "sockets": "5",
  • "sockets_usage": "2",
  • "is_joinable_by_session": true
}

Create a Tag for a Running Deployment

Create a tag for a running deployment. You should use this URL inside your deployment container. The URL is injected in your deployment and accessible via the environment variable ARBITRIUM_CONTEXT_URL and you need to append "/tags" at the end of this URL.

path Parameters
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem.

security_number
required
integer

Random Security number generate to validate the request id.

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_CONTEXT_TOKEN

Request Body schema: application/json
name
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "name": "deployment-tag-name",
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Delete a Tag from a Running Deployment

Delete a tag from a running deployment. You should use this URL inside your deployment container. The URL is injected in your deployment and accessible via the environment variable ARBITRIUM_CONTEXT_URL and you need to append "/tags/{tag_name}" at the end of this URL.

path Parameters
tag_name
required
string
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem.

security_number
required
integer

Random Security number generate to validate the request id.

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_CONTEXT_TOKEN

Responses

Response samples

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

Monitoring

Monitoring

monitoring

Monitor the API

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "version": "string",
  • "host": "string",
  • "host_url": "string",
  • "spec_url": "string",
  • "messages": [
    ],
  • "errors": [
    ]
}