> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/docs.edgegap.com-ko/docs/api/versioning.md).

# 버전 관리

## 📦 앱 및 버전

## Create App

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

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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},"req_cpu":{"type":"integer","minimum":100,"description":"Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU)."},"req_memory":{"type":"integer","description":"Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB).","minimum":100},"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.06.17"},"tags":[{"name":"Applications"},{"name":"Versioning"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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":{}}}}}}}
```

## 💾 컨테이너 레지스트리

## List Image Tags

> List all tags of a specific docker image.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Versioning"},{"name":"Container Registry"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Versioning"},{"name":"Container Registry"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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.06.17"},"tags":[{"name":"Versioning"},{"name":"Container Registry"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"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"]}}}}}}}}}
```
