---
title: "Create a Deployment request."
method: POST
path: "/v1/deploy"
tags: ["Deployments"]
---

# Create a Deployment request.

`POST /v1/deploy`

## Request

- Base URL: `https://api.edgegap.com`
- URL: `https://api.edgegap.com/v1/deploy`
- Auth: API key in header `authorization`

[Rate Limit: 40/second] Create a new deployment. A deployment is a containerized instance of an application version running on the Edgegap platform.

## Request body

- DeployModel
  - `app_name` string, required: The application you want to deploy a version of.
  - `version_name` string: The application version you want to deploy a container, if not present, the last version created is automatically chosen.
  - `is_public_app` boolean: (DEPRECATED) - No longer used and you don't need to set it.
  - `ip_list` string[]: This parameter is not optional, but mutually exclusive with the geo_ip_list parameter. One of them is required. List of IP representing your users. These will be used to determine the best location for your deployment.
  - `geo_ip_list` GeoIpListModel[]: This parameter is not optional, but mutually exclusive with the ip_list parameter. One of them is required. List of IP of your user with their location (latitude, longitude). We will use the coordinates instead of the IPs to determine the best location for your deployment.
    - `ip` string, required: IP address
    - `latitude` number, required: Latitude of the IP/User
    - `longitude` number, required: Longitude of the IP/User
  - `telemetry_profile_uuid_list` string[]: (DEPRECATED)
  - `env_vars` DeployEnvModel[]: List of environment variables to set in your deployment instance. These variables will be available in your container.
    - `key` string, required: Key of the environment variable. This key will be used to access the value in your container.
    - `value` string, required: Value of the environment variable. This value will be set in your container. Max 4096 characters.
    - `is_hidden` boolean: If true, the environment variable will be encrypted and only decrypted in the container.
  - `skip_telemetry` boolean: If true, the deployment will skip the telemetry measurement. This result in a faster time to deploy.
  - `location` LocationModel
    - `latitude` number, required: Desired Latitude
    - `longitude` number, required: Desired Longitude
  - `webhook_url` string: A URL to send a POST request when the deployment is ready. The request will contain the deployment status. The content of the request is the same as the `v1/status/{request_id}` endpoint.
  - `tags` string[]: List of tags associated with the deployment. These tags will be shown in the dashboard.
  - `container_log_storage` ContainerLogStorageModel
    - `enabled` boolean, required: If true, the container logs will be stored in the provided endpoint storage at the end of the request. If false, the container logs will not be stored, even if set up in the app version.
    - `endpoint_storage` string: The name of the endpoint storage to be used. It must be the same as the one set on the dashboard when created. If container log storage is enabled without this parameter, we will try to take the app version endpoint storage. If there is no endpoint storage in your app version, the container logs will not be stored. If we don't find any endpointstorage associated with this name, the container logs will not be stored.
  - `filters` DeploymentFilterModel[]: List of filters to apply to the deployment. The deployment will be deployed in a location that match the filters.
    - `field` string, required: The deployment's field to filter on. See https://docs.edgegap.com/learn/advanced-features/deployments#filter-deployments for more details.
    - `values` string[], required: The values to filter on.
    - `filter_type` 'any' | 'all' | 'not', required: The type of filter.
  - `ap_sort_strategy` 'basic' | 'weighted': (DEPRECATED) - No longer used and you don't need to set it.
  - `command` string, nullable: Allows to override the container command for this deployment. This is an advanced feature and should be used with caution.If set to null, the default command of the container will be used.
  - `arguments` string, nullable: Allows to override the container arguments for this deployment. This is an advanced feature and should be used with caution.If set to null, the default arguments of the container will be used.

## Response `200`

Success

- Request
  - `request_id` string, required: The identifier of the deployment request. This is used to track the deployment.
  - `request_dns` string, required: This is the FQDN that allow to connect to your Deployment. It will not resolve until the deployment is ready.
  - `request_app` string, required: The application that has been deployed.
  - `filters` DeploymentFilterModel[]: List of filters applied to choose the location of the deployment.
    - `field` string, required: The deployment's field to filter on. See https://docs.edgegap.com/learn/advanced-features/deployments#filter-deployments for more details.
    - `values` string[], required: The values to filter on.
    - `filter_type` 'any' | 'all' | 'not', required: The type of filter.
  - `request_version` string, required: The version of the application that has been deployed.
  - `request_user_count` integer, required: This is the number of IP you have provided in the deployment request.
  - `tags` string[]: List of tags that have been injected in the deployment request. This field will only be present if tags were provided in the request.
  - `container_log_storage` ContainerLogStorageModel
    - `enabled` boolean, required: If true, the container logs will be stored in the provided endpoint storage at the end of the request. If false, the container logs will not be stored, even if set up in the app version.
    - `endpoint_storage` string: The name of the endpoint storage to be used. It must be the same as the one set on the dashboard when created. If container log storage is enabled without this parameter, we will try to take the app version endpoint storage. If there is no endpoint storage in your app version, the container logs will not be stored. If we don't find any endpointstorage associated with this name, the container logs will not be stored.
  - `location` LocationModel
    - `latitude` number, required: Desired Latitude
    - `longitude` number, required: Desired Longitude
  - `ap_sort_strategy` 'basic' | 'weighted': (DEPRECATED) - Will only be present if the request was made with the ap_sort_strategy field.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `409`: Conflict
- `422`: Unprocessable

---

[API](https://skmtc.dev/edgegap/apis/edgegap-v1.md) · [All operations](https://skmtc.dev/edgegap/apis/edgegap-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/edgegap/apis/edgegap-v1/revisions/9fa2b393a6be?raw)
