Integration
Last updated
Was this helpful?
Last updated
Was this helpful?
Retrieve an application and its information.
GET /v1/app/{app_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"name": "Example App",
"is_active": true,
"is_telemetry_agent_active": false,
"image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
"create_time": "2025-06-20 12:00:07.036530",
"last_updated": "2025-06-20 12:00:07.036530"
}
Delete an application and all its current versions.
DELETE /v1/app/{app_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
No content
Delete a specific version of an application.
The name of the application
The name of the application version
DELETE /v1/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"success": true,
"message": "text"
}
Retrieve the specifications of an application version.
The name of the application
The name of the application version
GET /v1/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"name": "v1",
"is_active": true,
"docker_repository": "registry.edgegap.com",
"docker_image": "demo",
"docker_tag": "0.1.2",
"private_username": "username",
"private_token": "password",
"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,
"kind": 0,
"cache_min_hour": 1,
"cache_max_hour": 1,
"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": "API_KEY",
"value": "123456",
"is_secret": true
}
],
"verify_image": false,
"termination_grace_period_seconds": 1,
"endpoint_storage": "my-storage",
"command": "null | 'string'",
"arguments": "null | 'string'",
"create_time": "2025-06-21T03:50:00.895Z",
"last_updated": "2025-06-21T03:50:00.895Z",
"dns_config": "text"
}
List all versions of a specific application.
The name of the application
GET /v1/app/{app_name}/versions HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"versions": [
{
"name": "v1",
"is_active": true,
"docker_repository": "registry.edgegap.com",
"docker_image": "demo",
"docker_tag": "0.1.2",
"private_username": "username",
"private_token": "password",
"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,
"kind": 0,
"cache_min_hour": 1,
"cache_max_hour": 1,
"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": "API_KEY",
"value": "123456",
"is_secret": true
}
],
"verify_image": false,
"termination_grace_period_seconds": 1,
"endpoint_storage": "my-storage",
"command": "null | 'string'",
"arguments": "null | 'string'",
"create_time": "2025-06-21T03:50:00.895Z",
"last_updated": "2025-06-21T03:50:00.895Z",
"dns_config": "text"
}
],
"total_count": 1
}
List all the applications that you own.
GET /v1/apps HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"applications": [
{
"name": "Example App",
"is_active": true,
"is_telemetry_agent_active": false,
"image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
"create_time": "2025-06-20 12:00:07.036530",
"last_updated": "2025-06-20 12:00:07.036530"
}
]
}
List all tags of a specific registry image.
The name of the image
GET /v1/container-registry/images/{image_name}/tags HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"tag": "tag1",
"last_push_at": "2025-06-21T03:50:00.895Z",
"artifact": {
"artifact_deleted": true,
"remaining_tags": [
"tag1",
"tag2"
],
"image_hash": "sha256:1234567890abcdef",
"size_mb": 1
}
}
]
}
Delete a single tag from a artifact in the registry.
The name of the image
The name of the tag
DELETE /v1/container-registry/images/{image_name}/tags/{tag_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"artifact": {
"artifact_deleted": true,
"size_mb": 1,
"remaining_tags": [
"text"
],
"image_hash": "text"
},
"deleted_tag": "text"
}
Delete an endpoint storage. All the application versions linked to it won't be able to store logs anymore.
DELETE /v1/storage/endpoint/{endpoint_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
No content
Retrieve an endpoint storage. The secret_access_key
won't be displayed.
GET /v1/storage/endpoint/{endpoint_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"name": "my-s3-endpoint",
"access_key_id": "my-access-key-id",
"endpoint": "https://us-east-1.your-s3-provider.com",
"bucket": "my-bucket",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}
Delete a pull profile. All the application versions linked won't receive the data upload anymore. It will not delete your endpoint storage.
DELETE /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
No content
Retrieve a pull profile and its specifications.
GET /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"name": "pull_profile_name",
"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"
}
Link a pull profile to an app version. Without a link, the pull profile by itself will do nothing.
PUT /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"app": "app_name",
"app_version": "version_name",
"endpoint": "endpoint_name",
"pull_profile": "pull_profile_name",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}
Unlink a pull profile from an app version. It will not delete the pull profile.
DELETE /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
No content
List all pull profiles of an endpoint storage.
Page number for pagination
Limit of pull profiles for each page
GET /v1/storage/endpoint/{endpoint_name}/pull-profiles HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"pull_profiles": [
{
"name": "pull_profile_name",
"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"
}
],
"pagination": {
"number": 1,
"next_page_number": 1,
"previous_page_number": 1,
"paginator": {
"num_pages": 1
},
"has_next": true,
"has_previous": true
}
}
List all endpoint storage.
Page number for pagination
Limit of Fleet for each page
An optional fields mask
GET /v1/storage/endpoints HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
"endpoints": [
{
"name": "my-s3-endpoint",
"access_key_id": "my-access-key-id",
"endpoint": "https://us-east-1.your-s3-provider.com",
"bucket": "my-bucket",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}
],
"pagination": {
"number": 1,
"next_page_number": 1,
"previous_page_number": 1,
"paginator": {
"num_pages": 1
},
"has_next": true,
"has_previous": true
}
}
Create an application that will regroup application versions.
The application name
Example App
If the application can be deployed
true
If the telemetry agent is installed on the versions of this app.
Image base64 string
iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==
POST /v1/app HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 128
{
"name": "Example App",
"is_active": true,
"is_telemetry_agent_active": false,
"image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}
{
"name": "Example App",
"is_active": true,
"is_telemetry_agent_active": false,
"image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
"create_time": "2025-06-20 12:00:07.036530",
"last_updated": "2025-06-20 12:00:07.036530"
}
Update an application with new information.
Application name
Example App
If the application can be deployed
true
If the telemetry agent is installed on the versions of this app.
Image base64 string
iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==
PATCH /v1/app/{app_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 128
{
"name": "Example App",
"is_active": true,
"is_telemetry_agent_active": false,
"image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}
{
"name": "Example App",
"is_active": true,
"is_telemetry_agent_active": false,
"image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
"create_time": "2025-06-20 12:00:07.036530",
"last_updated": "2025-06-20 12:00:07.036530"
}
Create an application version associated with an application. The version contains all the specifications to create a deployment.
The name of the application associated
The Version Name
v1
If the Version is active currently in the system
The Repository where the image is (i.e. 'harbor.edgegap.com' or 'docker.io')
registry.edgegap.com
The name of your image (i.e. 'edgegap/demo')
demo
The tag of your image (i.e. '0.1.2')
0.1.2
The username to access the docker repository
username
The Private Password or Token of the username (We recommend to use a token)
password
Units of vCPU needed (1024 = 1vcpu)
256
Units of memory in MB needed (1024 = 1GB)
256
Units of GPU needed (1024 = 1 GPU)
256
The Max duration of the game in minute. 0 means forever.
30
Allow to inject ASA Variables
(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)
ACL Protection is active
Allow faster deployment by caching your container image in every Edge site
The kind of the app version. Can be "session" or "non-session"
Start of the preferred interval for caching your container
End of the preferred interval for caching your container
Estimated maximum time in seconds to deploy, after this time we will consider it not working and retry.
15
(DEPRECATED) - 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.
By enabling the verify_image option, your image infos (docker_repository, docker_image, docker_tag) will be tested.
false
Termination grace period in seconds after the SIGTERM signal has been sent
The name of the endpoint storage to link
my-storage
Entrypoint/Command override of your Container
null | 'string'
The Arguments to pass to the command
null | 'string'
The creation time of the app version
The last update time of the app version
The name of the DNS config to link
POST /v1/app/{app_name}/version HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 989
{
"name": "v1",
"is_active": true,
"docker_repository": "registry.edgegap.com",
"docker_image": "demo",
"docker_tag": "0.1.2",
"private_username": "username",
"private_token": "password",
"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,
"kind": 0,
"cache_min_hour": 1,
"cache_max_hour": 1,
"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": "API_KEY",
"value": "123456",
"is_secret": true
}
],
"verify_image": false,
"termination_grace_period_seconds": 1,
"endpoint_storage": "my-storage",
"command": "null | 'string'",
"arguments": "null | 'string'",
"create_time": "2025-06-21T03:50:00.895Z",
"last_updated": "2025-06-21T03:50:00.895Z",
"dns_config": "text"
}
{
"success": true,
"version": {
"name": "v1",
"is_active": true,
"docker_repository": "registry.edgegap.com",
"docker_image": "demo",
"docker_tag": "0.1.2",
"private_username": "username",
"private_token": "password",
"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,
"kind": 0,
"cache_min_hour": 1,
"cache_max_hour": 1,
"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": "API_KEY",
"value": "123456",
"is_secret": true
}
],
"verify_image": false,
"termination_grace_period_seconds": 1,
"endpoint_storage": "my-storage",
"command": "null | 'string'",
"arguments": "null | 'string'",
"create_time": "2025-06-21T03:50:00.895Z",
"last_updated": "2025-06-21T03:50:00.895Z",
"dns_config": "text"
}
}
Update an application version with new specifications.
The name of the application
The name of the application version
The Version Name
v1
If the Version is active currently in the system
The Repository where the image is (i.e. 'harbor.edgegap.com' or 'docker.io')
registry.edgegap.com
The name of your image (i.e. 'edgegap/demo')
demo
The tag of your image (i.e. '0.1.2')
0.1.2
The username to access the docker repository
username
The Private Password or Token of the username (We recommend to use a token)
password
Units of vCPU needed (1024 = 1vcpu)
256
Units of memory in MB needed (1024 = 1GB)
256
Units of GPU needed (1024= 1 GPU)
256
The Max duration of the game
30
Allow to inject ASA Variables
(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)
ACL Protection is active
Allow faster deployment by caching your container image in every Edge site
Start of the preferred interval for caching your container
End of the preferred interval for caching your container
Estimated maximum time in seconds to deploy, after this time we will consider it not working and retry.
15
(DEPRECATED) - 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.
Termination grace period in seconds after the SIGTERM signal has been sent
By enabling the verify_image option, your image infos (docker_repository, docker_image, docker_tag) will be tested.
false
The name of the endpoint storage to link
my-storage
Entrypoint/Command override of your Container
null | 'string'
The Arguments to pass to the command
null | 'string'
The name of the DNS config to link
PATCH /v1/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 895
{
"name": "v1",
"is_active": true,
"docker_repository": "registry.edgegap.com",
"docker_image": "demo",
"docker_tag": "0.1.2",
"private_username": "username",
"private_token": "password",
"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": 1,
"cache_max_hour": 1,
"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": "API_KEY",
"value": "123456",
"is_secret": true
}
],
"termination_grace_period_seconds": 1,
"verify_image": false,
"endpoint_storage": "my-storage",
"command": "null | 'string'",
"arguments": "null | 'string'",
"dns_config": "text"
}
{
"success": true,
"version": {
"name": "v1",
"is_active": true,
"docker_repository": "registry.edgegap.com",
"docker_image": "demo",
"docker_tag": "0.1.2",
"private_username": "username",
"private_token": "password",
"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,
"kind": 0,
"cache_min_hour": 1,
"cache_max_hour": 1,
"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": "API_KEY",
"value": "123456",
"is_secret": true
}
],
"verify_image": false,
"termination_grace_period_seconds": 1,
"endpoint_storage": "my-storage",
"command": "null | 'string'",
"arguments": "null | 'string'",
"create_time": "2025-06-21T03:50:00.895Z",
"last_updated": "2025-06-21T03:50:00.895Z",
"dns_config": "text"
}
}
Create an endpoint storage to store your container logs at the end of a deployment.
Name of the Endpoint Storage
my-s3-bucket
Your access key ID to connect to your S3 Bucket.
my-access-key-id
Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain
https://us-east-1.your-s3-provider.com
Your secret access key to connect to your S3 Bucket. Will be encrypted.
my-bucket
Your secret access key to connect to your S3 Bucket. Will be encrypted.
my-secret-access
POST /v1/storage/endpoint HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 170
{
"name": "my-s3-bucket",
"access_key_id": "my-access-key-id",
"endpoint": "https://us-east-1.your-s3-provider.com",
"bucket": "my-bucket",
"secret_access_key": "my-secret-access"
}
{
"name": "my-s3-bucket",
"access_key_id": "my-access-key-id",
"endpoint": "https://us-east-1.your-s3-provider.com",
"bucket": "my-bucket",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}
Update an Endpoint Storage with new specifications.
Name of the Endpoint Storage
my-s3-endpoint
Your access key ID to connect to your S3 Bucket.
my-access-key-id
Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain
https://us-east-1.your-s3-provider.com
Your secret access key to connect to your S3 Bucket. Will be encrypted.
my-bucket
Your secret access key to connect to your S3 Bucket. Will be encrypted.
my-secret-access
PATCH /v1/storage/endpoint/{endpoint_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 172
{
"name": "my-s3-endpoint",
"access_key_id": "my-access-key-id",
"endpoint": "https://us-east-1.your-s3-provider.com",
"bucket": "my-bucket",
"secret_access_key": "my-secret-access"
}
{
"name": "my-s3-endpoint",
"access_key_id": "my-access-key-id",
"endpoint": "https://us-east-1.your-s3-provider.com",
"bucket": "my-bucket",
"create_time": "2022-01-01 00:00:00.000000",
"last_updated": "2022-01-01 00:00:00.000000"
}
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.
Name of the pull profile
pull_profile_name
Source in the S3 bucket to fetch from
/my-bucket/config.cfg
If the source is a File or a Directory
File
Possible values: 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.
/usr/share/configs
POST /v1/storage/endpoint/{endpoint_name}/pull-profile HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 117
{
"name": "pull_profile_name",
"source": "/my-bucket/config.cfg",
"source_type": "File",
"destination": "/usr/share/configs"
}
{
"name": "pull_profile_name",
"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 with new specifications.
Name of the pull profile
pull_profile_name
Source in the S3 bucket to fetch from
/my-bucket/config.cfg
If the source is a File or a Directory
File
Possible values: 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.
/usr/share/configs
PATCH /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 117
{
"name": "pull_profile_name",
"source": "/my-bucket/config.cfg",
"source_type": "File",
"destination": "/usr/share/configs"
}
{
"name": "pull_profile_name",
"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"
}