# Versioning

## 📦 Apps and Versions

## Create App

> Create an app to group versions and/or split environments.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app":{"post":{"summary":"Create App","deprecated":false,"description":"Create an app to group versions and/or split environments.","operationId":"application-create","tags":["Applications","Versioning"],"parameters":[{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Custom identifier.","minLength":3,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"image":{"type":"string","description":"Image base64 string."}},"required":["image","is_active","name"]}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Custom name.","minLength":3,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"image":{"type":"string","description":"Image base64 string."},"create_time":{"type":"string","description":"Date of creation."},"last_updated":{"type":"string","description":"Date of last update."}},"required":["name","is_active","image","create_time","last_updated"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Get App

> Get app details.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Application":{"required":["create_time","is_active","last_updated","name","image"],"properties":{"name":{"type":"string","description":"Custom name.","minLength":3,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"image":{"type":"string","description":"Image base64 string."},"create_time":{"type":"string","description":"Date of creation."},"last_updated":{"type":"string","description":"Date of last update."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}":{"get":{"summary":"Get App","deprecated":false,"description":"Get app details.","operationId":"application-get","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Application"}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## List Apps

> List apps under your organization.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Application":{"required":["create_time","is_active","last_updated","name","image"],"properties":{"name":{"type":"string","description":"Custom name.","minLength":3,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"image":{"type":"string","description":"Image base64 string."},"create_time":{"type":"string","description":"Date of creation."},"last_updated":{"type":"string","description":"Date of last update."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/apps":{"get":{"summary":"List Apps","deprecated":false,"description":"List apps under your organization.","operationId":"application-list","tags":["Applications","Versioning"],"parameters":[{"name":"page","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"applications":{"type":"array","items":{"$ref":"#/components/schemas/Application"}},"total_count":{"type":"integer","minimum":0},"pagination":{"type":"object","properties":{"number":{"type":"integer","minimum":0},"next_page_number":{"type":"integer","minimum":1,"nullable":true},"previous_page_number":{"type":"integer","minimum":1,"nullable":true},"paginator":{"type":"object","properties":{"num_pages":{"type":"integer","minimum":1}},"required":["num_pages"]},"has_next":{"type":"boolean","default":true},"has_previous":{"type":"boolean","default":false}},"required":["number","next_page_number","previous_page_number","paginator","has_next","has_previous"]}},"required":["total_count","pagination"]}}},"headers":{}},"400":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"403":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Update App

> Modify existing app.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Application":{"required":["create_time","is_active","last_updated","name","image"],"properties":{"name":{"type":"string","description":"Custom name.","minLength":3,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"image":{"type":"string","description":"Image base64 string."},"create_time":{"type":"string","description":"Date of creation."},"last_updated":{"type":"string","description":"Date of last update."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}":{"patch":{"summary":"Update App","deprecated":false,"description":"Modify existing app.","operationId":"application-update","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Application name","minLength":3,"maxLength":64},"is_active":{"type":"boolean","description":"If the application can be deployed","default":true},"image":{"type":"string","description":"Image base64 string"}}}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Application"}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Delete App

> Delete an app and its versions.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}":{"delete":{"summary":"Delete App","deprecated":false,"description":"Delete an app and its versions.","operationId":"application-delete","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Create App Version

> Create an app version.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"AppVersionPort":{"required":["port","protocol"],"properties":{"port":{"type":"integer","description":"Internal listener port where deployment expects connections.","minimum":0,"maximum":59999},"protocol":{"type":"string","description":"Selected networking protocol."},"to_check":{"type":"boolean","description":"Enable or disable deployment port readiness check.","default":true},"tls_upgrade":{"type":"boolean","description":"Enable or disable TLS proxy, only available with ports WS and HTTP.","default":false},"name":{"type":"string","description":"Custom port identifier."}},"type":"object"},"InjectedEnvVariable":{"required":["key","value"],"properties":{"key":{"type":"string","description":"Custom key used to access the injected variable within the deployment. Automatically sanitized."},"value":{"type":"string","description":"Custom value to inject in your deployment, up to 4 KB."},"is_hidden":{"type":"boolean","description":"Enable encryption at rest to prevent reading the value with API.","default":false}},"type":"object"},"AppVersion":{"required":["docker_image","docker_repository","docker_tag","name","req_cpu","req_memory"],"properties":{"name":{"type":"string","description":"Custom version identifier, often a timestamp or a build ID.","minLength":1,"maxLength":64},"create_time":{"type":"string","description":"Date of creation.","format":"date-time"},"last_updated":{"type":"string","description":"Date of last update.","format":"date-time"},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"req_cpu":{"type":"integer","description":"Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU).","minimum":100},"req_memory":{"type":"integer","description":"Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB).","minimum":100},"req_video":{"type":"integer","description":"Amount of GPU units assigned to deployments. (1024 = 1 GPU)","minimum":0},"docker_repository":{"type":"string","description":"Docker registry URL, ‘docker_repository’ is named incorrectly."},"private_username":{"type":"string","description":"Docker Registry username. Not your Edgegap credentials."},"private_token":{"type":"string","description":"Docker Registry token/password. Not your Edgegap credentials."},"docker_image":{"type":"string","description":"Namespaced docker image ID."},"docker_tag":{"type":"string","description":"Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags."},"verify_image":{"type":"boolean","description":"Enable to verify we can pull your docker image using provided parameters and credentials.","default":false},"force_cache":{"type":"boolean","description":"Enable faster deployments with global image preloading. Recommended for live games."},"caching_percent":{"type":"number","description":"Current global caching percentage on scale 0-1. Values above 0.8 (80%) are considered a good coverage level."},"time_to_deploy":{"type":"integer","description":"Image downloads exceeding this period (seconds) will timeout and be marked as Error.","minimum":15,"default":10},"max_duration":{"type":"integer","description":"Maximum allowed uptime minutes of deployments before automatically stopped.","default":1440,"minimum":-1,"maximum":1440},"restart_policy":{"type":"string","description":"Define policy for handling server process exit codes. Set to `never` to automatically stop deployments when your server process exits.","enum":["always","never","on_failure"],"default":"always"},"termination_grace_period_seconds":{"type":"integer","description":"Termination grace period in seconds after sending the SIGTERM signal to your deployment. Allows graceful shutdown and post-processing before the container stops.","minimum":5,"maximum":3600},"will_deploy_in_mainland_china":{"type":"boolean","description":"Enable China Gateway. Disable to deploy worldwide except China.","default":false},"dns_config":{"type":"string","description":"DNS configuration identifier for custom deployment domains."},"ports":{"type":"array","items":{"$ref":"#/components/schemas/AppVersionPort"},"description":"Port mapping exposing server listeners to internet."},"envs":{"type":"array","description":"Inject variables to pass parameters to your game server.","items":{"$ref":"#/components/schemas/InjectedEnvVariable"}},"endpoint_storage":{"type":"string","description":"Endpoint storage identifier to upload deployment logs, overrides app version storage if specified."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}/version":{"post":{"summary":"Create App Version","deprecated":false,"description":"Create an app version.","operationId":"app-version-create","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"","required":true,"schema":{"type":"string","minLength":3,"maxLength":64}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Custom version identifier, often a timestamp or a build ID.","minLength":1,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"req_cpu":{"type":"integer","description":"Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU).","minimum":100},"req_memory":{"type":"integer","description":"Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB).","minimum":100},"req_video":{"type":"integer","description":"Amount of GPU units assigned to deployments. (1024 = 1 GPU)","minimum":0},"docker_repository":{"type":"string","description":"Docker registry URL, ‘docker_repository’ is named incorrectly."},"private_username":{"type":"string","description":"Docker Registry username. Not your Edgegap credentials."},"private_token":{"type":"string","description":"Docker Registry token/password. Not your Edgegap credentials."},"docker_image":{"type":"string","description":"Namespaced docker image ID."},"docker_tag":{"type":"string","description":"Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags."},"verify_image":{"type":"boolean","description":"Enable to verify we can pull your docker image using provided parameters and credentials.","default":false},"force_cache":{"type":"boolean","description":"Enable faster deployments with global image preloading. Recommended for live games."},"time_to_deploy":{"type":"integer","description":"Image downloads exceeding this period (seconds) will timeout and be marked as Error.","minimum":15,"default":10},"max_duration":{"type":"integer","description":"Maximum allowed uptime minutes of deployments before automatically stopped.","default":1440,"minimum":-1,"maximum":1440},"restart_policy":{"type":"string","enum":["always","never","on_failure"],"default":"always","description":"Define policy for handling server process exit codes. Set to `never` to automatically stop deployments when your server process exits."},"termination_grace_period_seconds":{"type":"integer","description":"Termination grace period in seconds after sending the SIGTERM signal to your deployment. Allows graceful shutdown and post-processing before the container stops.","minimum":5,"maximum":3600},"will_deploy_in_mainland_china":{"type":"boolean","description":"Enable China Gateway. Disable to deploy worldwide except China.","default":false},"dns_config":{"type":"string","description":"DNS configuration identifier for custom deployment domains."},"ports":{"type":"array","items":{"$ref":"#/components/schemas/AppVersionPort"},"description":"Port mapping exposing server listeners to internet."},"envs":{"type":"array","description":"Inject variables to pass parameters to your game server.","items":{"$ref":"#/components/schemas/InjectedEnvVariable"}},"endpoint_storage":{"type":"string","description":"Endpoint storage identifier to upload deployment logs, overrides app version storage if specified."}},"required":["docker_image","docker_repository","docker_tag","name","req_cpu","req_memory"]}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"If the creation happened correctly","default":true},"version":{"$ref":"#/components/schemas/AppVersion"}},"required":["success","version"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"424":{"description":"Failed Dependency","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Get App Version

> Get version details.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"AppVersion":{"required":["docker_image","docker_repository","docker_tag","name","req_cpu","req_memory"],"properties":{"name":{"type":"string","description":"Custom version identifier, often a timestamp or a build ID.","minLength":1,"maxLength":64},"create_time":{"type":"string","description":"Date of creation.","format":"date-time"},"last_updated":{"type":"string","description":"Date of last update.","format":"date-time"},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"req_cpu":{"type":"integer","description":"Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU).","minimum":100},"req_memory":{"type":"integer","description":"Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB).","minimum":100},"req_video":{"type":"integer","description":"Amount of GPU units assigned to deployments. (1024 = 1 GPU)","minimum":0},"docker_repository":{"type":"string","description":"Docker registry URL, ‘docker_repository’ is named incorrectly."},"private_username":{"type":"string","description":"Docker Registry username. Not your Edgegap credentials."},"private_token":{"type":"string","description":"Docker Registry token/password. Not your Edgegap credentials."},"docker_image":{"type":"string","description":"Namespaced docker image ID."},"docker_tag":{"type":"string","description":"Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags."},"verify_image":{"type":"boolean","description":"Enable to verify we can pull your docker image using provided parameters and credentials.","default":false},"force_cache":{"type":"boolean","description":"Enable faster deployments with global image preloading. Recommended for live games."},"caching_percent":{"type":"number","description":"Current global caching percentage on scale 0-1. Values above 0.8 (80%) are considered a good coverage level."},"time_to_deploy":{"type":"integer","description":"Image downloads exceeding this period (seconds) will timeout and be marked as Error.","minimum":15,"default":10},"max_duration":{"type":"integer","description":"Maximum allowed uptime minutes of deployments before automatically stopped.","default":1440,"minimum":-1,"maximum":1440},"restart_policy":{"type":"string","description":"Define policy for handling server process exit codes. Set to `never` to automatically stop deployments when your server process exits.","enum":["always","never","on_failure"],"default":"always"},"termination_grace_period_seconds":{"type":"integer","description":"Termination grace period in seconds after sending the SIGTERM signal to your deployment. Allows graceful shutdown and post-processing before the container stops.","minimum":5,"maximum":3600},"will_deploy_in_mainland_china":{"type":"boolean","description":"Enable China Gateway. Disable to deploy worldwide except China.","default":false},"dns_config":{"type":"string","description":"DNS configuration identifier for custom deployment domains."},"ports":{"type":"array","items":{"$ref":"#/components/schemas/AppVersionPort"},"description":"Port mapping exposing server listeners to internet."},"envs":{"type":"array","description":"Inject variables to pass parameters to your game server.","items":{"$ref":"#/components/schemas/InjectedEnvVariable"}},"endpoint_storage":{"type":"string","description":"Endpoint storage identifier to upload deployment logs, overrides app version storage if specified."}},"type":"object"},"AppVersionPort":{"required":["port","protocol"],"properties":{"port":{"type":"integer","description":"Internal listener port where deployment expects connections.","minimum":0,"maximum":59999},"protocol":{"type":"string","description":"Selected networking protocol."},"to_check":{"type":"boolean","description":"Enable or disable deployment port readiness check.","default":true},"tls_upgrade":{"type":"boolean","description":"Enable or disable TLS proxy, only available with ports WS and HTTP.","default":false},"name":{"type":"string","description":"Custom port identifier."}},"type":"object"},"InjectedEnvVariable":{"required":["key","value"],"properties":{"key":{"type":"string","description":"Custom key used to access the injected variable within the deployment. Automatically sanitized."},"value":{"type":"string","description":"Custom value to inject in your deployment, up to 4 KB."},"is_hidden":{"type":"boolean","description":"Enable encryption at rest to prevent reading the value with API.","default":false}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}/version/{version_name}":{"get":{"summary":"Get App Version","deprecated":false,"description":"Get version details.","operationId":"app-version-get","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"The name of the application","required":true,"schema":{"type":"string"}},{"name":"version_name","in":"path","description":"The name of the application version","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppVersion"}}},"headers":{}},"400":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## List App Versions

