openapi: 3.0.1 info: title: Edgegap v1 API description: >-

Introduction

Learn more about Edgegap API through the official documentation. If you have any questions or feature suggestions, contact us on Discord.

version: 2026.04.24 termsOfService: https://app.edgegap.com/terms-and-conditions contact: name: Contact email: info@edgegap.com url: https://edgegap.com tags: - name: Applications - name: Versioning - name: Container Registry - name: Tags - name: Deployments - name: Dedicated Servers - name: Integration - name: Relays - name: Endpoint Storage 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: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: name: type: string description: Custom identifier. minLength: 3 maxLength: 64 example: my-game-server is_active: type: boolean description: Enable or disable deployments. default: true example: true image: type: string description: Image base64 string. example: iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg== required: - image - is_active - name examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: name: type: string description: Custom name. minLength: 3 maxLength: 64 example: my-game-server is_active: type: boolean description: Enable or disable deployments. default: true example: true image: type: string description: Image base64 string. example: iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg== create_time: type: string description: Date of creation. example: '2026-04-22 12:00:46.444265' last_updated: type: string description: Date of last update. example: '2026-04-22 12:00:46.444265' 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: {} security: - apiKey: [] /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 example: my-game-server schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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: {} security: - apiKey: [] 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 example: my-game-server schema: type: string - name: Accept in: header description: '' required: false example: '*/*' schema: type: string - name: Content-Type in: header description: '' required: false example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: name: type: string description: Application name minLength: 3 maxLength: 64 example: my-game-server is_active: type: boolean description: If the application can be deployed default: true example: true image: type: string description: Image base64 string example: iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg== examples: {} 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: {} security: - apiKey: [] 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 example: my-game-server schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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: {} security: - apiKey: [] /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: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} security: - apiKey: [] /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 example: my-game-server schema: type: string minLength: 3 maxLength: 64 example: my-game-server - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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 example: 2024.01.30-16.23.00-UTC is_active: type: boolean description: Enable or disable deployments. default: true example: true req_cpu: type: integer description: >- Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU). minimum: 100 example: 1536 req_memory: type: integer description: >- Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB). minimum: 100 example: 3072 req_video: type: integer description: Amount of GPU units assigned to deployments. (1024 = 1 GPU) minimum: 0 example: 0 docker_repository: type: string description: >- Docker registry URL, ‘docker_repository’ is named incorrectly. example: registry.edgegap.com private_username: type: string description: Docker Registry username. Not your Edgegap credentials. example: robot$my-org-cv2l3w3vy6fg+app-version-pull private_token: type: string description: >- Docker Registry token/password. Not your Edgegap credentials. example: ghca3dz3foAxXf2tu2xjExtXrBOMydfC docker_image: type: string description: Namespaced docker image ID. example: my-org-cv2l3w3vy6fg/my-game-server docker_tag: type: string description: >- Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags. example: 2024.01.30-16.23.00-UTC verify_image: type: boolean description: >- Enable to verify we can pull your docker image using provided parameters and credentials. default: false example: true force_cache: type: boolean description: >- Enable faster deployments with global image preloading. Recommended for live games. example: true time_to_deploy: type: integer description: >- Image downloads exceeding this period (seconds) will timeout and be marked as Error. minimum: 15 default: 10 example: 10 max_duration: type: integer description: >- Maximum allowed uptime minutes of deployments before automatically stopped. default: 1440 minimum: -1 maximum: 1440 example: 1440 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 example: 5 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. example: my-dns-config 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. example: my-storage required: - docker_image - docker_repository - docker_tag - name - req_cpu - req_memory example: name: 2024.01.30-16.23.00-UTC req_cpu: 1536 req_memory: 3072 docker_repository: registry.edgegap.com private_username: robot$my-org-cv2l3w3vy6fg+app-version-pull private_token: ghca3dz3foAxXf2tu2xjExtXrBOMydfC docker_image: my-org-cv2l3w3vy6fg/my-game-server docker_tag: 2024.01.30-16.23.00-UTC ports: - port: 7777 protocol: UDP to_check: false name: gameport 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/AppVersionPayload' required: - success - version example: success: true version: name: 2024.01.30-16.23.00-UTC create_time: '2026-04-22 20:30:52.283949' last_updated: '2026-04-22 20:30:52.283949' is_active: true req_cpu: 1536 req_memory: 3072 docker_repository: docker.io private_username: robot$my-org-cv2l3w3vy6fg+app-version-pull private_token: ghca3dz3foAxXf2tu2xjExtXrBOMydfC docker_image: my-org-cv2l3w3vy6fg/my-game-server docker_tag: 2024.01.30-16.23.00-UTC verify_image: false force_cache: false caching_percent: 0.8 time_to_deploy: 30 max_duration: 60 termination_grace_period_seconds: 5 ports: - port: 7777 protocol: UDP to_check: false tls_upgrade: false name: gameport envs: [] 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: {} security: - apiKey: [] /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 example: my-game-server schema: type: string - name: version_name in: path description: The name of the application version required: true example: 2024.01.30-16.23.00-UTC schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AppVersionPayload' 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: {} security: - apiKey: [] 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 example: my-game-server schema: type: string - name: version_name in: path description: The name of the application version required: true example: 2024.01.30-16.23.00-UTC schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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 example: 2024.01.30-16.23.00-UTC is_active: type: boolean description: Enable or disable deployments. default: true example: true docker_repository: type: string description: >- Docker registry URL, ‘docker_repository’ is named incorrectly. example: registry.edgegap.com private_username: type: string description: Docker Registry username. Not your Edgegap credentials. example: robot$my-org-cv2l3w3vy6fg+app-version-pull private_token: type: string description: >- Docker Registry token/password. Not your Edgegap credentials. example: ghca3dz3foAxXf2tu2xjExtXrBOMydfC docker_image: type: string description: Namespaced docker image ID. example: my-org-cv2l3w3vy6fg/my-game-server docker_tag: type: string description: >- Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags. example: 2024.01.30-16.23.00-UTC verify_image: type: boolean description: >- Enable to verify we can pull your docker image using provided parameters and credentials. default: false example: true force_cache: type: boolean description: >- Enable faster deployments with global image preloading. Recommended for live games. example: true time_to_deploy: type: integer description: >- Image downloads exceeding this period (seconds) will timeout and be marked as Error. minimum: 15 default: 10 example: 10 max_duration: type: integer description: >- Maximum allowed uptime minutes of deployments before automatically stopped. default: 1440 minimum: -1 maximum: 1440 example: 1440 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 example: 5 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. example: my-dns-config 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. example: my-storage example: time_to_deploy: 30 envs: - key: MAP_ID value: forest1 is_secret: false endpoint_storage: my-storage required: true responses: '200': description: Success content: application/json: schema: type: object properties: success: type: boolean version: $ref: '#/components/schemas/AppVersionPayload' 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: {} security: - apiKey: [] 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 example: my-game-server schema: type: string - name: version_name in: path description: The name of the application version required: true example: 2024.01.30-16.23.00-UTC schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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: {} security: - apiKey: [] /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 example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: versions: type: array items: $ref: '#/components/schemas/AppVersionPayload' total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} security: - apiKey: [] /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 example: my-org-cv2l3w3vy6fg/my-game-server schema: type: string example: my-org-cv2l3w3vy6fg/my-game-server - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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. example: 2024.01.30-16.23.00-UTC last_push_at: type: string description: Date of last push. format: date-time example: '2026-04-22 20:30:52.283949' 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 example: - tag1 - tag2 image_hash: type: string description: Unique hash ID of the artifact. example: sha256:1234567890abcdef size_mb: type: number description: Size of the artifact in MB. example: 512 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: {} security: - apiKey: [] /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 example: my-org-cv2l3w3vy6fg/my-game-server schema: type: string example: my-org-cv2l3w3vy6fg/my-game-server - name: tag_name in: path description: Docker tag ID. required: true example: 2024.01.30-16.23.00-UTC schema: type: string example: 2024.01.30-16.23.00-UTC - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json 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. example: 512 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. example: sha256:1234567890abcdef description: Build artifact linked to the tag. deleted_tag: type: string description: Deleted docker tag ID. example: 1.0.0 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: {} security: - apiKey: [] /v1/deployments/{deployment_id}/tags: post: summary: Create Tag deprecated: false description: >- Create a tag for the specified deployment. Does not modify injected variables in a running deployment. operationId: deployment-tag-create tags: - Tags - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: f68e011bfb01 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DeploymentTag' examples: {} required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DeploymentTagResponse' 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: {} security: - apiKey: [] get: summary: List Tags deprecated: false description: List tags from the specified deployment. operationId: deployment-tag-list tags: - Tags - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: f68e011bfb01 schema: type: string - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: tags: type: array items: $ref: '#/components/schemas/DeploymentTagResponse' total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} security: - apiKey: [] /v1/deployments/{deployment_id}/tags/{tag_name}: get: summary: Get Tag deprecated: false description: Get tag from the specified deployment. operationId: deployment-tag-get tags: - Tags - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: f68e011bfb01 schema: type: string - name: tag_name in: path description: '' required: true example: player-id-1234 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DeploymentTagResponse' 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: {} security: - apiKey: [] patch: summary: Update Tag deprecated: false description: >- Update a tag for the specified deployment. Does not modify injected variables. operationId: deployment-tag-update tags: - Tags - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: f68e011bfb01 schema: type: string - name: tag_name in: path description: '' required: true example: player-id-1234 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DeploymentTag' examples: {} required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DeploymentTagResponse' 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: {} security: - apiKey: [] delete: summary: Delete Tag deprecated: false description: Delete a tag for a deployment. Does not modify injected variables. operationId: deployment-tag-delete tags: - Tags - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: f68e011bfb01 schema: type: string - name: tag_name in: path description: '' required: true example: player-id-1234 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '204': description: No Content 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: {} security: - apiKey: [] /v1/status/{deployment_id}: get: summary: Get Deployment deprecated: false description: >- [Rate Limit: 20 req/s] Get the specified deployment status and information. operationId: deployment-get tags: - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: 61b1be8f54d9 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/V1DeploymentStatus' 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: '' content: application/json: schema: title: '' type: object properties: message: type: string description: A message depending of the request termination required: - message '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/deployments: get: summary: List Deployments deprecated: false description: >- [Rate Limit: 10 req/s] List all deployments, optionally filtered and sorted. operationId: deployment-list tags: - Deployments - Dedicated Servers parameters: - name: query in: query description: >- Query to filter the deployments. [See filtering guide.](https://docs.edgegap.com/learn/orchestration/deployments#filter-deployments) For client integrations, [consider Server Browser instead](https://docs.edgegap.com/learn/server-browser). required: false example: '{"filters":[{"field":"status","operator":"eq","value":"ready"}]}' schema: type: string - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: data: type: array description: List of active deployments items: type: object properties: request_id: type: string description: >- ID of your deployment, also referred to as request ID. example: 2d35052ec4e9 fqdn: type: string description: FQDN (URL) to connect to the deployment. example: abc123.test.edgegap.com ready: type: boolean description: True if deployment is Ready for connections. example: true start_time: type: string description: Timestamp of deployment becoming Ready. example: '2026-04-22 12:00:46.444265' public_ip: type: string description: Public IP address of the host. example: 100.10.0.85 ports: type: object properties: gameport: $ref: '#/components/schemas/DeploymentPort' description: Port mapping exposing server listeners to internet. tags: type: array description: >- List of tags to mark your deployments for easy filtering. items: type: string example: production required: - fqdn - public_ip - ready - request_id - start_time message: type: array description: Additional information related to your query. items: type: string example: - '' total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/stop/{deployment_id}: delete: summary: Stop Deployment deprecated: false description: >- Request to stop a deployment from your custom backend, triggering a graceful shutdown (SIGTERM). Returns 200 or 202 if deployment status is not READY and not ERROR, and stops deployment once either of these statuses is reached - [see Deployment Lifecycle](https://docs.edgegap.com/learn/advanced-features/deployments#deployment-lifecycle). operationId: deployment-delete tags: - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: 61b1be8f54d9 schema: type: string - name: container_log_storage in: query description: >- Enable or disable previously configured log storage. Alternatively, provide endpoint storage ID to override or set storage to upload logs. required: false example: my-storage schema: type: string example: 'true' - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: message: type: string description: Additional information regarding deployment termination. example: 1a9e4ff02cce - Delete request will be processed soon deployment_summary: $ref: '#/components/schemas/V1DeploymentStatus' required: - message headers: {} '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/DeleteDeploymentResponse' 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: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '410': description: Instance Already terminated content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/deployments/bulk-stop: post: summary: Stop Deployments deprecated: false description: Delete multiple deployments using custom filtering. Caution is advised. operationId: deployment-bulk-delete tags: - Deployments - Dedicated Servers parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: filters: type: array description: Identify which deployments to stop. items: type: object properties: field: type: string description: Deployment field used for filtering. enum: - request_id - deployment_tags example: request_id values: type: array description: Values to compare against. items: type: string example: ' 61b1be8f54d9' example: - c0653765de3b filter_type: type: string description: Filter operator. enum: - any - all - not example: any required: - field - filter_type - values required: - filters examples: {} required: true responses: '202': description: Accepted content: application/json: schema: type: object properties: processable: type: array description: Deployments which will be stopped. items: type: object properties: request_id: type: string description: >- ID of your deployment, also referred to as request ID. example: c0653765de3b required: - request_id required: - processable 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: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/self/stop/{deployment_id}/{stop_key}: delete: summary: Self-Stop Deployment deprecated: false description: >- Delete a deployment from the inside of a container, available as injected variable `ARBITRIUM_DELETE_URL`. operationId: deployment-self-delete tags: - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: 61b1be8f54d9 schema: type: string - name: stop_key in: path description: '' required: true example: '660' schema: type: string - name: container_log_storage in: query description: >- Enable or disable previously configured log storage. Alternatively, provide endpoint storage ID to override or set storage to upload logs. required: false example: my-storage schema: type: string example: 'true' - name: authorization in: header description: >- Auto Generated token. This token is injected in your deployment and can be found via the environment variable named ARBITRIUM_DELETE_TOKEN required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: {} headers: {} '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/DeleteDeploymentResponse' 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: {} '403': description: Forbidden 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: {} security: - apiKey: [] /v1/deployment/{deployment_id}/container-logs: get: summary: Get Deployment Logs deprecated: false description: >- Retrieve the logs of your container, if Endpoint Storage was configured before stopping the deployment. operationId: deployment-logs-get tags: - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: ID of your deployment, also referred to as request ID. required: true example: 61b1be8f54d9 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: logs: type: string description: Plaintext deployment success logs. example: Logs of the container crash_logs: type: string description: Plaintext deployment crash logs. nullable: true example: Logs of the container when it crashed crash_data: type: object properties: exit_code: type: integer description: Deployment process exit code. example: 0 message: type: string description: Deployment process exit message. example: OOM killed restart_count: type: integer description: >- Restart counter of your deployment's main process (if allowed). minimum: 0 example: 0 description: >- Additional information about deployment's main process error.. nullable: true encoding: type: string description: Encoding used for logs. example: utf-8 logs_link: type: string description: >- Link to retrieve logs from your configured Endpoint Storage. nullable: true 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: {} security: - apiKey: [] /v1/metrics/deployment/{deployment_id}: get: summary: Get Deployment Metrics deprecated: false description: Get metrics for the specified deployment in a given time range. operationId: deployment-metrics-get tags: - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: '' required: true example: 61b1be8f54d9 schema: type: string - name: start_time in: query description: Start of reporting time range, defaults to deployment start time. required: false example: '2021-07-10 00:00:00.00' schema: type: string format: date-time - name: end_time in: query description: >- End of reporting time range, default to deployment stopped time. Must be greater than start time. required: false example: '2021-07-10 00:00:00.00' schema: type: string format: date-time - name: steps in: query description: >- Size of reporting time step between metric values, aggregated using average (mean). required: false example: 1m schema: type: string example: 30s - name: raw in: query description: Optionally enable raw output. required: false example: 'false' schema: type: boolean default: false - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: total: type: object properties: receive_total: $ref: '#/components/schemas/MetricsModel' transmit_total: $ref: '#/components/schemas/MetricsModel' disk_read_total: $ref: '#/components/schemas/MetricsModel' disk_write_total: $ref: '#/components/schemas/MetricsModel' cpu: $ref: '#/components/schemas/MetricsModel' cpu_throttle_rate: $ref: '#/components/schemas/MetricsModel' cpu_throttle_total: $ref: '#/components/schemas/MetricsModel' mem: $ref: '#/components/schemas/MetricsModel' network: type: object properties: receive: $ref: '#/components/schemas/MetricsModel' transmit: $ref: '#/components/schemas/MetricsModel' 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: {} '422': description: Unprocessable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/deployments/{deployment_id}:report: post: summary: Report a Deployment deprecated: false description: >- Report an issue with the specified deployment from your internal moderation backend. operationId: deployment-report tags: - Deployments - Dedicated Servers parameters: - name: deployment_id in: path description: ID of your deployment, also referred to as request ID. required: true example: 61b1be8f54d9 schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: reason: type: string description: Reason for the report. minLength: 1 maxLength: 255 metadata: type: object description: Additional information. properties: {} example: key: value required: - reason examples: {} required: true 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: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/deploy: post: summary: ⚠️ Deploy Server deprecated: true description: >- DEPRECATED. [Rate Limit: 40 req/s] Create a new deployment - containerized instance of an application version. operationId: deployment-create tags: - Deployments - Dedicated Servers parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: app_name: type: string description: Application to deploy. example: my-game-server version_name: type: string description: >- Version to deploy. If omitted, last created version will be deployed. example: 2024.01.30-16.23.00-UTC ip_list: type: array items: type: string example: 162.254.141.66 description: >- Mutually exclusive with geo_ip_list. List of user IPs, determining server location choice. geo_ip_list: type: array description: >- Mutually exclusive with ip_list. List of user IPs and coordinates, determining server location choice. Coordinates override IP address. items: type: object properties: ip: type: string description: User public IP address. example: 162.254.141.66 latitude: type: number description: User latitude. example: 41.0818 longitude: type: number description: User longitude. example: -73.8896 required: - ip - latitude - longitude filters: type: array description: Restricts possible locations for the deployment. items: type: object properties: field: type: string description: Deployment field used for filtering. example: city values: type: array description: Values to compare against. items: type: string example: Montreal example: - Montreal filter_type: type: string description: Filter operator. enum: - any - all - not example: any required: - field - filter_type - values env_vars: type: array description: >- List of environment variables to set in your deployment instance. These variables will be available in your container. items: $ref: '#/components/schemas/InjectedEnvVariable' tags: type: array description: List of tags to mark your deployments for easy filtering. items: type: string example: production webhook_url: type: string description: >- URL to receive simple HTTP notifications in your game backend when the new deployment becomes Ready. example: https://www.webhook.com/ container_log_storage: type: object properties: enabled: type: boolean description: Enable or disable uploading logs. endpoint_storage: type: string description: Endpoint storage identifier to upload deployment logs. example: my-endpoint required: - enabled - endpoint_storage description: Endpoint storage to upload deployment logs. command: description: >- Overrides container command for the deployment, use with caution. type: string nullable: true example: null | 'string' arguments: description: >- Overrides container arguments for the deployment, use with caution. type: string nullable: true example: null | 'string' required: - app_name example: app_name: my-game-server version_name: production ip_list: - 162.254.141.66 required: true responses: '200': description: Success content: application/json: schema: type: object properties: request_id: type: string description: ID of your deployment, also referred to as request ID. example: 61b1be8f54d9 request_dns: type: string description: FQDN (URL) to connect to the deployment. example: 61b1be8f54d9.pr.edgegap.net request_app: type: string description: Application which has been deployed. example: my-game-server request_version: type: string description: App version which has been deployed. example: 2024.01.30-16.23.00-UTC request_user_count: type: integer description: Number of users included in the deployment request. minimum: 1 example: 4 filters: type: array description: >- List of filters applied to choose the location of the deployment. items: $ref: '#/components/schemas/V1DeployFilter' tags: type: array description: List of tags to mark your deployments for easy filtering. items: type: string example: production container_log_storage: description: Object storage to upload deployment logs. required: - request_app - request_dns - request_id - request_user_count - request_version - filters 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: '' content: application/json: schema: title: '' type: object properties: message: type: string description: A message depending of the request termination required: - message headers: {} '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '422': description: Unprocessable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '500': description: '' content: application/json: schema: type: object properties: {} headers: {} security: - apiKey: [] /v1/deployments/{request_id}: patch: summary: ⚠️ Updates properties of a deployment deprecated: true description: >- DEPRECATED. Updates properties of a deployment. Currently only the `is_joinable_by_session` property can be updated. operationId: deployment-update tags: - Deployments - Dedicated Servers parameters: - name: request_id in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: is_joinable_by_session: type: boolean description: Whether a session can connect to this deployment or not. examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: is_joinable_by_session: type: boolean description: If the deployment is joinable by sessions required: - is_joinable_by_session 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: {} security: - apiKey: [] /v1/locations: get: summary: List Cloud Locations deprecated: false description: >- List all locations available for cloud deployment. Optionally specify an app version to remove locations with insufficient capacity to deploy at this time. operationId: location-list tags: - Deployments - Integration parameters: - name: app in: query description: Custom identifier. required: false example: my-game-server schema: type: string - name: version in: query description: Custom version identifier, often a timestamp or a build ID. required: false example: 2024.01.30-16.23.00-UTC schema: type: string example: 2024.01.30-16.23.00-UTC - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: locations: type: array items: $ref: '#/components/schemas/LocationData' description: List of locations available for deployment at this time. messages: type: array description: Additional information regarding locations. items: type: string example: - '' total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/locations/beacons: get: summary: List Ping Beacons deprecated: false description: List all active ping beacons. operationId: beacon-list tags: - Integration parameters: - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: locations: type: array description: List of all active ping beacons. items: type: object properties: host: type: string description: Public IP address of the ping beacon. example: 172.235.110.137 fqdn: type: string description: FQDN (URL) to ping the beacon. example: b-51bfc6ad1864.pr.edgegap.net udp_port: type: integer description: UDP port to ping from client. minimum: 0 maximum: 59999 example: 32167 tcp_port: type: integer description: TCP port to ping from client. minimum: 0 maximum: 59999 example: 32561 location: $ref: '#/components/schemas/LocationData' required: - host - location count: type: integer description: Count of returned active ping beacons. example: 17 required: - count 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: '' 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: {} security: - apiKey: [] /v1/relays/sessions: post: summary: Create a Relay Session deprecated: false description: Create a relay session with users. operationId: relay-session-create tags: - Relays parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: users: type: array description: List of IP Addresses of session users minItems: 1 items: {} filters: type: array description: List of location filters to apply to the session items: {} webhook_url: type: string description: URL to send the session data to example: https://my-webhook.com/dump required: - users examples: {} required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/RelaySession' 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: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] get: summary: List all Relay Sessions deprecated: false description: List all the active relay sessions. operationId: relay-session-list tags: - Relays parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: sessions: type: array description: List of relay sessions items: $ref: '#/components/schemas/RelaySession' total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/relays/sessions/{session_id}: get: summary: Get a Relay Session deprecated: false description: Retrieve the information for a relay session. operationId: relay-session-get tags: - Relays parameters: - name: session_id in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/RelaySession' headers: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '403': description: Forbidden 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: {} security: - apiKey: [] delete: summary: Delete a Relay Session deprecated: false description: Delete a relay session. operationId: relay-session-delete tags: - Relays parameters: - name: session_id in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '204': description: No Content headers: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} '403': description: Forbidden 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: {} '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/relays/sessions:authorize-user: post: summary: Authorize a user on a Relay Session deprecated: false description: Authorize a user on a Relay Session operationId: relay-user-authorize tags: - Relays parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: session_id: type: string description: 'Session Request ID (ex: 0724828881e2-S)' example: 0724828881e2-S user_ip: type: string description: User Ip to Authorize example: 1.1.1.1 required: - session_id - user_ip examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: session_id: type: string description: The session ID example: 7349356945f1-S authorization_token: type: integer description: The authorization token for the session example: 3500589645 status: type: string description: The status of the session example: READY ready: type: boolean description: If the session is ready to be used linked: type: boolean description: If the session is linked to a relay error: type: string description: The error message if the session failed example: Session failed session_user: description: List Session Users allOf: - {} relay: description: The relay details the session is linked to allOf: - {} webhook_url: type: string description: >- The webhook URL that we will call once the session is ready example: https://my-webhook.com/dump required: - linked - ready - session_id - status 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: {} '403': description: Forbidden 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: {} '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/relays/sessions:revoke-user: post: summary: Remove a user on a Relay Session deprecated: false description: Authorize a user on a Relay Session operationId: relay-user-revoke tags: - Relays parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: session_id: type: string description: 'Session Request ID (ex: 0724828881e2-S)' example: 0724828881e2-S authorization_token: type: integer description: Relay Authorization Token example: 3500589645 required: - authorization_token - session_id examples: {} required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/RelaySession' headers: {} '204': description: No Content 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: {} '403': description: Forbidden 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: {} '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/storage/endpoint/{endpoint_name}/pull-profile: post: summary: Create a New Pull Profile deprecated: false description: >- Create a pull profile. Pull profile will upload data from an endpoint storage to a deployment container on boot. You must link the application version to the pull profile first. operationId: pull-profile-create tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: name: type: string description: Name of the pull profile example: pull_profile_name source: type: string description: Source in the S3 bucket to fetch from example: /my-bucket/config.cfg source_type: type: string description: If the source is a File or a Directory enum: - File - Folder example: File destination: type: string description: >- Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder. example: /usr/share/configs required: - destination - name - source - source_type examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: name: type: string description: Name of the pull profile example: pull_profile_name source: type: string description: Source in the S3 bucket to fetch from example: /my-bucket/config.cfg source_type: type: string description: If the source is a File or a Directory enum: - File - Folder example: File destination: type: string description: >- Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder. example: /usr/share/configs create_time: type: string description: UTC time of pull profile creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of pull profile last update example: '2022-01-01 00:00:00.000000' required: - destination - name - source - source_type 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: {} security: - apiKey: [] /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}: get: summary: Get a Pull Profile deprecated: false description: Retrieve a pull profile and its specifications. operationId: pull-profile-get tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: pull_profile_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PullProfile' 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: {} security: - apiKey: [] patch: summary: Update a Pull Profile deprecated: false description: Update a pull profile with new specifications. operationId: pull-profile-update tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: pull_profile_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: {} examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: name: type: string description: Name of the pull profile example: pull_profile_name source: type: string description: Source in the S3 bucket to fetch from example: /my-bucket/config.cfg source_type: type: string description: If the source is a File or a Directory enum: - File - Folder example: File destination: type: string description: >- Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder. example: /usr/share/configs create_time: type: string description: UTC time of pull profile creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of pull profile last update example: '2022-01-01 00:00:00.000000' 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: {} security: - apiKey: [] delete: summary: Delete a Pull Profile deprecated: false description: >- Delete a pull profile. All the application versions linked won't receive the data upload anymore. It will not delete your endpoint storage. operationId: pull-profile-delete tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: pull_profile_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '204': description: No Content 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: {} security: - apiKey: [] /v1/storage/endpoint/{endpoint_name}/pull-profiles: get: summary: List All Pull Profile of an Endpoint Storage deprecated: false description: List all pull profiles of an endpoint storage. operationId: pull-profile-list tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: pull_profiles: type: array items: $ref: '#/components/schemas/PullProfile' total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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: {} security: - apiKey: [] /v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}/app/{app_name}/version/{version_name}: put: summary: Link a Pull Profile to an Application Version deprecated: false description: >- Link a pull profile to an app version. Without a link, the pull profile by itself will do nothing. operationId: pull-profile-link-app-version tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: pull_profile_name in: path description: '' required: true example: '' schema: type: string - name: app_name in: path description: '' required: true example: '' schema: type: string - name: version_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: app: type: string description: Name of the linked app of the linked version example: app_name app_version: type: string description: Name of the linked app version. example: version_name endpoint: type: string description: Name of the endpoint storage example: endpoint_name pull_profile: type: string description: Name of the pull profile the app version is linked to. example: pull_profile_name create_time: type: string description: UTC time of link creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of link last update example: '2022-01-01 00:00:00.000000' required: - app - app_version - endpoint - pull_profile 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: {} security: - apiKey: [] delete: summary: Unlink a Pull Profile From an Application Version deprecated: false description: >- Unlink a pull profile from an app version. It will not delete the pull profile. operationId: pull-profile-unlink-app-version tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: pull_profile_name in: path description: '' required: true example: '' schema: type: string - name: app_name in: path description: '' required: true example: '' schema: type: string - name: version_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '204': 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: {} security: - apiKey: [] /v1/storage/endpoint: post: summary: Create a New Endpoint Storage deprecated: false description: >- Create an endpoint storage to store your container logs at the end of a deployment. operationId: endpoint-create tags: - Endpoint Storage - Integration parameters: - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: name: type: string description: Name of the Endpoint Storage example: my-s3-bucket access_key_id: type: string description: Your access key ID to connect to your S3 Bucket. example: my-access-key-id endpoint: type: string description: >- Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain example: https://us-east-1.your-s3-provider.com bucket: type: string description: >- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-bucket output_format: type: string description: The format how the logs will be exported to the bucket. default: TEXT enum: - TEXT - NDJSON example: NDJSON secret_access_key: type: string description: >- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-secret-access required: - access_key_id - bucket - endpoint - name - secret_access_key examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: name: type: string description: Name of the Endpoint Storage example: my-s3-bucket access_key_id: type: string description: Your access key ID to connect to your S3 Bucket. example: my-access-key-id endpoint: type: string description: >- Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain example: https://us-east-1.your-s3-provider.com bucket: type: string description: >- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-bucket output_format: type: string description: The format how the logs will be exported to the bucket. default: TEXT enum: - TEXT - NDJSON example: NDJSON create_time: type: string description: UTC time of endpoint creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of endpoint last update example: '2022-01-01 00:00:00.000000' required: - access_key_id - bucket - endpoint - name 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: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] /v1/storage/endpoint/{endpoint_name}: get: summary: Get an Endpoint Storage deprecated: false description: >- Retrieve an endpoint storage. The ```secret_access_key``` won't be displayed. operationId: endpoint-get tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/EndpointStorage' 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: {} security: - apiKey: [] patch: summary: Update an Endpoint Storage deprecated: false description: Update an Endpoint Storage with new specifications. operationId: endpoint-update tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: name: type: string description: Name of the Endpoint Storage example: my-s3-endpoint access_key_id: type: string description: Your access key ID to connect to your S3 Bucket. example: my-access-key-id secret_access_key: type: string description: |- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-secret-access endpoint: type: string description: >- Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain example: https://us-east-1.your-s3-provider.com bucket: type: string description: >- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-bucket output_format: type: string description: The format how the logs will be exported to the bucket. default: TEXT enum: - TEXT - NDJSON example: NDJSON examples: {} required: true responses: '200': description: Success content: application/json: schema: type: object properties: name: type: string description: Name of the Endpoint Storage example: my-s3-endpoint access_key_id: type: string description: Your access key ID to connect to your S3 Bucket. example: my-access-key-id endpoint: type: string description: >- Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain example: https://us-east-1.your-s3-provider.com bucket: type: string description: >- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-bucket output_format: type: string description: The format how the logs will be exported to the bucket. default: TEXT enum: - TEXT - NDJSON example: NDJSON create_time: type: string description: UTC time of endpoint storage creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of endpoint storage last update example: '2022-01-01 00:00:00.000000' 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: {} security: - apiKey: [] delete: summary: Delete an Endpoint Storage deprecated: false description: >- Delete an endpoint storage. All the application versions linked to it won't be able to store logs anymore. operationId: endpoint-delete tags: - Endpoint Storage - Integration parameters: - name: endpoint_name in: path description: '' required: true example: '' schema: type: string - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '204': description: No Content 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: {} security: - apiKey: [] /v1/storage/endpoints: get: summary: List All Endpoint Storage deprecated: false description: List all endpoint storage. operationId: endpoints-list tags: - Endpoint Storage - Integration parameters: - name: page in: query description: '' example: 0 schema: type: integer minimum: 1 example: 2 - name: limit in: query description: '' example: 0 schema: type: integer minimum: 1 example: 20 - name: X-Fields in: header description: An optional fields mask required: false example: '' schema: type: string format: mask - name: Accept in: header description: '' example: '*/*' schema: type: string - name: Content-Type in: header description: '' example: application/json schema: type: string responses: '200': description: Success content: application/json: schema: type: object properties: endpoints: type: array items: $ref: '#/components/schemas/EndpointStorage' 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: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' headers: {} security: - apiKey: [] components: schemas: PaginatedResponse: type: object properties: total_count: type: integer minimum: 0 example: 100 pagination: type: object properties: number: type: integer minimum: 0 example: 1 next_page_number: type: integer minimum: 1 nullable: true example: 2 previous_page_number: type: integer minimum: 1 nullable: true paginator: type: object properties: num_pages: type: integer minimum: 1 example: 10 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 InjectedEnvVariable: required: - key - value properties: key: type: string description: >- Custom key used to access the injected variable within the deployment. Automatically sanitized. example: MM_MATCH_PROFILE value: type: string description: Custom value to inject in your deployment, up to 4 KB. example: advanced-example is_hidden: type: boolean description: Enable encryption at rest to prevent reading the value with API. default: false example: false type: object V1DeployFilter: type: object properties: field: type: string description: Deployment field used for filtering. example: city values: type: array description: Values to compare against. items: type: string example: Montreal example: - Montreal filter_type: type: string description: Filter operator enum: - any - all - not example: any required: - field - filter_type - values DeploymentPort: type: object properties: name: type: string description: Custom identifier. example: gameport link: type: string description: URL to connect, containing FQDN and external port. example: https://c66980ae5bf1.pr.edgegap.net:30345 internal: type: integer description: Internal listener port where deployment expects connections. minimum: 0 maximum: 59999 example: 7777 external: type: integer minimum: 0 maximum: 59999 description: Randomly assigned port to connect to the deployment. example: 30345 protocol: type: string description: Selected networking protocol. example: UDP tls_upgrade: type: boolean description: TLS proxy, only available with ports WS and HTTP. default: false required: - name - link - internal - external - protocol - tls_upgrade Error: required: - message properties: message: type: string description: A message depending of the request termination type: object V1DeploymentStatus: type: object properties: request_id: type: string description: ID of your deployment, also referred to as request ID. example: c0653765de3b fqdn: type: string description: FQDN (URL) to connect to the deployment. example: c0653765de3b.pr.edgegap.net public_ip: type: string description: Public IP address of the host. example: 192.53.120.48 app_name: type: string description: Application which has been deployed. example: test app_version: type: string description: App version which has been deployed. example: v1 current_status: type: string description: Indicates whether deployment is Ready, in Error, or otherwise. example: Status.SEEKING running: type: boolean description: True if deployment is Ready for connections. default: true example: true start_time: type: string description: Timestamp of deployment becoming Ready. format: date-time example: '2026-04-22 12:00:46.444265' elapsed_time: type: integer description: Seconds since deployment becoming Ready. max_duration: type: integer description: >- Maximum allowed uptime minutes of deployments before automatically stopped. minimum: -1 maximum: 1440 example: 1440 removal_time: type: string description: Timestamp of deployment stopped. format: date-time example: '2026-04-22 12:00:46.444265' last_status: type: string description: Previous status of deployment. example: Status.SEEKING error: type: boolean description: Indicates an error with the deployment. default: false example: true error_detail: type: string description: Details of the error. example: Pull image timeout exceeded ports: type: object properties: gameport: $ref: '#/components/schemas/DeploymentPort' description: Port mapping exposing server listeners to internet. location: $ref: '#/components/schemas/LocationData' description: Geographic location of the deployment. tags: type: array items: type: string example: production description: List of tags to mark your deployments for easy filtering. command: type: string description: Overrides container command for the deployment, use with caution. example: echo "hi" && sleep infinity arguments: type: string description: Overrides container arguments for the deployment, use with caution. required: - app_name - app_version - current_status - elapsed_time - error - fqdn - max_duration - public_ip - request_id - running - start_time nullable: true LocationData: required: - administrative_division - city - continent - country - latitude - longitude - timezone properties: city: type: string description: City of the deployment. example: Montreal country: type: string description: Country of the deployment. example: Canada continent: type: string description: Continent of the deployment. example: North America administrative_division: type: string description: Administrative division of the deployment. example: Quebec timezone: type: string description: Timezone of the deployment. example: Eastern Time latitude: type: number description: Latitude of the deployment example: 45.508888 longitude: type: number description: Longitude of the deployment. example: -73.561668 type: object DeleteDeploymentResponse: required: - message properties: message: type: string description: Additional information regarding deployment termination. example: 1a9e4ff02cce - Delete request will be processed soon type: object AppVersionPayload: 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 example: 2024.01.30-16.23.00-UTC create_time: type: string description: Date of creation. format: date-time example: '2026-04-22 20:30:52.283949' last_updated: type: string description: Date of last update. format: date-time example: '2026-04-22 20:30:52.283949' is_active: type: boolean description: Enable or disable deployments. default: true example: true req_cpu: type: integer description: Amount of vCPU units assigned to deployments. (1024 units = 1 vCPU). minimum: 100 example: 1536 req_memory: type: integer description: >- Amount of memory MB assigned to deployments, at most double your vCPU units. (1024 MB = 1 GB). minimum: 100 example: 3072 req_video: type: integer description: Amount of GPU units assigned to deployments. (1024 = 1 GPU) minimum: 0 example: 0 docker_repository: type: string description: Docker registry URL, ‘docker_repository’ is named incorrectly. example: registry.edgegap.com private_username: type: string description: Docker Registry username. Not your Edgegap credentials. example: robot$my-org-cv2l3w3vy6fg+app-version-pull private_token: type: string description: Docker Registry token/password. Not your Edgegap credentials. example: ghca3dz3foAxXf2tu2xjExtXrBOMydfC docker_image: type: string description: Namespaced docker image ID. example: my-org-cv2l3w3vy6fg/my-game-server docker_tag: type: string description: >- Docker tag ID, typically timestamp or a build ID. Avoid using `latest` or overwriting tags. example: 2024.01.30-16.23.00-UTC verify_image: type: boolean description: >- Enable to verify we can pull your docker image using provided parameters and credentials. default: false example: true force_cache: type: boolean description: >- Enable faster deployments with global image preloading. Recommended for live games. example: true caching_percent: type: number description: >- Current global caching percentage on scale 0-1. Values above 0.8 (80%) are considered a good coverage level. example: 0.8 time_to_deploy: type: integer description: >- Image downloads exceeding this period (seconds) will timeout and be marked as Error. minimum: 15 default: 10 example: 10 max_duration: type: integer description: >- Maximum allowed uptime minutes of deployments before automatically stopped. default: 1440 minimum: -1 maximum: 1440 example: 1440 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 example: 5 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. example: my-dns-config 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. example: my-storage type: object AppVersionPort: required: - port - protocol properties: port: type: integer description: Internal listener port where deployment expects connections. minimum: 0 maximum: 59999 example: 7777 protocol: type: string description: Selected networking protocol. example: UDP to_check: type: boolean description: Enable or disable deployment port readiness check. default: true example: true tls_upgrade: type: boolean description: Enable or disable TLS proxy, only available with ports WS and HTTP. default: false example: false name: type: string description: Custom port identifier. example: gameport type: object Application: required: - create_time - is_active - last_updated - name - image properties: name: type: string description: Custom name. minLength: 3 maxLength: 64 example: my-game-server is_active: type: boolean description: Enable or disable deployments. default: true example: true image: type: string description: Image base64 string. example: iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg== create_time: type: string description: Date of creation. example: '2026-04-22 12:00:46.444265' last_updated: type: string description: Date of last update. example: '2026-04-22 12:00:46.444265' type: object MetricsModel: properties: labels: type: array items: type: string example: '00:00:00' datasets: type: array items: type: integer timestamps: type: array items: type: string format: date example: '2021-07-14 14:17:37.711' type: object EndpointStorage: required: - access_key_id - bucket - endpoint - name properties: name: type: string description: Name of the Endpoint Storage example: my-s3-endpoint access_key_id: type: string description: Your access key ID to connect to your S3 Bucket. example: my-access-key-id endpoint: type: string description: >- Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain example: https://us-east-1.your-s3-provider.com bucket: type: string description: >- Your secret access key to connect to your S3 Bucket. Will be encrypted. example: my-bucket output_format: type: string description: The format how the logs will be exported to the bucket. default: TEXT enum: - TEXT - NDJSON example: NDJSON create_time: type: string description: UTC time of endpoint storage creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of endpoint storage last update example: '2022-01-01 00:00:00.000000' type: object PullProfile: required: - destination - name - source - source_type properties: name: type: string description: Name of the pull profile example: pull_profile_name source: type: string description: Source in the S3 bucket to fetch from example: /my-bucket/config.cfg source_type: type: string description: If the source is a File or a Directory enum: - File - Folder example: File destination: type: string description: >- Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder. example: /usr/share/configs create_time: type: string description: UTC time of pull profile creation example: '2022-01-01 00:00:00.000000' last_updated: type: string description: UTC time of pull profile last update example: '2022-01-01 00:00:00.000000' type: object RelaySession: required: - linked - ready - session_id - status properties: session_id: type: string description: The session ID example: 7349356945f1-S authorization_token: type: integer description: The authorization token for the session example: 3500589645 status: type: string description: The status of the session example: READY ready: type: boolean description: If the session is ready to be used linked: type: boolean description: If the session is linked to a relay error: type: string description: The error message if the session failed example: Session failed session_users: type: array description: List Session Users items: type: object properties: ip_address: type: string description: The IP Address of the user example: 1.1.1.1 latitude: type: number description: The latitude of the user example: 45.5088 longitude: type: number description: The longitude of the user example: -73.5878 authorization_token: type: integer description: The authorization token of the user example: 21986334 relay: description: The relay details the session is linked to allOf: - type: object properties: ip: type: string description: The IP Address of the relay example: 2.2.2.2 host: type: string description: The host of the relay example: 7349356945f1.st.edgegap.net ports: type: object properties: server: type: object properties: port: type: integer description: The port number example: 32000 protocol: type: string description: The protocol of the port example: UDP link: type: string description: The link to the port example: 7349356945f1.st.edgegap.net:32000 client: type: object properties: port: type: integer description: The port number example: 32001 protocol: type: string description: The protocol of the port example: UDP link: type: string description: The link to the port example: 7349356945f1.st.edgegap.net:32001 webhook_url: type: string description: The webhook URL that we will call once the session is ready example: https://my-webhook.com/dump type: object DeploymentTag: required: - name properties: name: type: string description: Name of the tag. maxLength: 40 minLength: 1 example: development type: object DeploymentTagResponse: properties: name: type: string description: Name of the tag. maxLength: 40 minLength: 1 example: development create_time: type: string description: Date of creation. format: date-time example: '2026-04-22 20:30:52.283949' last_updated: type: string description: Date of last update. format: date-time example: '2026-04-22 20:30:52.283949' type: object required: - name responses: {} securitySchemes: apiKey: type: apiKey in: header name: Authorization description: >- [Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens) servers: - url: https://api.edgegap.com description: https://api.edgegap.com security: - apiKey: []