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

Connect with Community

  • Discord
  • Linkedin
  • X

Read More

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

© 2025 Edgegap

On this page

Was this helpful?

  1. API Reference

Integration

PreviousDedicated ServersNextMatchmaking

Last updated 2 months ago

Was this helpful?

📦 Applications

💾 Container Registry

🗒️ Log Storage

Get an Application

get

Retrieve an application and its information.

Authorizations
Path parameters
app_nameanyRequired
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
GET /v1/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-05-09 02:29:57.890382",
  "last_updated": "2025-05-09 02:29:57.890382"
}

Delete an Application

delete

Delete an application and all its current versions.

Authorizations
Path parameters
app_nameanyRequired
Responses
200
Success
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/app/{app_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*

No content

Delete an Application Version

delete

Delete a specific version of an application.

Authorizations
Path parameters
app_namestringRequired

The name of the application

version_namestringRequired

The name of the application version

Responses
200
Success
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/app/{app_name}/version/{version_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "text"
}

Get an Application Version

get

Retrieve the specifications of an application version.

Authorizations
Path parameters
app_namestringRequired

The name of the application

version_namestringRequired

The name of the application version

Responses
200
Success
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
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": true,
      "name": "Game port"
    }
  ],
  "probe": {
    "optimal_ping": 60,
    "rejected_ping": 180
  },
  "envs": [
    {
      "key": "API_KEY",
      "value": "123456",
      "is_secret": true
    }
  ],
  "verify_image": true,
  "termination_grace_period_seconds": 1,
  "endpoint_storage": "my-storage",
  "command": "null | 'string'",
  "arguments": "null | 'string'",
  "create_time": "2025-05-09T05:16:48.558Z",
  "last_updated": "2025-05-09T05:16:48.558Z",
  "dns_config": "text"
}

List All Versions for an Application

get

List all versions of a specific application.

Authorizations
Path parameters
app_namestringRequired

The name of the application

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
GET /v1/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": true,
          "name": "Game port"
        }
      ],
      "probe": {
        "optimal_ping": 60,
        "rejected_ping": 180
      },
      "envs": [
        {
          "key": "API_KEY",
          "value": "123456",
          "is_secret": true
        }
      ],
      "verify_image": true,
      "termination_grace_period_seconds": 1,
      "endpoint_storage": "my-storage",
      "command": "null | 'string'",
      "arguments": "null | 'string'",
      "create_time": "2025-05-09T05:16:48.558Z",
      "last_updated": "2025-05-09T05:16:48.558Z",
      "dns_config": "text"
    }
  ],
  "total_count": 1
}

List All Applications

get

List all the applications that you own.

Authorizations
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
get
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-05-09 02:29:57.890382",
      "last_updated": "2025-05-09 02:29:57.890382"
    }
  ]
}

List All Tags for a Registry Image

get

List all tags of a specific registry image.

Authorizations
Path parameters
image_namestringRequired

The name of the image

Responses
200
Success
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
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-05-09T05:16:48.558Z",
      "artifact": {
        "artifact_deleted": true,
        "remaining_tags": [
          "tag1",
          "tag2"
        ],
        "image_hash": "sha256:1234567890abcdef",
        "size_mb": 1
      }
    }
  ]
}

Delete Tag For a Registry Image

delete

Delete a single tag from a artifact in the registry.

Authorizations
Path parameters
image_namestringRequired

The name of the image

tag_namestringRequired

The name of the tag

Responses
200
Success
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
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

delete

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

