openapi: 3.0.1
info:
title: Edgegap v2 API
description: 'Maintained by [Edgegap Technologies](https://edgegap.com/)'
version: 1.0.0
tags: []
paths:
/deployments:
post:
summary: '[v2] Deploy'
deprecated: false
description: >-
[Rate Limit: 40/seconds] Initiate a new deployment. A
deployment is a containerized server instance of an application version
running on the Edgegap platform.
operationId: deployment-create
tags: []
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentCreate'
examples: {}
responses:
'202':
description: Deployment Request Accepted
content:
application/json:
schema:
title: ''
type: object
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
example: a69f8e3e0555
required:
- request_id
headers: {}
'400':
description: Client Side Request Error
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
'401':
description: Unauthorized - Missing Token
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
'422':
description: Couldn't Allocate Server
content:
application/json:
schema:
title: ''
type: object
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
example: a69f8e3e0555
message:
type: string
description: Error message
example: Error message
required:
- request_id
- message
headers: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
security:
- api-token: []
/private-fleets/{fleet-name}/hosts:
get:
summary: List Private Fleet Hosts
deprecated: false
description: >-
[Rate Limit: 10/seconds] List all hosts in a private
fleet.
operationId: private-fleet-hosts-list
tags: []
parameters:
- name: fleet-name
in: path
description: Name of your private fleet.
required: true
schema:
type: string
example: test-fleet
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
host_id:
type: string
description: >-
Unique private fleet host identifier, used to deploy
on this host.
example: alpha-north-america-95fab093
status:
type: string
description: >-
Lifecycle stage of the host, only ACTIVE hosts
accept deployments.
enum:
- PENDING
- ACTIVE
example: ACTIVE
ip_address:
type: string
description: Public IP address of the host.
nullable: true
example: 192.53.120.48
latitude:
type: number
description: Approximate geographic latitude of the host.
nullable: true
example: 43.6173
longitude:
type: number
description: Approximate geographic longitude of the host.
nullable: true
example: -79.3186
city:
type: string
description: City in which the host is located.
nullable: true
example: Toronto
country:
type: string
description: Country in which the host is located.
nullable: true
example: Canada
continent:
type: string
description: Continent in which the host is located.
nullable: true
example: North America
allocated_cpu_units:
type: integer
description: >-
Total virtual CPU units currently in use for
deployments, beacons, and orchestration.
nullable: true
example: 1152
allocated_memory_mb:
type: integer
description: >-
Total memory in MB currently in use for deployments,
beacons, and orchestration.
example: 2176
allocatable_cpu_units:
type: integer
description: Total available virtual CPU units for deployments.
nullable: true
example: 12928
allocatable_memory_mb:
type: integer
description: Total available memory in MB for deployments.
nullable: true
example: 25178
beacon:
type: object
properties:
tcp_port:
type: integer
description: >-
External beacon TCP port used to perform TCP
ping.
example: 30974
udp_port:
type: integer
description: >-
External beacon UDP port used to perform UDP
ping.
example: 31843
ip_address:
type: string
description: >-
Public IP address used to perform ping
measurement.
example: 192.53.120.48
required:
- tcp_port
- udp_port
- ip_address
description: >-
Assigned beacon information, if enabled for this
fleet.
nullable: true
created_at:
type: string
description: Timestamp of creation in UTC, ISO 8601 format.
example: '2025-11-26T16:32:30.825138Z'
updated_at:
type: string
description: Timestamp of last update in UTC, ISO 8601 format.
example: '2025-11-26T16:32:30.825144Z'
centroid:
type: object
properties:
label:
type: string
description: Human readable label.
example: Alpha
latitude:
type: number
description: Approximate geographic latitude of the centroid.
example: 43.98884323260136
longitude:
type: number
description: >-
Approximate geographic longitude of the
centroid.
example: -78.67419552556069
radius_km:
type: integer
description: >-
Approximate geographic radius used to pick
primary and fallback locations.
example: 700
desired_host_count:
type: integer
description: >-
Requested amount of hosts to be started under
this centroid.
example: 1
required:
- label
- latitude
- longitude
- radius_km
- desired_host_count
description: >-
Centroid information used to orchestrate placement
of the host.
delete_schedule:
type: object
properties:
uuid:
type: string
description: Unique identifier of deletion schedule.
example: 10287c9b-a6e2-4909-84c8-59daf74895b5
scheduled_at:
type: string
description: >-
Timestamp of scheduled deletion in UTC, ISO 8601
format.
example: '2025-11-30T23:59:00Z'
description: If defined, specified when the host will be deleted.
required:
- uuid
- scheduled_at
nullable: true
fleet_host_specifications:
type: object
properties:
cpu_units:
type: integer
description: >-
Host specification vCPU units selected during
fleet creation.
example: 16384
memory_mb:
type: integer
description: >-
Host specification memory MB selected during
fleet creation.
example: 32768
base_clock_speed_mhz:
type: integer
description: >-
Host specification base CPU clock frequency
selected during fleet creation.
example: 2000
required:
- cpu_units
- memory_mb
- base_clock_speed_mhz
description: List of private fleet hosts.
required:
- host_id
- status
- allocated_cpu_units
- allocated_memory_mb
- created_at
- updated_at
- centroid
- fleet_host_specifications
required:
- data
headers: {}
'400':
description: ''
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
'401':
description: ''
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
'500':
description: ''
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
security:
- api-token: []
/private-fleets:deploy:
post:
summary: Deploy to Fleet
deprecated: false
description: >-
[Rate Limit: 40/seconds] Initiate a new private fleet
deployment. A deployment is a containerized server instance of an
application version running on the Edgegap platform.
operationId: private-fleets-deployment-create
tags: []
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateFleetDeploymentCreate'
examples: {}
responses:
'202':
description: ''
content:
application/json:
schema:
title: ''
type: object
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
example: a69f8e3e0555
required:
- request_id
headers: {}
'400':
description: >-
Invalid Application or Application Version. No deployment has been
created
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
'401':
description: Unauthorized. No deployment has been created.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
'422':
description: >-
Could not allocate an Edge Server for the deployment. A deployment
has been created. Deployment is in error state. You can delete it
manually or it will be deleted automatically by our system after
some some times
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterError422'
headers: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
security:
- api-token: []
components:
schemas:
DeploymentResponse:
required:
- request_id
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
example: a69f8e3e0555
type: object
ParameterError422:
required:
- message
- request_id
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
example: a69f8e3e0555
message:
type: string
description: Error message
example: Error message
type: object
Error:
required:
- message
properties:
message:
type: string
description: Error message
example: Error message
details:
type: object
description: Additional error details
properties: {}
type: object
PrivateFleetDeploymentCreate:
type: object
properties:
application:
type: string
description: Name of the application that will be deployed
example: my-app
version:
type: string
description: Name of the version within the application that will be deployed
example: 25.05.30-16.45.19-04
require_cached_locations:
type: boolean
default: false
description: Deploy faster by limiting placement to locations with cached image.
nullable: true
private_host_ids:
type: array
items:
type: string
example: alpha-north-america-95fab093
description: >-
Preferred and prioritized Private Host IDs to try before overflowing
to cloud.
minItems: 1
uniqueItems: true
users:
type: array
description: >-
List of users. These users will be used to select the locations for
the deployment
minItems: 1
items:
$ref: '#/components/schemas/User'
example:
- user_type: ip_address
user_data:
ip_address: 75.28.35.192
- user_type: geo_coordinates
user_data:
latitude: 45.508888
longitude: -73.561668
environment_variables:
type: array
description: List of environment variables to inject into the deployment
items:
$ref: '#/components/schemas/DeploymentEnvironmentVariable'
tags:
type: array
description: List of tags to associate with the deployment
items:
type: string
example: my-custom-tag
webhook_on_ready:
description: Webhook to call when the deployment is ready
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_error:
description: Webhook to call when the deployment is in error
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_terminated:
description: Webhook to call when the deployment is terminated
allOf:
- $ref: '#/components/schemas/BasicWebhook'
required:
- application
- users
- version
- private_host_ids
DeploymentCreate:
required:
- application
- users
- version
properties:
application:
type: string
description: Name of the application that will be deployed
example: my-app
version:
type: string
description: Name of the version within the application that will be deployed
example: 25.05.30-16.45.19-04
require_cached_locations:
type: boolean
default: false
description: Deploy faster by limiting placement to locations with cached image.
nullable: true
users:
type: array
description: >-
List of users. These users will be used to select the locations for
the deployment
minItems: 1
items:
$ref: '#/components/schemas/User'
example:
- user_type: ip_address
user_data:
ip_address: 75.28.35.192
- user_type: geo_coordinates
user_data:
latitude: 45.508888
longitude: -73.561668
environment_variables:
type: array
description: List of environment variables to inject into the deployment
items:
$ref: '#/components/schemas/DeploymentEnvironmentVariable'
tags:
type: array
description: List of tags to associate with the deployment
items:
type: string
example: my-custom-tag
webhook_on_ready:
description: Webhook to call when the deployment is ready
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_error:
description: Webhook to call when the deployment is in error
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_terminated:
description: Webhook to call when the deployment is terminated
allOf:
- $ref: '#/components/schemas/BasicWebhook'
type: object
User:
required:
- user_data
- user_type
properties:
user_type:
type: string
description: Type of user (e.g., ip_address or geo_coordinates)
user_data:
type: object
description: Dynamic user data depending on user_type
properties: {}
example:
ip_address: 75.28.35.192
type: object
DeploymentEnvironmentVariable:
required:
- is_hidden
- key
- value
properties:
key:
type: string
description: Environment variable key
example: MY_ENVIRONMENT_VARIABLE
value:
type: string
description: Environment variable value
example: my-value
is_hidden:
type: boolean
description: An hidden environment variable is not shown in the UI
example: false
type: object
BasicWebhook:
required:
- url
properties:
url:
type: string
description: Webhook URL
example: https://my-webhook.com
type: object
securitySchemes:
api-token:
type: apiKey
in: header
name: Authorization
servers:
- url: https://api.edgegap.com/v2
description: Edgegap V2
security:
- api-token: []