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 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:
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 |
country | string DEPRECATED - See |
continent | string DEPRECATED - See |
region | string DEPRECATED - See |
administrative_division | string DEPRECATED - See |
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
- Payload
{- "app_name": "string",
- "version_name": "string",
- "is_public_app": true,
- "ip_list": [
- "1.2.3.4"
], - "geo_ip_list": [
- {
- "ip": "string",
- "latitude": 0,
- "longitude": 0
}
], - "telemetry_profile_uuid_list": [
- "string"
], - "env_vars": [
- {
- "key": "string",
- "value": "string",
- "is_hidden": true
}
], - "skip_telemetry": true,
- "location": {
- "latitude": 0,
- "longitude": 0
}, - "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.",
- "tags": [
- "production"
], - "container_log_storage": {
- "enabled": true,
- "endpoint_storage": "string"
}, - "filters": [
- {
- "field": "city",
- "values": [
- "string"
], - "filter_type": "any"
}
], - "ap_sort_strategy": "basic",
- "command": "null, \"string\"",
- "arguments": "null, \"string\""
}
Response samples
- 200
- 400
- 401
- 409
- 422
{- "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": [
- "production"
], - "container_log_storage": {
- "enabled": true,
- "endpoint_storage": "string"
}
}
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:
path Parameters
request_id required | string |
Responses
Response samples
- 200
- 400
- 401
{- "logs": "string",
- "encoding": "string",
- "crash_logs": "string",
- "crash_data": {
- "exit_code": 0,
- "message": "string",
- "restart_count": 0
}, - "logs_link": "string"
}
List All Deployments
List all deployments.
Authorizations:
query Parameters
query | string Query to filter the deployments. |
Responses
Response samples
- 200
- 400
- 401
{- "data": [
- {
- "request_id": "2d35052ec4e9",
- "fqdn": "abc123.test.edgegap.com",
- "start_time": "2024-12-06 12:00:35.945600",
- "ready": true,
- "public_ip": "100.10.0.85",
- "ports": {
- "7777": {
- "external": 31669,
- "internal": 7777,
- "protocol": "UDP",
- "name": "7777",
- "tls_upgrade": false,
- "link": "example.com:31669",
- "proxy": 65002
}, - "web": {
- "external": 31587,
- "internal": 8080,
- "protocol": "http",
- "name": "web",
- "tls_upgrade": true,
- "proxy": 65001
}
}, - "tags": [
- "production"
], - "sockets": "5",
- "sockets_usage": "2",
- "is_joinable_by_session": true
}
], - "total_count": 0,
- "pagination": {
- "number": 0,
- "next_page_number": 0,
- "previous_page_number": 0,
- "paginator": {
- "num_pages": 0
}, - "has_next": true,
- "has_previous": true
}, - "message": [
- "string"
]
}
Delete Deployments in Bulk
Make a bulk delete of deployments using filters. All the deployments matching the given filters will be permanently deleted.
Authorizations:
Request Body schema: application/json
required | Array of objects (DeploymentBulkStopFiltersPayload) Filters used to match with deployments | ||||||
Array
|
Responses
Request samples
- Payload
{- "filters": [
- {
- "field": "request_id",
- "values": [
- "string"
], - "filter_type": "any"
}
]
}
Response samples
- 200
- 400
- 401
- 500
{- "processable": [
- {
- "request_id": "string"
}
]
}
Updates properties of a deployment
Updates properties of a deployment. Currently only the is_joinable_by_session
property can be updated.
Authorizations:
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
- Payload
{- "is_joinable_by_session": true
}
Response samples
- 200
- 400
- 401
- 404
{- "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:
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
- Payload
{- "app_name": "string",
- "app_version": "string",
- "minimum_sockets": 0,
- "ip_list": [
- "string"
], - "location": "string",
- "latitude": 0,
- "longitude": 0
}
Response samples
- 200
- 400
- 401
- 500
{- "data": [
- {
- "request_id": "string",
- "app_name": "string",
- "app_version": "string",
- "available_sockets": 0
}
], - "pagination": {
- "number": 0,
- "next_page_number": 0,
- "previous_page_number": 0,
- "paginator": {
- "num_pages": 0
}, - "has_next": true,
- "has_previous": 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:
|
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
- 200
- 202
- 400
- 401
- 410
{- "message": "Instance 93924761ccde will be deleted",
- "deployment_summary": {
- "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": {
- "7777": {
- "external": 31669,
- "internal": 7777,
- "protocol": "UDP",
- "name": "7777",
- "tls_upgrade": false,
- "link": "example.com:31669",
- "proxy": 65002
}, - "web": {
- "external": 31587,
- "internal": 8080,
- "protocol": "http",
- "name": "web",
- "tls_upgrade": true,
- "proxy": 65001
}
}, - "public_ip": "100.10.0.85",
- "sessions": [
- {
- "session_id": "abc123",
- "status": "Status.READY",
- "ready": true,
- "linked": true,
- "kind": "DEFAULT | SEATS | MATCH",
- "user_count": "10"
}
], - "location": {
- "city": "Montreal",
- "country": "Canada",
- "continent": "North America",
- "administrative_division": "Quebec",
- "timezone": "Eastern Time",
- "latitude": 45.508888,
- "longitude": -73.561668
}, - "tags": [
- "production"
], - "sockets": "5",
- "sockets_usage": "2",
- "command": "string",
- "arguments": "string"
}
}
Get a Deployment Status and Information
Retrieve the information for a deployment.
Authorizations:
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:
|
Responses
Response samples
- 200
- 400
- 401
{- "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": {
- "7777": {
- "external": 31669,
- "internal": 7777,
- "protocol": "UDP",
- "name": "7777",
- "tls_upgrade": false,
- "link": "example.com:31669",
- "proxy": 65002
}, - "web": {
- "external": 31587,
- "internal": 8080,
- "protocol": "http",
- "name": "web",
- "tls_upgrade": true,
- "proxy": 65001
}
}, - "public_ip": "100.10.0.85",
- "sessions": [
- {
- "session_id": "abc123",
- "status": "Status.READY",
- "ready": true,
- "linked": true,
- "kind": "DEFAULT | SEATS | MATCH",
- "user_count": "10"
}
], - "location": {
- "city": "Montreal",
- "country": "Canada",
- "continent": "North America",
- "administrative_division": "Quebec",
- "timezone": "Eastern Time",
- "latitude": 45.508888,
- "longitude": -73.561668
}, - "tags": [
- "production"
], - "sockets": "5",
- "sockets_usage": "2",
- "command": "string",
- "arguments": "string"
}
Delete a Deployment
Delete an instance of deployment. It will stop the running container and all its games.
Authorizations:
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:
|
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
- 200
- 202
- 400
- 401
- 410
{- "message": "Instance 93924761ccde will be deleted",
- "deployment_summary": {
- "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": {
- "7777": {
- "external": 31669,
- "internal": 7777,
- "protocol": "UDP",
- "name": "7777",
- "tls_upgrade": false,
- "link": "example.com:31669",
- "proxy": 65002
}, - "web": {
- "external": 31587,
- "internal": 8080,
- "protocol": "http",
- "name": "web",
- "tls_upgrade": true,
- "proxy": 65001
}
}, - "public_ip": "100.10.0.85",
- "sessions": [
- {
- "session_id": "abc123",
- "status": "Status.READY",
- "ready": true,
- "linked": true,
- "kind": "DEFAULT | SEATS | MATCH",
- "user_count": "10"
}
], - "location": {
- "city": "Montreal",
- "country": "Canada",
- "continent": "North America",
- "administrative_division": "Quebec",
- "timezone": "Eastern Time",
- "latitude": 45.508888,
- "longitude": -73.561668
}, - "tags": [
- "production"
], - "sockets": "5",
- "sockets_usage": "2",
- "command": "string",
- "arguments": "string"
}
}
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:
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
- Payload
{- "name": "Example App",
- "is_active": true,
- "is_telemetry_agent_active": false,
- "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}
Response samples
- 200
- 400
- 401
{- "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"
}
Get an Application
Retrieve an application and its information.
Authorizations:
path Parameters
app_name required | string |
Responses
Response samples
- 200
- 400
- 401
{- "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:
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
- Payload
{- "name": "Example App",
- "is_active": true,
- "is_telemetry_agent_active": false,
- "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}
Response samples
- 200
- 400
- 401
{- "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:
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
- Payload
{- "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": {
- "kind": "Seat",
- "sockets": 10,
- "autodeploy": true,
- "empty_ttl": 60,
- "session_max_duration": 60
}, - "ports": [
- {
- "port": 5555,
- "protocol": "TCP",
- "to_check": true,
- "tls_upgrade": false,
- "name": "Game port"
}
], - "probe": {
- "optimal_ping": 60,
- "rejected_ping": 180
}, - "envs": [
- {
- "key": "string",
- "value": "string",
- "is_secret": true
}
], - "verify_image": false,
- "termination_grace_period_seconds": 5,
- "endpoint_storage": "string",
- "command": "null, \"string\"",
- "arguments": "null, \"string\"",
- "build_type": "string"
}
Response samples
- 200
- 400
- 401
- 404
- 409
- 424
- 500
{- "success": true,
- "version": {
- "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": {
- "kind": "Seat",
- "sockets": 10,
- "autodeploy": true,
- "empty_ttl": 60,
- "session_max_duration": 60
}, - "ports": [
- {
- "port": 5555,
- "protocol": "TCP",
- "to_check": true,
- "tls_upgrade": false,
- "name": "Game port"
}
], - "probe": {
- "optimal_ping": 60,
- "rejected_ping": 180
}, - "envs": [
- {
- "key": "string",
- "value": "string",
- "is_secret": true
}
], - "verify_image": false,
- "termination_grace_period_seconds": 5,
- "endpoint_storage": "string",
- "command": "null, \"string\"",
- "arguments": "null, \"string\"",
- "build_type": "string"
}
}
Delete an Application Version
Delete a specific version of an application.
Authorizations:
path Parameters
app_name required | string The name of the application |
version_name required | string The name of the application version |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "success": true,
- "message": "string"
}
Get an Application Version
Retrieve the specifications of an application version.
Authorizations:
path Parameters
app_name required | string The name of the application |
version_name required | string The name of the application version |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "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": {
- "kind": "Seat",
- "sockets": 10,
- "autodeploy": true,
- "empty_ttl": 60,
- "session_max_duration": 60
}, - "ports": [
- {
- "port": 5555,
- "protocol": "TCP",
- "to_check": true,
- "tls_upgrade": false,
- "name": "Game port"
}
], - "probe": {
- "optimal_ping": 60,
- "rejected_ping": 180
}, - "envs": [
- {
- "key": "string",
- "value": "string",
- "is_secret": true
}
], - "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:
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
- Payload
{- "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": {
- "kind": "Seat",
- "sockets": 10,
- "autodeploy": true,
- "empty_ttl": 60,
- "session_max_duration": 60
}, - "ports": [
- {
- "port": 5555,
- "protocol": "TCP",
- "to_check": true,
- "tls_upgrade": false,
- "name": "Game port"
}
], - "probe": {
- "optimal_ping": 60,
- "rejected_ping": 180
}, - "envs": [
- {
- "key": "string",
- "value": "string",
- "is_secret": true
}
], - "termination_grace_period_seconds": 5,
- "verify_image": false,
- "endpoint_storage": "string",
- "command": "null, \"string\"",
- "arguments": "null, \"string\"",
- "build_type": "string"
}
Response samples
- 200
- 400
- 401
- 404
- 424
- 500
{- "success": true,
- "version": {
- "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": {
- "kind": "Seat",
- "sockets": 10,
- "autodeploy": true,
- "empty_ttl": 60,
- "session_max_duration": 60
}, - "ports": [
- {
- "port": 5555,
- "protocol": "TCP",
- "to_check": true,
- "tls_upgrade": false,
- "name": "Game port"
}
], - "probe": {
- "optimal_ping": 60,
- "rejected_ping": 180
}, - "envs": [
- {
- "key": "string",
- "value": "string",
- "is_secret": true
}
], - "verify_image": false,
- "termination_grace_period_seconds": 5,
- "endpoint_storage": "string",
- "command": "null, \"string\"",
- "arguments": "null, \"string\"",
- "build_type": "string"
}
}
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:
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
- Payload
{- "cidr": "1.2.3.4/16",
- "label": "Matchmaker",
- "is_active": true
}
Response samples
- 200
- 400
- 401
{- "success": true,
- "whitelist_entry": {
- "id": "1",
- "cidr": "1.2.3.4/16",
- "label": "Matchmaker",
- "is_active": true
}
}
List All ACL Entries for an Application Version
List all the access control list entries for a specific application version.
Authorizations:
path Parameters
app_name required | string The name of the application |
version_name required | string The name of the application version |
Responses
Response samples
- 200
- 400
- 401
{- "whitelist_entries": [
- {
- "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:
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
- 200
- 400
- 401
{- "success": true,
- "whitelist_entry": {
- "id": "1",
- "cidr": "1.2.3.4/16",
- "label": "Matchmaker",
- "is_active": true
}
}
Get an ACL Entry
Retrieve a specific access control list entry for an application version.
Authorizations:
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
- 200
- 400
- 401
- 404
{- "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:
path Parameters
app_name required | string The name of the application |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "versions": [
- {
- "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": {
- "kind": "Seat",
- "sockets": 10,
- "autodeploy": true,
- "empty_ttl": 60,
- "session_max_duration": 60
}, - "ports": [
- {
- "port": 5555,
- "protocol": "TCP",
- "to_check": true,
- "tls_upgrade": false,
- "name": "Game port"
}
], - "probe": {
- "optimal_ping": 60,
- "rejected_ping": 180
}, - "envs": [
- {
- "key": "string",
- "value": "string",
- "is_secret": true
}
], - "verify_image": false,
- "termination_grace_period_seconds": 5,
- "endpoint_storage": "string",
- "command": "null, \"string\"",
- "arguments": "null, \"string\"",
- "build_type": "string"
}
], - "total_count": 0
}
Response samples
- 200
- 400
- 401
{- "applications": [
- {
- "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"
}
]
}
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:
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
- 200
- 400
- 401
{- "locations": [
- {
- "city": "Montreal",
- "continent": "North America",
- "country": "Canada",
- "timezone": "Eastern Time",
- "administrative_division": "Quebec",
- "latitude": "45.3324097",
- "longitude": "-73.2693626",
- "type": "standard",
- "tags": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "messages": [
- "string"
]
}
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:
Responses
Response samples
- 200
{- "locations": [
- {
- "host": "string",
- "fqdn": "string",
- "udp_port": 0,
- "tcp_port": 0,
- "location": {
- "city": "string",
- "country": "string",
- "continent": "string",
- "administrative_division": "string",
- "timezone": "string",
- "latitude": 0,
- "longitude": 0
}
}
], - "count": 1
}
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:
Request Body schema: application/json
app_name required | string The Name of the App you want to deploy, example:
|
version_name | string The Name of the App Version you want to deploy, example:
|
ip_list | Array of strings The List of IP of your user, Array of String, example:
|
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
- Payload
{- "app_name": "string",
- "version_name": "string",
- "ip_list": [
- "1.2.3.4"
], - "geo_ip_list": [
- {
- "ip": "string",
- "latitude": 0,
- "longitude": 0
}
], - "deployment_request_id": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}, - "city": "Montreal",
- "country": "Canada",
- "continent": "North America",
- "administrative_division": "Quebec",
- "region": "string",
- "selectors": [
- {
- "tag": "string",
- "tag_only": false,
- "env": {
- "key": "string",
- "value": "string"
}
}
], - "webhook_url": "string",
- "filters": [
- {
- "field": "string",
- "values": [
- "string"
], - "filter_type": "any"
}
], - "skip_telemetry": true
}
Response samples
- 200
- 400
- 401
- 409
{- "session_id": "abc123-s",
- "custom_id": "custom-abc123",
- "app": "demo",
- "version": "v1.0",
- "deployment_request_id": "string",
- "selectors": [
- {
- "tag": "string",
- "tag_only": false,
- "env": {
- "key": "string",
- "value": "string"
}
}
], - "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:
path Parameters
session_id required | string |
Responses
Response samples
- 200
- 400
- 401
- 404
- 410
{- "message": "Instance 93924761ccde will be deleted",
- "session_id": "abc123-s",
- "custom_id": "custom-abc123"
}
Get a Session
Retrieve the information for a session.
Authorizations:
path Parameters
session_id required | string |
Responses
Response samples
- 200
- 400
- 401
{- "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": [
- {
- "ip": "1.2.3.4",
- "latitude": 0,
- "longitude": 0
}
], - "session_ips": [
- {
- "ip": "1.2.3.4",
- "latitude": 0,
- "longitude": 0
}
], - "deployment": {
- "request_id": "abc123",
- "public_ip": "100.10.0.85",
- "status": "Status.READY",
- "ready": true,
- "whitelisting_active": true,
- "fqdn": "abc123.test.edgegap.com",
- "ports": {
- "7777": {
- "external": 31669,
- "internal": 7777,
- "protocol": "UDP",
- "name": "7777",
- "tls_upgrade": false,
- "link": "example.com:31669",
- "proxy": 65002
}, - "web": {
- "external": 31587,
- "internal": 8080,
- "protocol": "http",
- "name": "web",
- "tls_upgrade": true,
- "proxy": 65001
}
}, - "location": {
- "city": "Montreal",
- "country": "Canada",
- "continent": "North America",
- "administrative_division": "Quebec",
- "timezone": "Eastern Time",
- "latitude": 45.508888,
- "longitude": -73.561668
}, - "tags": [
- "production"
], - "sockets": "5",
- "sockets_usage": "2",
- "is_joinable_by_session": true
}, - "webhook_url": "string"
}
Delete Users From a Session
Remove specified users from a session.
Authorizations:
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:
|
Responses
Request samples
- Payload
{- "ip_list": [
- "1.2.3.4"
]
}
Response samples
- 200
- 400
- 401
{- "session_users": [
- {
- "ip": "1.2.3.4",
- "latitude": 0,
- "longitude": 0
}
]
}
Put Users in a Session
Add specified users to a session.
Authorizations:
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:
|
Responses
Request samples
- Payload
{- "ip_list": [
- "1.2.3.4"
]
}
Response samples
- 200
- 400
- 401
- 422
{- "session_users": [
- {
- "ip": "1.2.3.4",
- "latitude": 0,
- "longitude": 0
}
]
}
Response samples
- 200
- 400
- 401
{- "data": [
- {
- "session_id": "abc123-s",
- "custom_id": "custom-abc123",
- "status": "Status.READY",
- "ready": true,
- "linked": true,
- "kind": "DEFAULT | SEATS | MATCH",
- "user_count": "10",
- "deployment_request_id": "abc123",
- "webhook_url": "string"
}
], - "total_count": 0,
- "pagination": {
- "number": 0,
- "next_page_number": 0,
- "previous_page_number": 0,
- "paginator": {
- "num_pages": 0
}, - "has_next": true,
- "has_previous": true
}
}
Delete Sessions in Bulk
Make a bulk delete of sessions using filters. All the sessions matching the given filters will be permanently deleted.
Authorizations:
Request Body schema: application/json
required | Array of objects (SessionBulkStopFiltersPayload) Filters used to match with sessions | ||||||
Array
|
Responses
Request samples
- Payload
{- "filters": [
- {
- "field": "session_id",
- "values": [
- "string"
], - "filter_type": "any"
}
]
}
Response samples
- 200
- 400
- 401
- 500
{- "processable": [
- {
- "session_id": "string"
}
]
}
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:
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
|
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
|
steps | string Steps between each metrics.
|
raw | string If set to true, will return the raw data. Default to false. |
Responses
Response samples
- 200
- 400
- 401
- 422
{- "total": {
- "receive_total": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}, - "transmit_total": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}, - "disk_read_total": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}, - "disk_write_total": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}
}, - "cpu": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}, - "mem": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}, - "network": {
- "receive": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}, - "transmit": {
- "labels": [
- "00:00:00"
], - "datasets": [
- "2458"
], - "timestamps": [
- "2021-07-14 14:17:37.711"
]
}
}
}
Matchmaker Control API - Please refer to this documentation to get started with matchmakers.
Create a Matchmaker Component
Create a new matchmaker component.
Authorizations:
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
- Payload
{- "name": "string",
- "repository": "string",
- "image": "string",
- "tag": "string",
- "credentials": {
- "username": "string",
- "token": "string"
}
}
Response samples
- 200
- 400
- 401
{- "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": {
- "username": "string",
- "token": "string"
}
}
Get a Matchmaker Component
Retrieve a matchmaker component.
Authorizations:
path Parameters
component_name required | string |
Responses
Response samples
- 200
- 400
- 401
{- "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": {
- "username": "string",
- "token": "string"
}
}
Update a Matchmaker Component
Update a matchmaker component with new specifications.
Authorizations:
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
- Payload
{- "name": "string",
- "repository": "string",
- "image": "string",
- "tag": "string",
- "credentials": {
- "username": "string",
- "token": "string"
}
}
Response samples
- 200
- 400
- 401
{- "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": {
- "username": "string",
- "token": "string"
}
}
Create a Matchmaker Component ENV
Create a new matchmaker component ENV.
Authorizations:
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
- Payload
{- "key": "string",
- "value": "string"
}
Response samples
- 200
- 400
- 401
{- "created_at": "2024-12-06 12:00:35.945600",
- "updated_at": "2024-12-06 12:00:35.945600",
- "key": "string",
- "value": "string"
}
Get a Matchmaker Component ENV
Retrieve a matchmaker component ENV.
Authorizations:
path Parameters
component_name required | string |
env_key required | string |
Responses
Response samples
- 200
- 400
- 401
{- "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:
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
- Payload
{- "key": "string",
- "value": "string"
}
Response samples
- 200
- 400
- 401
{- "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:
path Parameters
component_name required | string |
Responses
Response samples
- 200
- 400
- 401
{- "count": 0,
- "data": [
- {
- "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 Components
List all components for a specific matchmaker.
Authorizations:
Responses
Response samples
- 200
- 400
- 401
{- "count": 0,
- "data": {
- "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": {
- "username": "string",
- "token": "string"
}
}
}
Create a Matchmaker
Create a new matchmaker. A matchmaker is a top-level object; you must create child resources to work properly.
Authorizations:
Request Body schema: application/json
name required | string Name of the Matchmaker. |
Responses
Request samples
- Payload
{- "name": "string"
}
Response samples
- 200
- 400
- 401
{- "created_at": "2024-12-06 12:00:35.945600",
- "updated_at": "2024-12-06 12:00:35.945600",
- "name": "string",
- "url": "null, \"string\""
}
Get a Matchmaker
Retrieve a matchmaker.
Authorizations:
path Parameters
matchmaker_name required | string |
Responses
Response samples
- 200
- 400
- 401
{- "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:
path Parameters
matchmaker_name required | string |
Request Body schema: application/json
name | string Name of the Matchmaker. |
Responses
Request samples
- Payload
{- "name": "string"
}
Response samples
- 200
- 400
- 401
{- "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:
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
- Payload
{- "version": "string",
- "frontend_component_name": "string",
- "director_component_name": "string",
- "match_function_component_name": "string"
}
Response samples
- 200
- 400
- 401
{- "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:
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
- Payload
{- "version": "string",
- "release_config_name": "string"
}
Response samples
- 200
- 400
- 401
{- "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"
}
Get a Matchmaker Managed Release
Retrieve a matchmaker managed release.
Authorizations:
path Parameters
matchmaker_name required | string |
release_version required | string |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "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:
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
- Payload
{- "version": "string",
- "release_config_name": "string"
}
Response samples
- 200
- 400
- 401
{- "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"
}
Get a Matchmaker Release
Retrieve a matchmaker release.
Authorizations:
path Parameters
matchmaker_name required | string |
release_version required | string |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "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:
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
- Payload
{- "version": "string",
- "frontend_component_name": "string",
- "director_component_name": "string",
- "match_function_component_name": "string"
}
Response samples
- 200
- 400
- 401
{- "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:
path Parameters
matchmaker_name required | string |
Responses
Response samples
- 200
- 400
- 401
{- "count": 0,
- "data": [
- {
- "created_at": "2024-12-06 12:00:35.945600",
- "updated_at": "2024-12-06 12:00:35.945600",
- "key": "string",
- "value": "string"
}
]
}
Create a Matchmaker Release Config
Create a matchmaker release config.
Authorizations:
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
- Payload
{- "name": "string",
- "configuration": "string"
}
Response samples
- 200
- 400
- 401
{- "created_at": "2024-12-06 12:00:35.945600",
- "updated_at": "2024-12-06 12:00:35.945600",
- "name": "string",
- "configuration": "string"
}
Get a Matchmaker Release Config
Get a matchmaker release config.
Authorizations:
path Parameters
config_name required | string |
Responses
Response samples
- 200
- 400
- 401
{- "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:
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
- Payload
{- "name": "string",
- "configuration": "string"
}
Response samples
- 200
- 400
- 401
{- "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:
Responses
Response samples
- 200
- 400
- 401
{- "count": 0,
- "data": [
- {
- "created_at": "2024-12-06 12:00:35.945600",
- "updated_at": "2024-12-06 12:00:35.945600",
- "key": "string",
- "value": "string"
}
]
}
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:
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
- Payload
{- "deployments": [
- "string"
], - "ips": [
- "1.1.1.1"
], - "webhook_url": "string"
}
Response samples
- 200
- 400
- 401
- 422
{- "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:
path Parameters
retrieval_key required | string |
Responses
Response samples
- 200
- 400
- 401
{- "retrieval_key": "string",
- "scores": [
- {
- "request_id": "string"
}
], - "partial_result": true
}
Get an IP's information
Lookup an IP address and return the associated information.
Authorizations:
path Parameters
ip required | string |
Responses
Response samples
- 200
- 401
- 500
{- "type": "ipv4",
- "ip_address": "1.1.1.1",
- "location": {
- "continent": {
- "code": "AF",
- "name": "Africa"
}, - "country": {
- "code": "CA",
- "name": "Canada"
}, - "latitude": "45.4215",
- "longitude": "-75.6972"
}
}
Get IPs Information in Bulk
Lookup IP addresses and return the associated information. Maximum of 20 IPs.
Authorizations:
Request Body schema: application/json
addresses required | Array of strings IP Addresses |
Responses
Request samples
- Payload
{- "addresses": [
- "string"
]
}
Response samples
- 200
- 401
- 500
{- "addresses": [
- {
- "type": "ipv4",
- "ip_address": "1.1.1.1",
- "location": {
- "continent": {
- "code": "AF",
- "name": "Africa"
}, - "country": {
- "code": "CA",
- "name": "Canada"
}, - "latitude": "45.4215",
- "longitude": "-75.6972"
}
}
]
}
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:
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
- Payload
{- "name": "string",
- "enabled": false
}
Response samples
- 200
- 400
- 401
{- "name": "string",
- "enabled": false,
- "create_time": "2022-01-01 00:00:00.000000",
- "last_updated": "2022-01-01 00:00:00.000000"
}
Get a Fleet
Retrieve a fleet with its details.
Authorizations:
path Parameters
fleet_name required | string The name of the fleet |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "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:
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
- Payload
{- "name": "string",
- "enabled": true
}
Response samples
- 200
- 400
- 401
- 404
{- "name": "string",
- "enabled": true,
- "create_time": "2022-01-01 00:00:00.000000",
- "last_updated": "2022-01-01 00:00:00.000000"
}
Link an Application Version to a Fleet
Link an application version to a fleet. By linking this version, the fleet will automatically create deployments of this version according to the fleet policies.
Authorizations:
path Parameters
fleet_name required | string The name of the fleet |
app_name required | string The name of the application to link |
version_name required | string The name of the application version to link |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "app": "string",
- "app_version": "string",
- "fleet": "string",
- "create_time": "2022-01-01 00:00:00.000000",
- "last_updated": "2022-01-01 00:00:00.000000"
}
Unlink an Application Version From a Fleet
Unlink an application version from a fleet. It will not delete the application version or the fleet
Authorizations:
path Parameters
fleet_name required | string The name of the fleet |
app_name required | string The name of the application to link |
version_name required | string The name of the application version to link |
Responses
Response samples
- 400
- 401
- 404
{- "message": "string"
}
List All Policies of a Fleet
List all the policies of a fleet.
Authorizations:
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
- 200
- 400
- 401
- 404
{- "policies": [
- {
- "name": "string",
- "enabled": true,
- "type": "Location",
- "minimum": 1,
- "maximum": 1,
- "threshold": 0.9,
- "data": {
- "filters": [
- {
- "field": "city",
- "values": [
- "string"
], - "filter_type": "any"
}
]
}, - "create_time": "2022-01-01 00:00:00.000000",
- "last_updated": "2022-01-01 00:00:00.000000"
}
], - "pagination": {
- "number": 0,
- "next_page_number": 0,
- "previous_page_number": 0,
- "paginator": {
- "num_pages": 0
}, - "has_next": true,
- "has_previous": true
}
}
Create a Fleet Policy
Create a fleet policy. Policies are conditions that the fleet must respect.
Authorizations:
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. |