Authorizations
Path parameters
endpoint_nameanyRequired
Responses
204
No Content
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/storage/endpoint/{endpoint_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*

No content

Get an Endpoint Storage

get

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

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

delete

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

Authorizations
Path parameters
endpoint_nameanyRequired
pull_profile_nameanyRequired
Responses
204
No Content
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name} HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Accept: */*

No content

Get a Pull Profile

get

Retrieve a pull profile and its specifications.

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

put

Link a pull profile to an app version. Without a link, the pull profile by itself will do nothing.

Authorizations
Path parameters
endpoint_nameanyRequired
pull_profile_nameanyRequired
app_nameanyRequired
version_nameanyRequired
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
put
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 Application Version

delete

Unlink a pull profile from an app version. It will not delete the pull profile.

Authorizations
Path parameters
endpoint_nameanyRequired
pull_profile_nameanyRequired
app_nameanyRequired
version_nameanyRequired
Responses
204
Success
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
delete
DELETE /v1/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 Profile of an Endpoint Storage

get

List all pull profiles of an endpoint storage.

Authorizations
Path parameters
endpoint_nameanyRequired
Query parameters
pageintegerOptional

Page number for pagination

limitintegerOptional

Limit of pull profiles for each page

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

get

List all endpoint storage.

Authorizations
Query parameters
pageintegerOptional

Page number for pagination

limitintegerOptional

Limit of Fleet for each page

Header parameters
X-Fieldsstring · maskOptional

An optional fields mask

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
get
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
  }
}
  • 📦 Applications
  • POSTCreate a New Application
  • PATCHUpdate an Application
  • GETGet an Application
  • DELETEDelete an Application
  • POSTCreate a New Application Version
  • DELETEDelete an Application Version
  • GETGet an Application Version
  • PATCHUpdate an Application Version
  • GETList All Versions for an Application
  • GETList All Applications
  • 💾 Container Registry
  • GETList All Tags for a Registry Image
  • DELETEDelete Tag For a Registry Image
  • 🗒️ Log Storage
  • POSTCreate a New Endpoint Storage
  • DELETEDelete an Endpoint Storage
  • GETGet an Endpoint Storage
  • PATCHUpdate an Endpoint Storage
  • POSTCreate a New Pull Profile
  • DELETEDelete a Pull Profile
  • GETGet a Pull Profile
  • PATCHUpdate a Pull Profile
  • PUTLink a Pull Profile to an Application Version
  • DELETEUnlink a Pull Profile From an Application Version
  • GETList All Pull Profile of an Endpoint Storage
  • GETList All Endpoint Storage

Create a New Application

post

Create an application that will regroup application versions.

Authorizations
Body
namestring · min: 1 · max: 64Required

The application name

Example: Example App
is_activebooleanRequired

If the application can be deployed

Example: true
is_telemetry_agent_activebooleanOptional

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

imagestringRequired

Image base64 string

Example: iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
409
Conflict
application/json
500
Internal Server Error
application/json
post
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-05-09 02:29:57.890382",
  "last_updated": "2025-05-09 02:29:57.890382"
}

Update an Application

patch

Update an application with new information.

Authorizations
Path parameters
app_nameanyRequired
Body
namestring · min: 3 · max: 64Optional

Application name

Example: Example App
is_activebooleanOptional

If the application can be deployed

Example: true
is_telemetry_agent_activebooleanOptional

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

imagestringOptional

Image base64 string

Example: iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
409
Conflict
application/json
500
Internal Server Error
application/json
patch
PATCH /v1/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-05-09 02:29:57.890382",
  "last_updated": "2025-05-09 02:29:57.890382"
}

Create a New Application Version

post

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

Authorizations
Path parameters
app_namestringRequired

The name of the application associated

Body
namestring · min: 1 · max: 64Required

The Version Name

Example: v1
is_activebooleanOptional

If the Version is active currently in the system

docker_repositorystringRequired

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

Example: registry.edgegap.com
docker_imagestringRequired

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

Example: demo
docker_tagstringRequired

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

Example: 0.1.2
private_usernamestringOptional

The username to access the docker repository

Example: username
private_tokenstringOptional

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

Example: password
req_cpuinteger · min: 100Required

Units of vCPU needed (1024 = 1vcpu)

Example: 256
req_memoryinteger · min: 100Required

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

Example: 256
req_videointegerOptional

Units of GPU needed (1024 = 1 GPU)

Example: 256
max_durationintegerOptional

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

Example: 30
use_telemetrybooleanOptional

Allow to inject ASA Variables

inject_context_envbooleanOptional

(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_activebooleanOptional

ACL Protection is active

force_cachebooleanOptional

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

kindstringOptional

The kind of the app version. Can be "session" or "non-session"

cache_min_hourinteger · max: 23Optional

Start of the preferred interval for caching your container

cache_max_hourinteger · max: 23Optional

End of the preferred interval for caching your container

time_to_deployinteger · min: 15Optional

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

Example: 15
enable_all_locationsbooleanOptional

(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.

verify_imagebooleanOptional

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

Default: false
termination_grace_period_secondsinteger · min: 5 · max: 3600Optional

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

endpoint_storagestringOptional

The name of the endpoint storage to link

Example: my-storage
commandstring | nullOptional

Entrypoint/Command override of your Container

Example: null | 'string'
argumentsstring | nullOptional

The Arguments to pass to the command

Example: null | 'string'
create_timestring · date-timeOptional

The creation time of the app version

last_updatedstring · date-timeOptional

The last update time of the app version

dns_configstringOptional

The name of the DNS config to link

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
409
Conflict
application/json
424
Failed Dependency
application/json
500
Internal Server Error
application/json
post
POST /v1/app/{app_name}/version HTTP/1.1
Host: api.edgegap.com
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 987

{
  "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": true,
      "name": "Game port"
    }
  ],
  "probe": {
    "optimal_ping": 60,
    "rejected_ping": 180
  },
  "envs": [
    {
      "key": "API_KEY",
      "value": "123456",
      "is_secret": true
    }
  ],
  "verify_image": true,
  "termination_grace_period_seconds": 1,
  "endpoint_storage": "my-storage",
  "command": "null | 'string'",
  "arguments": "null | 'string'",
  "create_time": "2025-05-09T05:16:48.558Z",
  "last_updated": "2025-05-09T05:16:48.558Z",
  "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": true,
        "name": "Game port"
      }
    ],
    "probe": {
      "optimal_ping": 60,
      "rejected_ping": 180
    },
    "envs": [
      {
        "key": "API_KEY",
        "value": "123456",
        "is_secret": true
      }
    ],
    "verify_image": true,
    "termination_grace_period_seconds": 1,
    "endpoint_storage": "my-storage",
    "command": "null | 'string'",
    "arguments": "null | 'string'",
    "create_time": "2025-05-09T05:16:48.558Z",
    "last_updated": "2025-05-09T05:16:48.558Z",
    "dns_config": "text"
  }
}

Update an Application Version

patch

Update an application version with new specifications.

Authorizations
Path parameters
app_namestringRequired

The name of the application

version_namestringRequired

The name of the application version

Body
namestring · min: 1 · max: 64Optional

The Version Name

Example: v1
is_activebooleanOptional

If the Version is active currently in the system

docker_repositorystringOptional

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

Example: registry.edgegap.com
docker_imagestringOptional

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

Example: demo
docker_tagstringOptional

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

Example: 0.1.2
private_usernamestringOptional

The username to access the docker repository

Example: username
private_tokenstringOptional

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

Example: password
req_cpuinteger · min: 100Optional

Units of vCPU needed (1024 = 1vcpu)

Example: 256
req_memoryinteger · min: 100Optional

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

Example: 256
req_videointegerOptional

Units of GPU needed (1024= 1 GPU)

Example: 256
max_durationinteger | nullOptional

The Max duration of the game

Example: 30
use_telemetrybooleanOptional

Allow to inject ASA Variables

inject_context_envbooleanOptional

(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_activebooleanOptional

ACL Protection is active

force_cachebooleanOptional

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

cache_min_hourinteger · max: 23Optional

Start of the preferred interval for caching your container

cache_max_hourinteger · max: 23Optional

End of the preferred interval for caching your container

time_to_deployinteger · min: 15Optional

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

Example: 15
enable_all_locationsbooleanOptional

(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_secondsinteger · min: 5 · max: 3600Optional

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

verify_imagebooleanOptional

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

Default: false
endpoint_storagestringOptional

The name of the endpoint storage to link

Example: my-storage
commandstring | nullOptional

Entrypoint/Command override of your Container

Example: null | 'string'
argumentsstring | nullOptional

The Arguments to pass to the command

Example: null | 'string'
dns_configstringOptional

The name of the DNS config to link

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
424
Failed Dependency
application/json
500
Internal Server Error
application/json
patch
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: 893

{
  "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": true,
      "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": true,
  "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": true,
        "name": "Game port"
      }
    ],
    "probe": {
      "optimal_ping": 60,
      "rejected_ping": 180
    },
    "envs": [
      {
        "key": "API_KEY",
        "value": "123456",
        "is_secret": true
      }
    ],
    "verify_image": true,
    "termination_grace_period_seconds": 1,
    "endpoint_storage": "my-storage",
    "command": "null | 'string'",
    "arguments": "null | 'string'",
    "create_time": "2025-05-09T05:16:48.558Z",
    "last_updated": "2025-05-09T05:16:48.558Z",
    "dns_config": "text"
  }
}

Create a New Endpoint Storage

post

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

Authorizations
Body
namestringRequired

Name of the Endpoint Storage

Example: my-s3-bucket
access_key_idstringRequired

Your access key ID to connect to your S3 Bucket.

Example: my-access-key-id
endpointstringRequired

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

Example: https://us-east-1.your-s3-provider.com
bucketstringRequired

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

Example: my-bucket
secret_access_keystringRequired

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

Example: my-secret-access
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
500
Internal Server Error
application/json
post
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

patch

Update an Endpoint Storage with new specifications.

Authorizations
Path parameters
endpoint_nameanyRequired
Body
namestringOptional

Name of the Endpoint Storage

Example: my-s3-endpoint
access_key_idstringOptional

Your access key ID to connect to your S3 Bucket.

Example: my-access-key-id
endpointstringOptional

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

Example: https://us-east-1.your-s3-provider.com
bucketstringOptional

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

Example: my-bucket
secret_access_keystringOptional

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

Example: my-secret-access
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
patch
PATCH /v1/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 New Pull Profile

post

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
Path parameters
endpoint_nameanyRequired
Body
namestringRequired

Name of the pull profile

Example: pull_profile_name
sourcestringRequired

Source in the S3 bucket to fetch from

Example: /my-bucket/config.cfg
source_typestring · enumRequired

If the source is a File or a Directory

Example: FilePossible values:
destinationstringRequired

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.

Example: /usr/share/configs
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
post
POST /v1/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

patch

Update a pull profile with new specifications.

Authorizations
Path parameters
endpoint_nameanyRequired
pull_profile_nameanyRequired
Body
namestringOptional

Name of the pull profile

Example: pull_profile_name
sourcestringOptional

Source in the S3 bucket to fetch from

Example: /my-bucket/config.cfg
source_typestring · enumOptional

If the source is a File or a Directory

Example: FilePossible values:
destinationstringOptional

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.

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