> List versions under app.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"AppVersion":{"required":["docker_image","docker_repository","docker_tag","name","req_cpu","req_memory"],"properties":{"name":{"type":"string","description":"Custom version identifier, often a timestamp or a build ID.","minLength":1,"maxLength":64},"create_time":{"type":"string","description":"Date of creation.","format":"date-time"},"last_updated":{"type":"string","description":"Date of last update.","format":"date-time"},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"req_cpu":{"type":"integer","description":"Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU).","minimum":100},"req_memory":{"type":"integer","description":"Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB).","minimum":100},"req_video":{"type":"integer","description":"Amount of GPU units assigned to deployments. (1024 = 1 GPU)","minimum":0},"docker_repository":{"type":"string","description":"Docker registry URL, ‘docker_repository’ is named incorrectly."},"private_username":{"type":"string","description":"Docker Registry username. Not your Edgegap credentials."},"private_token":{"type":"string","description":"Docker Registry token/password. Not your Edgegap credentials."},"docker_image":{"type":"string","description":"Namespaced docker image ID."},"docker_tag":{"type":"string","description":"Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags."},"verify_image":{"type":"boolean","description":"Enable to verify we can pull your docker image using provided parameters and credentials.","default":false},"force_cache":{"type":"boolean","description":"Enable faster deployments with global image preloading. Recommended for live games."},"caching_percent":{"type":"number","description":"Current global caching percentage on scale 0-1. Values above 0.8 (80%) are considered a good coverage level."},"time_to_deploy":{"type":"integer","description":"Image downloads exceeding this period (seconds) will timeout and be marked as Error.","minimum":15,"default":10},"max_duration":{"type":"integer","description":"Maximum allowed uptime minutes of deployments before automatically stopped.","default":1440,"minimum":-1,"maximum":1440},"restart_policy":{"type":"string","description":"Define policy for handling server process exit codes. Set to `never` to automatically stop deployments when your server process exits.","enum":["always","never","on_failure"],"default":"always"},"termination_grace_period_seconds":{"type":"integer","description":"Termination grace period in seconds after sending the SIGTERM signal to your deployment. Allows graceful shutdown and post-processing before the container stops.","minimum":5,"maximum":3600},"will_deploy_in_mainland_china":{"type":"boolean","description":"Enable China Gateway. Disable to deploy worldwide except China.","default":false},"dns_config":{"type":"string","description":"DNS configuration identifier for custom deployment domains."},"ports":{"type":"array","items":{"$ref":"#/components/schemas/AppVersionPort"},"description":"Port mapping exposing server listeners to internet."},"envs":{"type":"array","description":"Inject variables to pass parameters to your game server.","items":{"$ref":"#/components/schemas/InjectedEnvVariable"}},"endpoint_storage":{"type":"string","description":"Endpoint storage identifier to upload deployment logs, overrides app version storage if specified."}},"type":"object"},"AppVersionPort":{"required":["port","protocol"],"properties":{"port":{"type":"integer","description":"Internal listener port where deployment expects connections.","minimum":0,"maximum":59999},"protocol":{"type":"string","description":"Selected networking protocol."},"to_check":{"type":"boolean","description":"Enable or disable deployment port readiness check.","default":true},"tls_upgrade":{"type":"boolean","description":"Enable or disable TLS proxy, only available with ports WS and HTTP.","default":false},"name":{"type":"string","description":"Custom port identifier."}},"type":"object"},"InjectedEnvVariable":{"required":["key","value"],"properties":{"key":{"type":"string","description":"Custom key used to access the injected variable within the deployment. Automatically sanitized."},"value":{"type":"string","description":"Custom value to inject in your deployment, up to 4 KB."},"is_hidden":{"type":"boolean","description":"Enable encryption at rest to prevent reading the value with API.","default":false}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}/versions":{"get":{"summary":"List App Versions","deprecated":false,"description":"List versions under app.","operationId":"app-version-list","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"The name of the application","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/AppVersion"}},"total_count":{"type":"integer","minimum":0},"pagination":{"type":"object","properties":{"number":{"type":"integer","minimum":0},"next_page_number":{"type":"integer","minimum":1,"nullable":true},"previous_page_number":{"type":"integer","minimum":1,"nullable":true},"paginator":{"type":"object","properties":{"num_pages":{"type":"integer","minimum":1}},"required":["num_pages"]},"has_next":{"type":"boolean","default":true},"has_previous":{"type":"boolean","default":false}},"required":["number","next_page_number","previous_page_number","paginator","has_next","has_previous"]}},"required":["total_count","pagination"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Update App Version

> Modify existing app version.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"AppVersionPort":{"required":["port","protocol"],"properties":{"port":{"type":"integer","description":"Internal listener port where deployment expects connections.","minimum":0,"maximum":59999},"protocol":{"type":"string","description":"Selected networking protocol."},"to_check":{"type":"boolean","description":"Enable or disable deployment port readiness check.","default":true},"tls_upgrade":{"type":"boolean","description":"Enable or disable TLS proxy, only available with ports WS and HTTP.","default":false},"name":{"type":"string","description":"Custom port identifier."}},"type":"object"},"InjectedEnvVariable":{"required":["key","value"],"properties":{"key":{"type":"string","description":"Custom key used to access the injected variable within the deployment. Automatically sanitized."},"value":{"type":"string","description":"Custom value to inject in your deployment, up to 4 KB."},"is_hidden":{"type":"boolean","description":"Enable encryption at rest to prevent reading the value with API.","default":false}},"type":"object"},"AppVersion":{"required":["docker_image","docker_repository","docker_tag","name","req_cpu","req_memory"],"properties":{"name":{"type":"string","description":"Custom version identifier, often a timestamp or a build ID.","minLength":1,"maxLength":64},"create_time":{"type":"string","description":"Date of creation.","format":"date-time"},"last_updated":{"type":"string","description":"Date of last update.","format":"date-time"},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"req_cpu":{"type":"integer","description":"Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU).","minimum":100},"req_memory":{"type":"integer","description":"Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB).","minimum":100},"req_video":{"type":"integer","description":"Amount of GPU units assigned to deployments. (1024 = 1 GPU)","minimum":0},"docker_repository":{"type":"string","description":"Docker registry URL, ‘docker_repository’ is named incorrectly."},"private_username":{"type":"string","description":"Docker Registry username. Not your Edgegap credentials."},"private_token":{"type":"string","description":"Docker Registry token/password. Not your Edgegap credentials."},"docker_image":{"type":"string","description":"Namespaced docker image ID."},"docker_tag":{"type":"string","description":"Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags."},"verify_image":{"type":"boolean","description":"Enable to verify we can pull your docker image using provided parameters and credentials.","default":false},"force_cache":{"type":"boolean","description":"Enable faster deployments with global image preloading. Recommended for live games."},"caching_percent":{"type":"number","description":"Current global caching percentage on scale 0-1. Values above 0.8 (80%) are considered a good coverage level."},"time_to_deploy":{"type":"integer","description":"Image downloads exceeding this period (seconds) will timeout and be marked as Error.","minimum":15,"default":10},"max_duration":{"type":"integer","description":"Maximum allowed uptime minutes of deployments before automatically stopped.","default":1440,"minimum":-1,"maximum":1440},"restart_policy":{"type":"string","description":"Define policy for handling server process exit codes. Set to `never` to automatically stop deployments when your server process exits.","enum":["always","never","on_failure"],"default":"always"},"termination_grace_period_seconds":{"type":"integer","description":"Termination grace period in seconds after sending the SIGTERM signal to your deployment. Allows graceful shutdown and post-processing before the container stops.","minimum":5,"maximum":3600},"will_deploy_in_mainland_china":{"type":"boolean","description":"Enable China Gateway. Disable to deploy worldwide except China.","default":false},"dns_config":{"type":"string","description":"DNS configuration identifier for custom deployment domains."},"ports":{"type":"array","items":{"$ref":"#/components/schemas/AppVersionPort"},"description":"Port mapping exposing server listeners to internet."},"envs":{"type":"array","description":"Inject variables to pass parameters to your game server.","items":{"$ref":"#/components/schemas/InjectedEnvVariable"}},"endpoint_storage":{"type":"string","description":"Endpoint storage identifier to upload deployment logs, overrides app version storage if specified."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}/version/{version_name}":{"patch":{"summary":"Update App Version","deprecated":false,"description":"Modify existing app version.","operationId":"app-version-update","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"The name of the application","required":true,"schema":{"type":"string"}},{"name":"version_name","in":"path","description":"The name of the application version","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Custom version identifier, often a timestamp or a build ID.","minLength":1,"maxLength":64},"is_active":{"type":"boolean","description":"Enable or disable deployments.","default":true},"docker_repository":{"type":"string","description":"Docker registry URL, ‘docker_repository’ is named incorrectly."},"private_username":{"type":"string","description":"Docker Registry username. Not your Edgegap credentials."},"private_token":{"type":"string","description":"Docker Registry token/password. Not your Edgegap credentials."},"docker_image":{"type":"string","description":"Namespaced docker image ID."},"docker_tag":{"type":"string","description":"Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags."},"verify_image":{"type":"boolean","description":"Enable to verify we can pull your docker image using provided parameters and credentials.","default":false},"force_cache":{"type":"boolean","description":"Enable faster deployments with global image preloading. Recommended for live games."},"time_to_deploy":{"type":"integer","description":"Image downloads exceeding this period (seconds) will timeout and be marked as Error.","minimum":15,"default":10},"max_duration":{"type":"integer","description":"Maximum allowed uptime minutes of deployments before automatically stopped.","default":1440,"minimum":-1,"maximum":1440},"restart_policy":{"type":"string","description":"Define policy for handling server process exit codes. Set to `never` to automatically stop deployments when your server process exits.","enum":["always","never","on_failure"],"default":"always"},"termination_grace_period_seconds":{"type":"integer","description":"Termination grace period in seconds after sending the SIGTERM signal to your deployment. Allows graceful shutdown and post-processing before the container stops.","minimum":5,"maximum":3600},"will_deploy_in_mainland_china":{"type":"boolean","description":"Enable China Gateway. Disable to deploy worldwide except China.","default":false},"dns_config":{"type":"string","description":"DNS configuration identifier for custom deployment domains."},"ports":{"type":"array","items":{"$ref":"#/components/schemas/AppVersionPort"},"description":"Port mapping exposing server listeners to internet."},"envs":{"type":"array","description":"Inject variables to pass parameters to your game server.","items":{"$ref":"#/components/schemas/InjectedEnvVariable"}},"endpoint_storage":{"type":"string","description":"Endpoint storage identifier to upload deployment logs, overrides app version storage if specified."}}}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"version":{"$ref":"#/components/schemas/AppVersion"}},"required":["success"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"424":{"description":"Failed Dependency","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Delete App Version

> Delete an app version.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/app/{app_name}/version/{version_name}":{"delete":{"summary":"Delete App Version","deprecated":false,"description":"Delete an app version.","operationId":"app-version-delete","tags":["Applications","Versioning"],"parameters":[{"name":"app_name","in":"path","description":"The name of the application","required":true,"schema":{"type":"string"}},{"name":"version_name","in":"path","description":"The name of the application version","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## 💾 Container Registry

## List Image Tags

> List all tags of a specific docker image.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Versioning"},{"name":"Container Registry"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/container-registry/images/{image_name}/tags":{"get":{"summary":"List Image Tags","deprecated":false,"description":"List all tags of a specific docker image.","operationId":"registry-image-tag-list","tags":["Container Registry","Versioning"],"parameters":[{"name":"image_name","in":"path","description":"The name of the image","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string","description":"Docker tag ID."},"last_push_at":{"type":"string","description":"Date of last push.","format":"date-time"},"artifact":{"description":"Build artifact linked to the tag.","allOf":[{"type":"object","properties":{"artifact_deleted":{"type":"boolean","description":"Indicates if the associated artifact has been deleted.","default":false},"remaining_tags":{"type":"array","description":"Complete list of tags associated with the artifact.","items":{"type":"string"}},"image_hash":{"type":"string","description":"Unique hash ID of the artifact."},"size_mb":{"type":"number","description":"Size of the artifact in MB."}},"required":["artifact_deleted","image_hash","remaining_tags","size_mb"]}]}},"required":["artifact","last_push_at","tag"]}}}}}},"headers":{}},"400":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Delete Image Tag

> Delete a single tag and the associated image in the registry.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Versioning"},{"name":"Container Registry"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/container-registry/images/{image_name}/tags/{tag_name}":{"delete":{"summary":"Delete Image Tag","deprecated":false,"description":"Delete a single tag and the associated image in the registry.","operationId":"registry-image-tag-delete","tags":["Container Registry","Versioning"],"parameters":[{"name":"image_name","in":"path","description":"Docker image name.","required":true,"schema":{"type":"string"}},{"name":"tag_name","in":"path","description":"Docker tag ID.","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"artifact":{"type":"object","properties":{"artifact_deleted":{"type":"boolean","description":"Indicates if the associated artifact has been deleted.","default":true},"size_mb":{"type":"number","description":"Size of the artifact in MB."},"remaining_tags":{"type":"array","description":"Complete list of tags associated with the artifact.","items":{"type":"string"}},"image_hash":{"type":"string","description":"Unique hash ID of the artifact."}},"description":"Build artifact linked to the tag."},"deleted_tag":{"type":"string","description":"Deleted docker tag ID."}}}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Delete Image Tags

> Delete multiple tags of a registry image. Returns 207 Multi-Status with result for each tag separately. Caution is advised.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Versioning"},{"name":"Container Registry"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}}},"paths":{"/v1/container-registry/images/{image_name}/tags/bulk-delete":{"post":{"summary":"Delete Image Tags","deprecated":false,"description":"Delete multiple tags of a registry image. Returns 207 Multi-Status with result for each tag separately. Caution is advised.","operationId":"registry-image-tag-bulk-delete","tags":["Container Registry","Versioning"],"parameters":[{"name":"image_name","in":"path","description":"The name of the image","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Tags to delete."}},"required":["tags"]}}},"required":true},"responses":{"207":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string","description":"Tag from your request."},"status":{"type":"integer","enum":[204,404,500],"description":"HTTP status code indicating operation result."},"message":{"type":"string","description":"Additional details."}}},"description":"Each tag receives a separate result."},"summary":{"type":"object","properties":{"total":{"type":"integer","minimum":1,"description":"Total amount of processed tags."},"success":{"type":"integer","minimum":0,"description":"Amount of successfully deleted tags."},"failed":{"type":"integer","minimum":0,"description":"Amount of tags which could not be deleted."}},"required":["total","success","failed"]}},"required":["results","summary"]}}},"headers":{}},"400":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}}},"401":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}}},"500":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.edgegap.com/docs/api/versioning.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
